diff --git a/src/Compositor.cpp b/src/Compositor.cpp index c7a0cfb1..02ca5363 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2285,6 +2285,8 @@ void CCompositor::updateFullscreenFadeOnWorkspace(PHLWORKSPACE pWorkspace) { } void CCompositor::setWindowFullscreen(PHLWINDOW pWindow, bool on, eFullscreenMode mode) { + static auto PNODIRECTSCANOUT = CConfigValue("misc:no_direct_scanout"); + if (!validMapped(pWindow) || g_pCompositor->m_bUnsafeState) return; @@ -2333,7 +2335,9 @@ void CCompositor::setWindowFullscreen(PHLWINDOW pWindow, bool on, eFullscreenMod return; // send a scanout tranche if we are entering fullscreen, and send a regular one if we aren't. - g_pHyprRenderer->setSurfaceScanoutMode(pWindow->m_pWLSurface->resource(), on ? PMONITOR->self.lock() : nullptr); + // ignore if DS is disabled. + if (!*PNODIRECTSCANOUT) + g_pHyprRenderer->setSurfaceScanoutMode(pWindow->m_pWLSurface->resource(), on ? PMONITOR->self.lock() : nullptr); g_pConfigManager->ensureVRR(PMONITOR); } diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 724bd69c..84d607b8 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -236,7 +236,7 @@ static void renderSurface(SP surface, int x, int y, void* da g_pHyprOpenGL->renderTexture(TEXTURE, &windowBox, ALPHA, rounding, false, true); } - if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) + if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) surface->presentFeedback(RDATA->when, RDATA->pMonitor); g_pHyprOpenGL->blend(true);