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
This commit is contained in:
UjinT34 2026-02-04 03:27:48 +03:00 committed by GitHub
parent cd7bdc7a43
commit 1bc857b12c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 82 additions and 47 deletions

View file

@ -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);