[Bug 28723] Sound stutter in Rage when emulated windows version is set to "Windows 7" (XAudio2 -> mmdevapi sound output path)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Nov 6 14:57:25 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=28723

--- Comment #33 from Jörg Höhle <hoehle at users.sourceforge.net> 2011-11-06 14:57:25 CST ---
>Using more artificial (and even more incorrect) construct like this
Actually I believe it's quite close to correct, except for the -1.

Here's what I believe would happen to your scenario from comment #24 in native
(with >=10.500ms period, duration x4 but let's compute with 10ms periods):
0. Before start, the app prefills 30ms according to your comment #19.
At time ~0, 10ms of data is fed to the mixer, then the HW, so 20 from the
initial 30ms of data remains -- for the next 10ms, native GCP will report 20ms
padding.

>1. Timer event #0 is late by 1.1ms. At the moment callback is called 1.1ms of
>data had been actually played, 28.9ms left. ... so reported padding would still be 30ms
Native GCP returns 20ms.

2. Timer event #1 is late by 0.5ms. At the moment callback is called 10.5ms of
>data had been actually played back, 19.5ms left. Due to alsa period padding
>value reported by ALSA is ~21ms. XA2 sees that the buffer have not enough space
>to fit another 10ms of data, does nothing.
Native GCP report 10ms (441 frames), not 21. Hence according to your comment
#16, XA2 writes 10ms of data.

>3. Timer event #2 is late by 0.1ms. At the moment callback is called 20.1ms of
>data had been actually played back, 9.9ms left. Reported padding value is
>~12ms. XA2 pumps in 10ms of data to the winealsa.drv local buffer.
Native GCP reports 10ms, again causing XA2 to add another 10.

>From there on, XA2 will add 10ms at every event.

Whether the app is called late doesn't matter. It has nearly 9.9ms to supply
data. All that matters is that the native mixer calls the HW in time. MS lets
it run at one of the highest system priorities to ensure that audio will not
present hickups.  Wine can't run anything at such a priority, but it can change
it's padding to accommodate XA2 and look more like native.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the wine-bugs mailing list