summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2025-04-07 14:03:27 -0500
committerGitHub <noreply@github.com>2025-04-07 21:03:27 +0200
commitda86db43d47141b9d7332d3cb756ff7c05dbb39a (patch)
tree7b187bc96aedceda108b51eff034ba75e33fb510 /src/render/Renderer.cpp
parent70ae99f52162a0ed2723d45c63adfb2e61f4e2f5 (diff)
core: refactor and improve surface commit (#9805)
* make CHLBufferReference not a SP anymore * copy over release and acquire points in CHLBufferReference * use CHLBufferReference in screencopy and toplevel export TODO: use CHLBufferReference in direct scanout properly the only problem is the scanout buffer release timing, specifically the onBackendRelease mechanism * cleanup SSurfaceState and surface pending commit tracking * move surface code from DRMSyncobj, and move acquire to SSurfaceState * use queue for comitted pending surface states like proto says "The content update is placed in a queue until it becomes active." - wl_surface::commit * drop, not release, prev buffer if 2nd buffer wl_surface.attach is sent "A wl_buffer that has been attached and then replaced by another attach instead of committed will not receive a release event, and is not used by the compositor." - wl_surface::attach
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index dca76f63..dc5c1284 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1565,10 +1565,10 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) {
Debug::log(TRACE, "Explicit: can't add sync, monitor has no EGLSync");
else {
for (auto const& e : explicitPresented) {
- if (!e->current.buffer || !e->current.buffer->buffer->syncReleaser)
+ if (!e->current.buffer || !e->current.buffer->syncReleaser)
continue;
- e->current.buffer->buffer->syncReleaser->addReleaseSync(pMonitor->eglSync);
+ e->current.buffer->syncReleaser->addReleaseSync(pMonitor->eglSync);
}
}