diff options
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 62e4b77d..b76d67e5 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1526,21 +1526,19 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) { return ok; Debug::log(TRACE, "Explicit: {} presented", explicitPresented.size()); - auto sync = g_pHyprOpenGL->createEGLSync(pMonitor->inFence.get()); - if (!sync) - Debug::log(TRACE, "Explicit: can't add sync, EGLSync failed"); + if (!pMonitor->eglSync) + Debug::log(TRACE, "Explicit: can't add sync, monitor has no EGLSync"); else { for (auto const& e : explicitPresented) { if (!e->current.buffer || !e->current.buffer->buffer || !e->current.buffer->buffer->syncReleaser) continue; - e->current.buffer->buffer->syncReleaser->addReleaseSync(sync); + e->current.buffer->buffer->syncReleaser->addReleaseSync(pMonitor->eglSync); } } explicitPresented.clear(); - pMonitor->output->state->resetExplicitFences(); return ok; } @@ -2257,13 +2255,13 @@ void CHyprRenderer::endRender() { auto explicitOptions = getExplicitSyncSettings(PMONITOR->output); if (PMONITOR->inTimeline && explicitOptions.explicitEnabled && explicitOptions.explicitKMSEnabled) { - auto sync = g_pHyprOpenGL->createEGLSync(); - if (!sync) { + PMONITOR->eglSync = g_pHyprOpenGL->createEGLSync(); + if (!PMONITOR->eglSync) { Debug::log(ERR, "renderer: couldn't create an EGLSync for out in endRender"); return; } - bool ok = PMONITOR->inTimeline->importFromSyncFileFD(PMONITOR->commitSeq, sync->fd()); + bool ok = PMONITOR->inTimeline->importFromSyncFileFD(PMONITOR->commitSeq, PMONITOR->eglSync->fd()); if (!ok) { Debug::log(ERR, "renderer: couldn't import from sync file fd in endRender"); return; |
