renderer: disable explicit if aquamarine output doesn't support it (#9396) (#9398)

The explicit settings ignore the aquamarine output.supportsExplicit
attribute, which creates glitches on drivers not supporting explicit
sync (example: freedreno).

If the output has been set as not supporting explicit, disable the
explicit settings.
This commit is contained in:
Anthony Ruhier
2025-02-13 12:09:25 +01:00
committed by GitHub
parent 208f94fe12
commit 5d2b008294
3 changed files with 13 additions and 5 deletions

View File

@@ -1312,7 +1312,7 @@ bool CMonitor::attemptDirectScanout() {
return false;
}
auto explicitOptions = g_pHyprRenderer->getExplicitSyncSettings();
auto explicitOptions = g_pHyprRenderer->getExplicitSyncSettings(output);
// wait for the explicit fence if present, and if kms explicit is allowed
bool DOEXPLICIT = PSURFACE->syncobj && PSURFACE->syncobj->current.acquireTimeline && PSURFACE->syncobj->current.acquireTimeline->timeline && explicitOptions.explicitKMSEnabled;