pw_utils: Wait for frame completion before queueing

Without explicit sync, we have no way to signal the PipeWire consumer when the
rendering is done. So, wait until it's done before giving it the frame.

This should fix flickering screencasts on NVIDIA.
This commit is contained in:
Ivan Molodetskikh
2025-08-03 13:29:48 +03:00
parent 15b4acc17e
commit f49ecc31c4
5 changed files with 101 additions and 80 deletions
-3
View File
@@ -2331,8 +2331,6 @@ pub struct DebugConfig {
#[knuffel(child)]
pub wait_for_frame_completion_before_queueing: bool,
#[knuffel(child)]
pub wait_for_frame_completion_in_pipewire: bool,
#[knuffel(child)]
pub enable_overlay_planes: bool,
#[knuffel(child)]
pub disable_cursor_plane: bool,
@@ -5327,7 +5325,6 @@ mod tests {
preview_render: None,
dbus_interfaces_in_non_session_instances: false,
wait_for_frame_completion_before_queueing: false,
wait_for_frame_completion_in_pipewire: false,
enable_overlay_planes: false,
disable_cursor_plane: false,
disable_direct_scanout: false,