summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2024-08-17 19:27:11 +0200
committervaxerski <vaxry@vaxry.net>2024-08-17 19:27:20 +0200
commit912e7ba82defdb10efc892a5db578598c972fe4a (patch)
tree7dc53a804c0faee9d64fd08f9f7b28ae947e249a /src/render/Renderer.cpp
parent92744b5b9aa386257bf243c957ab64f7f4171a19 (diff)
render: fixup format mismatch after leaving DS
fixes #7373
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp4
1 files changed, 4 insertions, 0 deletions
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);