kwin/plugins/platforms/drm
Roman Gilg a347d009d1 [DrmBackend] Straighten out EGL surface buffer release logic on page flip
The logic on page flips was inconsistent in the sense, that it should never
release a GBM buffer before it's not used (i.e. viewable on the display)
anymore. This happened unintended until now (on page flip we never really
did something useful in the else statement, because if we're here it's not
a GBM buffer anyway).

With this patch we:
* delete on page flips always only the old buffer, which is not used anymore
* release the buffer earlier on interrupts like display disconnect in order
  to be able to destroy the EGL context

Test Plan:
Tested in non atomic mode (atomic mode is obsolete right now until my other
WIP patch D4539 is ready to be merged): Login, logout, suspend, normal use.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5060
2017-03-17 20:41:46 +01:00
..
CMakeLists.txt Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm.json SVN_SILENT made messages (.desktop file) - always resolve ours 2017-02-28 12:58:59 +01:00
drm_backend.cpp Fix typo 2017-01-02 20:13:30 +01:00
drm_backend.h Remove unused method 2016-11-16 14:19:36 +00:00
drm_buffer.cpp [platforms/drm] Add better warnings in DrmBuffer if things fail 2016-07-15 08:37:17 +02:00
drm_buffer.h Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_inputeventfilter.cpp Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00
drm_inputeventfilter.h Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00
drm_object.cpp Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object.h Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_connector.cpp Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_connector.h Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_crtc.cpp Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_crtc.h Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_plane.cpp Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_object_plane.h Atomic Mode Setting / Universal Plane preliminary support 2016-08-31 14:06:31 +02:00
drm_output.cpp [DrmBackend] Straighten out EGL surface buffer release logic on page flip 2017-03-17 20:41:46 +01:00
drm_output.h [DrmBackend] Straighten out EGL surface buffer release logic on page flip 2017-03-17 20:41:46 +01:00
drm_pointer.h Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00
egl_gbm_backend.cpp [DrmBackend] Straighten out EGL surface buffer release logic on page flip 2017-03-17 20:41:46 +01:00
egl_gbm_backend.h [platforms/drm] Pass ownership of gbm_device to Platform 2016-08-19 16:09:18 +02:00
logging.cpp Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00
logging.h Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00
scene_qpainter_drm_backend.cpp [plugins/drm] Drop dependency on VirtualTerminal 2016-04-22 14:18:56 +02:00
scene_qpainter_drm_backend.h add override to bufferForScreen 2016-05-02 14:50:23 +02:00
screens_drm.cpp Set initial count of screens before calling Screens::init 2016-08-05 09:59:22 +02:00
screens_drm.h Move backends/ to plugins/platforms/ 2016-04-12 08:01:27 +02:00