Some OpenGL games running in Wine (such as the multiplayer part of Wolfenstein) does not work with Mesa drivers.
The problem is apparently that Mesa doesn't like Wine passing 0xffffffff as GLX_DRAWABLE_TYPE. There's a longer explanation of the issue here:
I tried using apitrace to trace the game with fglrx but the resulting trace runs with Mesa drivers so it can't be used to reproduce the bug.
You are correct. GLX_DONT_CARE (0xffffffff) should be handled for these cases. Page 17 (page 23 of the PDF) of the GLX 1.4 spec says:
"If GLX DONT CARE is specified as an attribute value, then the
attribute will not be checked. GLX DONT CARE may be specified
for all attributes except GLX LEVEL."
I just posted a piglit test that reproduces this issue.
Once that test gets into piglit, I'll post a proposed fix.
*** Bug 62999 has been marked as a duplicate of this bug. ***
(In reply to comment #0)
> I tried using apitrace to trace the game with fglrx but the resulting trace
> runs with Mesa drivers so it can't be used to reproduce the bug.
apitrace doesn't replay GLX/WGL/CGL/EGL calls faithfully -- it does a very rough emulation using whatever is available so one can replay traces from different OSes -- so in general it can't be used to reproduce bugs in these APIs, only on proper GL, GL ES.
This should be fixed by the following commit on Mesa master. It should get picked over to the 9.1 branch next week.
Author: Alexander Monakov <email@example.com>
Date: Tue Apr 2 01:38:27 2013 +0400
Honor GLX_DONT_CARE in MATCH_MASK
NOTE: This is a candidate for stable branches.
Reviewed-by: Ian Romanick <firstname.lastname@example.org>