From 912e7ba82defdb10efc892a5db578598c972fe4a Mon Sep 17 00:00:00 2001 From: vaxerski Date: Sat, 17 Aug 2024 19:27:11 +0200 Subject: render: fixup format mismatch after leaving DS fixes #7373 --- src/render/Renderer.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 6bf6a761..b363c287 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1207,6 +1207,9 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) { } else if (!pMonitor->lastScanout.expired()) { Debug::log(LOG, "Left a direct scanout."); pMonitor->lastScanout.reset(); + + // reset DRM format, make sure it's the one we want. + pMonitor->output->state->setFormat(pMonitor->drmFormat); } } @@ -2155,6 +2158,7 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR for (auto& fmt : formats[(int)!RULE->enable10bit]) { pMonitor->output->state->setFormat(fmt.second); + pMonitor->drmFormat = fmt.second; if (!pMonitor->state.test()) { Debug::log(ERR, "output {} failed basic test on format {}", pMonitor->szName, fmt.first); -- cgit v1.2.3