http://bugs.winehq.org/show_bug.cgi?id=17317
Summary: NVIDIA driver: GLXBadDrawable on every second run of a DirectX app. Product: Wine Version: 1.1.14 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: felix.kuperjans@gmx.de
I'm using the newest version of the proprietary NVIDIA driver (180.22 and 180.27 with the same problem) and I can run every DirectX game fine (even with Multisampling), but when I try to run the same game again (or another), I'm getting a GLXBadDrawable error. I also tried disabling Multisampling in wine and lower resolutions. I encounter this bug in any DirectX oder even DirectDraw game, with all resolutions, so I don't think it could be a memory problem (I have 512 MB dedicated and even games with a usage of less than 32 MB without Multisampling have this problem). I don't have this problem when I don't use wine (for example XEN-HVM with OpenGL VFB or Unreal Tournament 2004 Linux version can start as often as I want with all settings without problems). Only wine apps can't start anymore. This seems to be NVIDIA driver related (there's already a bug in the NVIDIA forum: http://www.nvnews.net/vbulletin/showthread.php?t=124730), but because it only happens with wine's OpenGL and not wiht other OpenGL app, it might be a wine problem (or can be avoided by wine although it's a driver bug). I'd like to hear if others have the same problems and/or further information. I'd also like to understand what causes this bug (it seems to be some locking mechanism, see messages below) and if I can avoid it (my only solution is restarting X, what is not really a solution).
This is the error message: X Error of failed request: GLXBadDrawable Major opcode of failed request: 142 (GLX) Minor opcode of failed request: 5 (X_GLXMakeCurrent) Serial number of failed request: 623 Current serial number in output stream: 623 Locking assertion failure. Backtrace: #0 /usr/lib32/libxcb-xlib.so.0 [0x7efee767] #1 /usr/lib32/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0x7efee81e] #2 /usr/lib32/libX11.so.6 [0x7e3a1dc9] #3 /usr/lib32/libX11.so.6(XESetCloseDisplay+0x44) [0x7e383e14] #4 /usr/lib32/libGL.so.1 [0x7d6d4049] #5 [0x7c060cf0]