reset explicit fences before commit (#6841)

This commit is contained in:
UjinT34 2024-07-11 17:15:04 +03:00 committed by Vaxry
parent 0f09940c32
commit 6289612958
1 changed files with 8 additions and 9 deletions

View File

@ -1451,6 +1451,8 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
bool CHyprRenderer::commitPendingAndDoExplicitSync(CMonitor* pMonitor) { bool CHyprRenderer::commitPendingAndDoExplicitSync(CMonitor* pMonitor) {
// apply timelines for explicit sync // apply timelines for explicit sync
pMonitor->output->state->resetExplicitFences();
bool anyExplicit = !explicitPresented.empty(); bool anyExplicit = !explicitPresented.empty();
if (anyExplicit) { if (anyExplicit) {
Debug::log(TRACE, "Explicit sync presented begin"); Debug::log(TRACE, "Explicit sync presented begin");
@ -1478,9 +1480,6 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(CMonitor* pMonitor) {
pMonitor->lastWaitPoint = 0; pMonitor->lastWaitPoint = 0;
const auto COMMITTED_OUT = pMonitor->output->state->state().explicitOutFence;
const auto COMMITTED_IN = pMonitor->output->state->state().explicitInFence;
bool commited = pMonitor->state.commit(); bool commited = pMonitor->state.commit();
if (!commited) { if (!commited) {
Debug::log(TRACE, "Monitor state commit failed"); Debug::log(TRACE, "Monitor state commit failed");
@ -1490,13 +1489,13 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(CMonitor* pMonitor) {
pMonitor->damage.damageEntire(); pMonitor->damage.damageEntire();
} }
if (COMMITTED_IN >= 0) if (pMonitor->output->state->state().explicitInFence >= 0)
close(COMMITTED_IN); close(pMonitor->output->state->state().explicitInFence);
if (COMMITTED_OUT >= 0) { if (pMonitor->output->state->state().explicitOutFence >= 0) {
if (commited) if (commited)
pMonitor->outTimeline->importFromSyncFileFD(pMonitor->commitSeq, COMMITTED_OUT); pMonitor->outTimeline->importFromSyncFileFD(pMonitor->commitSeq, pMonitor->output->state->state().explicitOutFence);
close(COMMITTED_OUT); close(pMonitor->output->state->state().explicitOutFence);
} }
return commited; return commited;