From 3cf004b68ef1df6e1d15f1746eafd779800b99d9 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Mon, 27 Jul 2020 13:05:27 +0300 Subject: [PATCH] Don't flush in SurfaceInterface::frameRendered() Frame callbacks only indicate when the client can start rendering a new frame, it's not meant to be precise. If the client wants to do some black magic with frame scheduling and so on, it needs to use a protocol such as presentation_time. This change removes the pointless flush to prevent over-flushing client connections. --- src/wayland/surface_interface.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/wayland/surface_interface.cpp b/src/wayland/surface_interface.cpp index 9587b1f382..0a61f8ed6a 100644 --- a/src/wayland/surface_interface.cpp +++ b/src/wayland/surface_interface.cpp @@ -426,7 +426,6 @@ QList SurfaceInterface::surfaces() void SurfaceInterface::frameRendered(quint32 msec) { // notify all callbacks - const bool needsFlush = !d->current.frameCallbacks.isEmpty(); while (!d->current.frameCallbacks.isEmpty()) { KWaylandFrameCallback *frameCallback = d->current.frameCallbacks.takeFirst(); frameCallback->send_done(msec); @@ -439,9 +438,6 @@ void SurfaceInterface::frameRendered(quint32 msec) } subSurface->d_func()->surface->frameRendered(msec); } - if (needsFlush) { - client()->flush(); - } } QMatrix4x4 SurfaceInterfacePrivate::buildSurfaceToBufferMatrix(const State *state)