From 280cc2befba99ffde25fe7c287174143a9539d32 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Tue, 6 Nov 2018 15:14:45 +0100 Subject: Fix flickering (black frames) of wayland clients on NVIDIA When using the threaded render loop rendering the texture we acquired from the eglstream is done in a different thread. This rendering needs to be finished before the next acquire call for the eglstream is done otherwise we might end up rendering a broken (black) frame and see the client flicker. To fix this, make sure to send the frame callbacks after the rendering was completed and not before the rendering starts. Change-Id: I5a75914d14d2df7fa8b6bbd526f87e3ef6208cd6 Task-number: QTBUG-71697 Reviewed-by: Paul Olav Tvete --- src/compositor/compositor_api/qwaylandquickoutput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compositor/compositor_api/qwaylandquickoutput.cpp b/src/compositor/compositor_api/qwaylandquickoutput.cpp index 79e4fdec..c6294eea 100644 --- a/src/compositor/compositor_api/qwaylandquickoutput.cpp +++ b/src/compositor/compositor_api/qwaylandquickoutput.cpp @@ -66,7 +66,7 @@ void QWaylandQuickOutput::initialize() this, &QWaylandQuickOutput::updateStarted, Qt::DirectConnection); - connect(quickWindow, &QQuickWindow::beforeRendering, + connect(quickWindow, &QQuickWindow::afterRendering, this, &QWaylandQuickOutput::doFrameCallbacks); } -- cgit v1.2.1