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