Summary: | [945GM] Latest stable driver causes jack xruns | ||
---|---|---|---|
Product: | xorg | Reporter: | Ray Rashif <schivmeister> |
Component: | Driver/intel | Assignee: | Jesse Barnes <jbarnes> |
Status: | RESOLVED INVALID | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | medium | Keywords: | NEEDINFO |
Version: | 7.4 (2008.09) | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Ray Rashif
2009-09-06 02:37:11 UTC
Current workarounds (thanks to Jesse, and Dominic from LAU for the confirmation of these): == Partial == # /etc/X11/xorg.conf ... Section "Device" Identifier "Intel GMA 950" Option "SwapbuffersWait" "false" EndSection ... # This one only decreases the amount of xruns, i.e only 1 xrun per set of minimising events instead of say, 1 for every minimise and de-minimise action. As such, problem is still there and it's significant. Stopping compositing via the WM (eg. KWin Effects; ALT+SHIFT+F12) also triggers a burst of these underruns. == Full == Downgrade to xf86-video-intel 2.7.1 and use an older renderer: # /etc/X11/xorg.conf ... Section "Device" Identifier "Intel GMA 950" Option "RenderAccel" "EXA" EndSection ... # With this method, no more xruns but you have to live with the theoretically-sub-optimal 2D rendering. I believe this can be confirmed as a UXA side-effect. Whether a bug or not, or simply a result of a method (eg. the new type of buffering) which _needs_ to be used, is left to the developers to decide. Oops, major typo above: s/RenderAccel/AccelMethod/ # /etc/X11/xorg.conf ... Section "Device" Identifier "Intel GMA 950" Option "AccelMethod" "EXA" EndSection ... # So both of those options will affect how long the X server will block for. It could be blocked for other reasons though too, so it's probably a bad idea to have clients that depend on getting X time in order to stream audio. Do you know which clients are waiting for X before processing audio data? If it's just X applications, I would expect them to have trouble writing to jackd if the server was blocked, but you may be able to increase the buffering size to avoid that? There shouldn't be any such clients (even if there are it shouldn't be a significant amount of time to trigger this), at least not those communicating with jackd. The xruns occur without any client, i.e on server idle - as long as there are window manager events like minimising, moving, switching desktops etc. Buffer size has no effect; tested from 128 to 1024 (anything beyond that is not practical for ADC/DAC). The only cause for this should be the new buffering in UXA, or something else, but definitely UXA-related. I will see if latencytop provides anything useful, though I doubt it. Any update here? If you think my theory about the X server is wrong, then it must be something in the kernel blocking your jackd process... timeout |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.