summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-07-21 23:25:20 +0200
committerVaxry <vaxry@vaxry.net>2024-07-21 23:52:16 +0200
commit672bf1f8670b200da57e2f6de4e9ed7efd8c98fc (patch)
treea71b71c6ab48031e0217ebfacd85e7159a4e9d1a
parent33e933e2a020c874037df568d6c033ae20f30bf7 (diff)
compositor: ignore setting surface scanout if DS is disabled
-rw-r--r--src/Compositor.cpp6
-rw-r--r--src/render/Renderer.cpp2
2 files changed, 6 insertions, 2 deletions
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<Hyprlang::INT>("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<CWLSurfaceResource> 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);