Rémi Bernon : winepulse.drv: Write data to pulse in pulse_release_render_buffer.

Alexandre Julliard julliard at winehq.org
Fri Dec 17 15:14:55 CST 2021


Module: wine
Branch: master
Commit: 033cd6013ea9852244b8d58360554c964a7bb540
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=033cd6013ea9852244b8d58360554c964a7bb540

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Thu Dec 16 18:20:26 2021 +0100

winepulse.drv: Write data to pulse in pulse_release_render_buffer.

Instead of waiting for the timer loop, which sometimes causes pulse
buffer underflows.

This greatly reduces the amount of underflows in Prince of Persia: The
Forgotten Sands, as well as in Forza Horizon 4 introduction and menu
audio, which are suffering from audio clicks since PE xaudio conversion.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52225
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winepulse.drv/pulse.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
index fb8133e9e45..bd886e0d879 100644
--- a/dlls/winepulse.drv/pulse.c
+++ b/dlls/winepulse.drv/pulse.c
@@ -1675,6 +1675,9 @@ static NTSTATUS pulse_release_render_buffer(void *args)
     stream->clock_written += written_bytes;
     stream->locked = 0;
 
+    /* push as much data as we can to pulseaudio too */
+    pulse_write(stream);
+
     TRACE("Released %u, held %lu\n", params->written_frames, stream->held_bytes / pa_frame_size(&stream->ss));
 
     pulse_unlock();




More information about the wine-cvs mailing list