summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-10-07 22:19:23 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-10-07 22:19:23 +0100
commitabc2d442dd41cfd41e5c88795a4e892a6d2750dc (patch)
treecba1038894cc37e0364408bd5daa3a90f41616f6 /src/render/OpenGL.cpp
parent33d264eaa78b10d38d483900a293d09eff00faad (diff)
fix a VRAM leak in destroyMonitorResources
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 94bb1872..0e84fb7f 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -1287,6 +1287,8 @@ void CHyprOpenGLImpl::clearWithTex() {
}
void CHyprOpenGLImpl::destroyMonitorResources(CMonitor* pMonitor) {
+ wlr_output_attach_render(pMonitor->output, nullptr);
+
g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorFB.release();
g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].primaryFB.release();
g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorSwapFB.release();
@@ -1298,4 +1300,6 @@ void CHyprOpenGLImpl::destroyMonitorResources(CMonitor* pMonitor) {
g_pHyprOpenGL->m_mMonitorBGTextures.erase(pMonitor);
Debug::log(LOG, "Monitor %s -> destroyed all render data", pMonitor->szName.c_str());
+
+ wlr_output_rollback(pMonitor->output);
}