summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-02 15:36:13 +0000
committerVaxry <vaxry@vaxry.net>2024-02-02 15:36:13 +0000
commitcf1886ca44c78de3424d96fd18023eb0db759af6 (patch)
treeff820814665ab4df6a8915e2226bdc2ae298f8bf /src/render/Renderer.cpp
parent341e04a36ce5254315a40c563ea7f5d891b289e8 (diff)
renderer: avoid unnecessary gpu resource deletions
fixes #4594
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();