kwin/platformsupport/scenes/opengl
Vlad Zahorodnii 9c20df5030 screencast: Use fences to avoid stalling the graphics pipeline
Currently, we use glFinish() to ensure that stream consumers don't see
corrupted or rather incomplete buffers. This is a serious issue because
glFinish() not only prevents the gpu from processing new GL commands,
but it also blocks the compositor.

This change addresses the blocking issue by using native fences. With
the proposed change, after finishing recording a frame, a fence is
inserted in the command stream. When the native fence is signaled, the
pending pipewire buffer will be enqueued.

If the EGL_ANDROID_native_fence_sync extension is not supported, we'll
fall back to using glFinish().
2020-10-19 14:23:06 +00:00
..
abstract_egl_backend.cpp screencast: Use fences to avoid stalling the graphics pipeline 2020-10-19 14:23:06 +00:00
abstract_egl_backend.h Introduce persistent global share context 2020-10-19 12:13:15 +03:00
backend.cpp Implement EGL_KHR_partial_update and EGL_EXT_swap_buffers_with_damage 2020-08-19 14:51:42 +00:00
backend.h screencast: Use fences to avoid stalling the graphics pipeline 2020-10-19 14:23:06 +00:00
CMakeLists.txt Port KWin to KWaylandServer 2020-04-30 12:56:08 +02:00
drm_fourcc.h Switch to SPDX license markers 2020-08-07 19:57:56 +00:00
egl_dmabuf.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
egl_dmabuf.h Prettify license headers 2020-08-07 19:57:56 +00:00
kwineglext.h Prettify license headers 2020-08-07 19:57:56 +00:00
swap_profiler.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
swap_profiler.h Prettify license headers 2020-08-07 19:57:56 +00:00
texture.cpp Prettify license headers 2020-08-07 19:57:56 +00:00
texture.h Prettify license headers 2020-08-07 19:57:56 +00:00