http://bugs.winehq.org/show_bug.cgi?id=22588
--- Comment #21 from Roderick Colenbrander thunderbird2k@gmail.com 2010-05-11 08:52:06 --- Initially I expected that this issue is perhaps related to some locking we perform before each opengl call in wined3d. In our winex11 code we also perform these locks. Recently I noticed (but didn't look at it thoroughly yet) that wined3d is again behaving not that nice with the locks (double locking which can cause issues for some calls being made).
You could try what happens if you disable the locking from the wined3d side. To do so open dlls/wined3d/wined3d_main.c. Somewhere you'll see: mod = GetModuleHandleA( "winex11.drv" ); if (mod) { wine_tsx11_lock_ptr = (void *)GetProcAddress( mod, "wine_tsx11_lock" ); wine_tsx11_unlock_ptr = (void *)GetProcAddress( mod, "wine_tsx11_unlock" ); } else /* We are most likely on Windows */ { wine_tsx11_lock_ptr = wined3d_do_nothing; wine_tsx11_unlock_ptr = wined3d_do_nothing; }
The easiest way is just to comment the GetModuleHandleA line.