diff options
| author | Tom Englund <tomenglund26@gmail.com> | 2025-03-20 11:39:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-20 11:39:55 +0100 |
| commit | f6ca4bac51595555916f7403ae178680791f824c (patch) | |
| tree | a76ced32c16ada9ca99bccf548a7eaa034297298 /src/protocols/core/Compositor.cpp | |
| parent | 155eba57d81fa2553f1eda8788bd9d1a16947a43 (diff) | |
syncobj: restore SHM buffer reset (#9675)
reset shm buffers early to mitigate stuttering animations, also reuse
the monitors eglSync and store the eglsync per monitor. this however
reintroduces flickering in dbeaver nonsyncobj application.
Diffstat (limited to 'src/protocols/core/Compositor.cpp')
| -rw-r--r-- | src/protocols/core/Compositor.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index a9fe33db..a3576c7e 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -471,12 +471,10 @@ void CWLSurfaceResource::commitPendingState(SSurfaceState& state) { nullptr); } - // release the buffer if it's synchronous as update() has done everything thats needed + // release the buffer if it's synchronous (SHM) as update() has done everything thats needed // so we can let the app know we're done. - // if (!syncobj && current.buffer && current.buffer->buffer && current.buffer->buffer->isSynchronous()) { - // dropCurrentBuffer(); // lets not drop it at all, it will get dropped on next commit if a new buffer arrives. - // solves flickering on nonsyncobj apps on explicit sync. - // } + if (current.buffer && current.buffer->buffer && current.buffer->buffer->isSynchronous()) + dropCurrentBuffer(); } void CWLSurfaceResource::updateCursorShm(CRegion damage) { |
