kwin/autotests
Martin Flöser 47343fb8f7 [platforms/drm] Use a shared pointer for gbm_surface
Summary:
The gbm_surface is owned by the EglGbmBackend, but it's not the only one
using it. The DrmSurfaceBuffer is also using it and needs it to destroy
the gbm_bo. Now this can become a problem in the following situation:

* a page flip is still pending
* the EglGbmBackend destroys the gbm_surface

-> when the page flip happens the DrmSurfaceBuffer will try to destroy
the gbm_bo and crash as the gbm_surface is no longer valid. This
situation can happen when switching screens or when switching compositing
backend (OpenGL 2 -> OpenGL 3).

To address this problem a class GbmSurface is added which wrapps the
gbm_surface pointer. The EglGbmBackend creates and holds a shared pointer
to the GbmSurface and passes that one to the DrmSurfaceBuffer. So when
cleaning up the gbm_surface only the shared pointer is reset and in case
the DrmSurfaceBuffer still needs it, it can access it without problems.

BUG: 385372
FIXED-IN: 5.11.0

Test Plan: Not yet

Reviewers: #kwin, #plasma, subdiff

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8152
2017-10-05 21:32:46 +02:00
..
integration remove xdgv6 use from 5.11 branch 2017-10-02 08:49:37 +01:00
libinput [libinput] Change unset of scroll method and acceleration profile 2016-12-06 13:45:54 +01:00
libkwineffects
libxrenderutils [autotests] Fix unused function warnings 2017-07-29 18:47:58 +02:00
tabbox Fix: Missing dependencies for kwin autotests 2017-10-04 10:12:06 +01:00
abstract_client.h
client.h
CMakeLists.txt [platforms/drm] Use a shared pointer for gbm_surface 2017-10-05 21:32:46 +02:00
fakeeffectplugin.cpp
fakeeffectplugin.json
fakeeffectplugin_version.cpp
fakeeffectplugin_version.json
mock_abstract_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_abstract_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_effectshandler.cpp Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_effectshandler.h Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_screens.cpp
mock_screens.h
mock_workspace.cpp
mock_workspace.h Move XRandR event filter into XRandRScreens 2017-09-12 18:53:08 +02:00
onscreennotificationtest.cpp Fade out OnScreenNotification when moving with the mouse over it 2017-01-04 18:04:15 +01:00
onscreennotificationtest.h Introduce a KWin internal on-screen-notification service 2016-12-21 19:43:49 +01:00
opengl_context_attribute_builder_test.cpp [platforms/x11] Use a GlxContextAttributeBuilder 2017-08-19 11:34:51 +02:00
test_builtin_effectloader.cpp [effects] Add a colorpicker effect 2016-11-25 09:30:34 +01:00
test_client_machine.cpp
test_gbm_surface.cpp [platforms/drm] Use a shared pointer for gbm_surface 2017-10-05 21:32:46 +02:00
test_gestures.cpp Add support for activating screenedges through touch swipe gestures 2017-03-27 17:44:02 +02:00
test_plugin_effectloader.cpp new logout effect 2017-03-15 17:47:22 +01:00
test_screen_edges.cpp Move X11 specific event filtering for ScreenEdges into x11 standalone platform 2017-09-01 17:01:01 +02:00
test_screen_paint_data.cpp
test_screens.cpp
test_scripted_effectloader.cpp Port some displayWidth/displayHeight usages to Screens::size() 2017-09-01 17:11:10 +02:00
test_virtual_desktops.cpp Add support for global touchpad swipe gestures 2017-03-27 17:43:44 +02:00
test_window_paint_data.cpp
test_x11_timestamp_update.cpp [autotests] Fix testX11TimestampUpdate after latest change 2017-08-24 21:48:29 +02:00
test_xcb_size_hints.cpp
test_xcb_window.cpp
test_xcb_wrapper.cpp
test_xkb.cpp Migrate Xkb::toQtKey away from KKeyServer 2017-08-16 19:22:53 +02:00
test_xrandr_screens.cpp
testutils.h [autotests] Fix unused function warnings 2017-07-29 18:47:58 +02:00
workspace.h