[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 Nov 16 04:16:08 CST 2011


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

Jörg Höhle <hoehle at users.sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |1.4.0

--- Comment #49 from Jörg Höhle <hoehle at users.sourceforge.net> 2011-11-16 04:16:08 CST ---
A closer inspection of test data submitted to me shows that GetPosition is
behind the dynamic limit 'sum of ReleasedFrames - GetCurrentPadding' by 30-40ms
in shared mode (24-34ms with one 5:1 card), i.e. it's outside the mmdevapi
buffer.  In exclusive mode, GetPosition alternates around that limit.

Thinking about a mixer, I've observed that it's easy to write a 3 period one
(one period playing, one fully prepared which the HW already knows to play next
and the third one where mixing occurs).  Attempting to use 2 only is possible
but requires the system to tell the HW which buffer to play next right before
underrun would happen.  This does not fit a periodic timer model.

Back to the 2 period 20ms buffer event-driven app.  It's not the sustained 10ms
rate that causes trouble, it's the assumption that Wine ought to feed ALSA from
solely 20ms.  That leads to seeking problematic speedups, like believing that
ReleaseBuffer must call write.  Add a 10ms lead, and you are in still water.

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