internal: Solitary clients with single subsurface & verbose solitary/tearing/DS checks (#11228)

Adds more verbose checks for various conditional rendering mechanisms
This commit is contained in:
UjinT34 2025-08-22 20:24:25 +03:00 committed by GitHub
parent e95ba5bf59
commit 0d45b277d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 551 additions and 137 deletions

View file

@ -2400,8 +2400,11 @@ void CCompositor::setWindowFullscreenState(const PHLWINDOW PWINDOW, SFullscreenS
// send a scanout tranche if we are entering fullscreen, and send a regular one if we aren't.
// ignore if DS is disabled.
if (*PDIRECTSCANOUT == 1 || (*PDIRECTSCANOUT == 2 && PWINDOW->getContentType() == CONTENT_TYPE_GAME))
g_pHyprRenderer->setSurfaceScanoutMode(PWINDOW->m_wlSurface->resource(), EFFECTIVE_MODE != FSMODE_NONE ? PMONITOR->m_self.lock() : nullptr);
if (*PDIRECTSCANOUT == 1 || (*PDIRECTSCANOUT == 2 && PWINDOW->getContentType() == CONTENT_TYPE_GAME)) {
auto surf = PWINDOW->getSolitaryResource();
if (surf)
g_pHyprRenderer->setSurfaceScanoutMode(surf, EFFECTIVE_MODE != FSMODE_NONE ? PMONITOR->m_self.lock() : nullptr);
}
g_pConfigManager->ensureVRR(PMONITOR);
}