summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2025-03-08 13:24:22 -0600
committerGitHub <noreply@github.com>2025-03-08 20:24:22 +0100
commitd30cc19d253a3db784ad10c3084f58cbb52d325a (patch)
treef103d165ae71579be9211ca4499de370b8be648e /src/render/Renderer.cpp
parentf15b49e0fd54d2cecc77f7eedbf7cd8f22215707 (diff)
renderer: skip ds commits if buffer didn't change (#9556)
this fixes direct scanout glitches by ensuring that attemptDirectScanout doesn't try to recommit the same buffer to AQ which would cause a pageflip event and the backendRelease to release the same buffer too early
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 2ebf5629..3175b915 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1486,6 +1486,8 @@ static hdr_output_metadata createHDRMetadata(SImageDescription settings, Aquamar
}
bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
+ pMonitor->commitSeq++;
+
// apply timelines for explicit sync
// save inFD otherwise reset will reset it
CFileDescriptor inFD{pMonitor->output->state->state().explicitInFence};
@@ -2278,8 +2280,6 @@ void CHyprRenderer::endRender() {
const auto PMONITOR = g_pHyprOpenGL->m_RenderData.pMonitor;
static auto PNVIDIAANTIFLICKER = CConfigValue<Hyprlang::INT>("opengl:nvidia_anti_flicker");
- PMONITOR->commitSeq++;
-
g_pHyprOpenGL->m_RenderData.damage = m_sRenderPass.render(g_pHyprOpenGL->m_RenderData.damage);
auto cleanup = CScopeGuard([this]() {