diff options
| author | UjinT34 <41110182+UjinT34@users.noreply.github.com> | 2026-02-04 03:27:48 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-04 00:27:48 +0000 |
| commit | 1bc857b12c434b7255119de009a50237856a90b2 (patch) | |
| tree | 9520cdafe416155beb77e6cedf5420c42e32f6d6 /src/protocols/core/Compositor.cpp | |
| parent | cd7bdc7a43542370b5f57b97b25302a24abce126 (diff) | |
fifo: miscellaneous fifo fixes (#13136)
* LOGM: clang-tidy fix
* fix fifo state and scheduling
* disable fifo_pending_workaround by default
* fix tearing
* fix "empty" commit skipping
Diffstat (limited to 'src/protocols/core/Compositor.cpp')
| -rw-r--r-- | src/protocols/core/Compositor.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index 9fc44703..2fd586a8 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -517,6 +517,15 @@ void CWLSurfaceResource::scheduleState(WP<SSurfaceState> state) { } void CWLSurfaceResource::commitState(SSurfaceState& state) { + // TODO might be incorrect. needed for VRR with FIFO to avoid same buffer extra frames for second commit when it's used in this way: + // wp_fifo_v1#43.set_barrier() + // wp_fifo_v1#43.wait_barrier() + // wl_surface#3.commit() + // wp_fifo_v1#43.wait_barrier() + // wl_surface#3.commit() + if (!state.updated.all && m_mapped && state.fifoScheduled) + return; + auto lastTexture = m_current.texture; m_current.updateFrom(state); |
