diff options
| author | Ikalco <73481042+ikalco@users.noreply.github.com> | 2025-03-08 13:24:22 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-08 20:24:22 +0100 |
| commit | d30cc19d253a3db784ad10c3084f58cbb52d325a (patch) | |
| tree | f103d165ae71579be9211ca4499de370b8be648e /src/render/Renderer.cpp | |
| parent | f15b49e0fd54d2cecc77f7eedbf7cd8f22215707 (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.cpp | 4 |
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]() { |
