kwin/plugins/platforms/x11/standalone
Roman Gilg 8d13729031 [platforms/x11] Never block on retrace, always present after paint
Summary:
Compositing in X11 was done time shifted, meaning that we paint first, then
wait one vblank interval length and present on prepareRenderingFrame the
previous paint result. This is supposed to make sure we don't miss the vblank
and in case of block till retrace be able to continue issuing commands and
only shortly before next vblank present.

This is counter-intuitiv, not how we do it on Wayland or even on MESA with X.
The reason seems to be that the GLX backend was in the beginning written
against Nvidia proprietary driver which needed this but nowadays even this
driver defaults to non-blocking behavior on buffer swap.

Therefore remove this legacy anomaly fully and directly present after paint.
We then wait one refresh cycle and in the future can optimize this by delaying
the paint and present till shortly before vsync.

Test Plan: kwin_x11 tested on i915 and Nvidia proprietary driver.

Reviewers: #kwin

Subscribers: zzag, alexeymin, kwin

Tags: #kwin

Maniphest Tasks: T11071

Differential Revision: https://phabricator.kde.org/D23514
2019-11-14 09:03:44 +01:00
..
CMakeLists.txt [libkwineffects] Introduce API to easily show a QtQuick scene in an effect 2019-09-27 16:11:05 +01:00
edge.cpp [platforms/x11] Fix incorrect screen edge approaching with switch desktop on window move 2017-07-06 19:12:28 +02:00
edge.h Use more traditional doxygen style 2019-07-29 22:06:19 +03:00
effects_mouse_interception_x11_filter.cpp Move X11-only specific part of EffectsHandlerImpl to x11 platform plugin 2017-10-16 16:54:17 +02:00
effects_mouse_interception_x11_filter.h Move X11-only specific part of EffectsHandlerImpl to x11 platform plugin 2017-10-16 16:54:17 +02:00
effects_x11.cpp [platforms/x11] Properly unload effects on X11 2019-03-11 09:23:24 +02:00
effects_x11.h [platforms/x11] Properly unload effects on X11 2019-03-11 09:23:24 +02:00
glx_context_attribute_builder.cpp [platforms/x11] Use a GlxContextAttributeBuilder 2017-08-19 11:34:51 +02:00
glx_context_attribute_builder.h [platforms/x11] Use a GlxContextAttributeBuilder 2017-08-19 11:34:51 +02:00
glxbackend.cpp [platforms/x11] Never block on retrace, always present after paint 2019-11-14 09:03:44 +01:00
glxbackend.h Remove vsync detection and configurability 2019-11-14 08:55:08 +01:00
logging.cpp [plugins/platforms] Dedicated logging category for X11 standalone platform 2016-04-12 14:48:54 +02:00
logging.h [plugins/platforms] Dedicated logging category for X11 standalone platform 2016-04-12 14:48:54 +02:00
non_composited_outline.cpp Move NonComposited Outline into the X11 standalone platform 2017-09-01 17:07:23 +02:00
non_composited_outline.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
overlaywindow_x11.cpp Use nullptr everywhere 2019-09-19 17:48:21 +03:00
overlaywindow_x11.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
screenedges_filter.cpp Move X11 specific event filtering for ScreenEdges into x11 standalone platform 2017-09-01 17:01:01 +02:00
screenedges_filter.h Move X11 specific event filtering for ScreenEdges into x11 standalone platform 2017-09-01 17:01:01 +02:00
screens_xrandr.cpp Split Compositor class in Wayland and X11 child classes 2019-08-07 21:06:53 +02:00
screens_xrandr.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
sync_filter.cpp Rename Client to X11Client 2019-09-25 21:11:37 +03:00
sync_filter.h Create a dedicated X11Filter for Client sync events and move it to X11 platform 2017-10-19 19:56:58 +02:00
windowselector.cpp Rename Client to X11Client 2019-09-25 21:11:37 +03:00
windowselector.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
x11.json SVN_SILENT made messages (.desktop file) - always resolve ours 2019-07-23 05:20:30 +02:00
x11_decoration_renderer.cpp Rename Client to X11Client 2019-09-25 21:11:37 +03:00
x11_decoration_renderer.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
x11_output.cpp Backport Night Color feature to X11 2019-06-17 12:09:04 +03:00
x11_output.h [platforms/x11] Delete duplicate doxygen comments in X11Output 2019-08-28 12:06:56 +03:00
x11_platform.cpp [platforms/x11/standalone] Fix stored refresh rate 2019-08-20 14:02:43 +02:00
x11_platform.h Use more traditional doxygen style 2019-07-29 22:06:19 +03:00
x11cursor.cpp Set specific edge cursor shape when resizing 2018-06-11 10:05:07 +01:00
x11cursor.h Use more traditional doxygen style 2019-07-29 22:06:19 +03:00
xfixes_cursor_event_filter.cpp Move XFixes cursor change tracking into the x11 standalone platform 2017-09-30 12:58:17 +02:00
xfixes_cursor_event_filter.h Move XFixes cursor change tracking into the x11 standalone platform 2017-09-30 12:58:17 +02:00
xinputintegration.cpp Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00
xinputintegration.h Run clang-tidy with modernize-use-override check 2019-07-22 20:03:22 +03:00