diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index b5a32a2b9..6800c1857 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -2145,8 +2145,9 @@ void IHyprRenderer::renderMonitor(PHLMONITOR pMonitor, bool commit) { Event::bus()->m_events.render.stage.emit(RENDER_POST); pMonitor->m_output->state->addDamage(frameDamage); - pMonitor->m_output->state->setPresentationMode(shouldTear ? Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_IMMEDIATE : - Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_VSYNC); + auto presentationMode = shouldTear ? Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_IMMEDIATE : Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_VSYNC; + if (pMonitor->m_output->state->state().presentationMode != presentationMode) + pMonitor->m_output->state->setPresentationMode(presentationMode); if (commit) commitPendingAndDoExplicitSync(pMonitor);