diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index d98e32a95..37e6f81ee 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1507,6 +1507,9 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
     pMonitor->output->state->resetExplicitFences();
     if (inFD >= 0)
         pMonitor->output->state->setExplicitInFence(inFD);
+    auto explicitOptions = getExplicitSyncSettings();
+    if (explicitOptions.explicitEnabled && explicitOptions.explicitKMSEnabled)
+        pMonitor->output->state->enableExplicitOutFenceForNextCommit();
 
     if (pMonitor->ctmUpdated) {
         pMonitor->ctmUpdated = false;
@@ -1530,8 +1533,6 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
         }
     }
 
-    auto explicitOptions = getExplicitSyncSettings();
-
     if (!explicitOptions.explicitEnabled)
         return ok;