From f17f8b219c699ab52f3d784cad90bdef5bb78188 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 22 Jul 2024 19:05:24 +0200 Subject: [PATCH] pointer/hw: extend cursor swapchain to 3 otherwise on some commits we draw twice and we draw over the front buffer --- src/managers/PointerManager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index b1542fed..55bd0509 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -373,7 +373,10 @@ SP CPointerManager::renderHWCursorBuffer(SPmonitor->cursorSwapchain->currentOptions(); options.size = maxSize; - options.length = 2; + // TODO: this is a band-aid. If the current cursor image has not yet been committed (no rendering has yet been done) + // we should revert the swapchain and avoid rendering to the front buffer. + // as a band-aid, extend the swapchain to 3 as we sometimes double-render on a cursor shape change. + options.length = 3; options.scanout = true; options.cursor = true; options.multigpu = state->monitor->output->getBackend()->preferredAllocator()->drmFD() != g_pCompositor->m_iDRMFD;