[PATCH 3/3] winepulse.drv: Write data to pulse in pulse_release_render_buffer.

Andrew Eikum aeikum at codeweavers.com
Fri Dec 17 10:02:18 CST 2021


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Thu, Dec 16, 2021 at 06:20:26PM +0100, Rémi Bernon wrote:
> 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>
> ---
>  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();
> -- 
> 2.34.0
> 
> 



More information about the wine-devel mailing list