summaryrefslogtreecommitdiff
path: root/src/protocols/ToplevelExport.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-06-03 21:10:31 +0200
committerVaxry <vaxry@vaxry.net>2024-06-03 21:10:31 +0200
commit0ac0f32671b949b7bde276f1175bed035fb09fd9 (patch)
tree96413f1e774c2c0a4bd3a9c8f96968cd9b56d8ac /src/protocols/ToplevelExport.cpp
parentb30c7125d73f26b5919293e6743768d5f13cedc2 (diff)
toplevelexport: avoid locking software cursors during render
this may trigger a render begin/end and fuck up the pass fixes #6277
Diffstat (limited to 'src/protocols/ToplevelExport.cpp')
-rw-r--r--src/protocols/ToplevelExport.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp
index d3b71a9e..14629214 100644
--- a/src/protocols/ToplevelExport.cpp
+++ b/src/protocols/ToplevelExport.cpp
@@ -378,16 +378,16 @@ bool CToplevelExportProtocolManager::copyFrameShm(SScreencopyFrame* frame, times
CFramebuffer outFB;
outFB.alloc(PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y, g_pHyprRenderer->isNvidia() ? DRM_FORMAT_XBGR8888 : PMONITOR->drmFormat);
- if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &outFB)) {
- wlr_buffer_end_data_ptr_access(frame->buffer);
- return false;
- }
-
if (frame->overlayCursor) {
g_pPointerManager->lockSoftwareForMonitor(PMONITOR->self.lock());
g_pPointerManager->damageCursor(PMONITOR->self.lock());
}
+ if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &outFB)) {
+ wlr_buffer_end_data_ptr_access(frame->buffer);
+ return false;
+ }
+
g_pHyprOpenGL->clear(CColor(0, 0, 0, 1.0));
// render client at 0,0