[Bug 29170] [regression] Far Cry (in Wine) hangs on level load
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Jul 20 10:22:49 PDT 2010
https://bugs.freedesktop.org/show_bug.cgi?id=29170
--- Comment #1 from Nick Bowler <nbowler at draconx.ca> 2010-07-20 10:22:49 PDT ---
Created an attachment (id=37248)
View: https://bugs.freedesktop.org/attachment.cgi?id=37248
Review: https://bugs.freedesktop.org/review?bug=29170&attachment=37248
Make global GLX mutex recursive.
Sigh. Here's a horrible, horrible hack that should get the game working until
someone who understands mesa locking comes up with a better idea.
Looks like if a dri2 context is destroyed while a swap event is pending (seems
to happen easily if there are two contexts in one application, maybe it only
happens in this case?), we get a deadlock. The garbage collector is called
while holding the global glx mutex, which calls XSync, which tries to handle
the pending swap event, which tries to take the mutex --> boom.
Looking at the code, it doesn't seem like this is entirely a new problem,
either: invalidate events also take the global mutex in DRI2WireToEvent and I
imagine they can cause a similar deadlock.
There's nothing radeon-specific about this, every DRI2 driver should be
affected.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the dri-devel
mailing list