http://bugs.winehq.org/show_bug.cgi?id=5146
Summary: Wine x11driver does not work correctly with glx 1.2 servers Product: Wine Version: 0.9.12. Platform: All OS/Version: All Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-x11driver AssignedTo: wine-bugs@winehq.org ReportedBy: srainwater@ncc.com
Certain functions such as glXChooseFBConfig that are supported by glx 1.3 and higher servers are called even when a glx 1.2 server is used, resulting in crashes. This problem seems to affect all wine users who rely on Mesa OpenGL support (as used in xorg/xfree86 when hardware acceleration is not available). This is because Mesa doesn't support glXChooseFBConfig and other 1.3 APIs yet.
This is a regression. Wine versions 20050419 and earlier used alternate 1.2 APIs such as glXChooseVisual which worked with both glx 1.2 and 1.3 servers. The offending code is found in /dlls/x11drv/opengl.c - there may be other areas of the code involved as well but the use of the 1.3 API to select the X drawable seems to be the main culprit.
A good approach would be to follow the guidelines suggested in the OpenGL documentation and query the server to determine if it supports the 1.2 or 1.3 API and then use the appropriate set of functions to obtain an X drawable. An example of this method is described here:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.i...
By falling back to 1.2 functions when a 1.3 glx server is not available, many apps in the app database which used to work with wine version 20050419 and earlier should be usable again. In particular, many of those failing with this error:
X11DRV_ChoosePixelFormat glXChooseFBConfig returns NULL (glError: 0)
This problem may be responsible for several glXChooseFBConfig bug reports such as bug 3277 and others.
Until the built-in Mesa support in xorg offers the 1.3 API, it seems counter productive to make a 1.3 glx server a requirement of running wine.