summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 38b5d151..68df3418 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1767,6 +1767,9 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR
return true;
}
+ const auto WAS10B = pMonitor->enabled10bit;
+ const auto OLDRES = pMonitor->vecPixelSize;
+
// Needed in case we are switching from a custom modeline to a standard mode
pMonitor->customDrmMode = {};
bool autoScale = false;
@@ -2107,8 +2110,8 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR
pMonitor->updateMatrix();
- // update renderer (here because it will call rollback, so we cannot do this before committing)
- g_pHyprOpenGL->destroyMonitorResources(pMonitor);
+ if (WAS10B != pMonitor->enabled10bit || OLDRES != pMonitor->vecPixelSize)
+ g_pHyprOpenGL->destroyMonitorResources(pMonitor);
// updato wlroots
g_pCompositor->arrangeMonitors();