http://bugs.winehq.org/show_bug.cgi?id=20380
--- Comment #55 from Roderick Colenbrander thunderbird2k@gmail.com 2009-12-27 10:43:01 --- (In reply to comment #54)
I can also reproduce this bug. I am using R600 GPU with OSS experimental drivers (everything, including XServer, from git masters). Is there any way I can help improving the situation? I'm a bit experienced programmer and I've already beaten one wine bug (#10610), but it took me a day :). Maybe some hints or something like that how can I help? I'll hopefully find some time to accomplish the task.
Could you remind me what is the direct cause of error (null access, weird library client behaviour) and where should I look for bad code? You said something about locking that's not done in some places as one of the reason of crash, didn't you?
To be honest since I haven't been able to reproduce the bug (I don't understand anything about the game either) I'm not sure where it is. Another game has a similar problem and it is a bit 'timing' related (perhaps some threading issue). I suspect that the issue is triggered by BitBlt from x11_copy_to_screen in wined3d. The bug is likely somewhere in the dibsection code which is mostly in dlls/winex11.drv/dib.c / bitblt.c / xrender.c.
The issue is very hard to debug because we perform memory access tricks throughout all dibsection code.