summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/backend/renderer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp
index 8fa68191d..0b975a3d3 100644
--- a/src/render/backend/renderer.cpp
+++ b/src/render/backend/renderer.cpp
@@ -621,6 +621,11 @@ void Renderer::lockSurfaceAndRender()
if (!createSurfaceLockAndMakeCurrent()) {
m_surfaceLockers.clear();
abortRenderJobs();
+ // We cannot render because we could not lock the surface or the surface is a nullptr.
+ // However, the surface might change in the next frontend/backend sync.
+ // We therefore need to make sure the aspect thread does not get stuck waiting for
+ // the next frame.
+ m_vsyncFrameAdvanceService->proceedToNextFrame();
return;
}
// Let the aspect thread know that we promise to render