[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
Wed Dec 14 09:22:28 CST 2011


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

--- Comment #85 from Jörg Höhle <hoehle at users.sourceforge.net> 2011-12-14 09:22:28 CST ---
>We can't set max(3xperiod) because then [...] on someone's system.
I see.  Too bad.

>they already have at least 3 ALSA periods in their buffer by default
No idea. I've typically observed 4-6, but I feel ALSA ought to work with 2.

>We now use set_buffer_size_min() instead of _near().
That's a bad move. near is a clear indicator of what we want.  min or max are
completely ignored unless the limit is hit during constraint resolution.  As a
result, with min only, PA will use its typical 2s buffer.

I've not yet thought about the smallest buffer size that winealsa needs to
work.

+    if(period)
+        This->mmdev_period_rt = period;
I'd like to eventually see if(!period || mode==SHARED) = DefaultPeriod
I'm currently using testbot to obtain the min & max values.

>"while () write_limit+=;"
I've had cases with alsa_period=8 frames vs 448 mmdevapi period.  That needs
quite a few iterations through the loop and should be replaced by a straight
formula to directly compute the limit instead.


I've made some progress with PA.  The sequence prepare + drop + prepare(!)
manages to prevent the too large avail & delay values reported in comment #63
past an underrun, at least with the old Ubuntu Intrepid PA.  There's still an
issue that it may spit out a sequence of "handling underrun" for over 100ms
until it gets back to normal behaviour.

-- 
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