[opengl] check drawable and context Visual IDs in wglMakeCurrent()

Tomas Carnecky tom at dbservice.com
Thu Mar 23 17:13:55 CST 2006

Stefan Dösinger wrote:
> Hi,
>> So.. in this attachment you'll find a patch that does what I've just
>> described. I can't test it on anything else than WoW, so if someone
>> would please review it and test with outher opengl/d3d applications it
>> would be great.
> No effects noticed with Half-life 1(GL), Warcraft III(GL and D3D) and Jedi 
> Academy(GL).

maybe it was because of the earlier opengl patch 'Store GL context in
TEB'. But I didn't notice such an increase then.. only from ~20 -> ~30fps

> That patch gave me a hint for a possible reason for the WineD3D slowness with 
> a few games :)

good, at least something :)

Something else.. now I know why there is this VisualID mismatch. Someone
didn't read the GLX spec. in opengl32/wgl.c:describeDrawable() you call
glXQueryDrawable() with GLX_VISUAL_ID, but that's not allowed ! only
GLX_FBCONFIG_ID and three others, according to the GLX 1.3/1.4 spec [1].

According to the spec, you can get the GLXFBConfig from a GLXDrawable
using glXQueryDrawable() and then the Visual from the GLXFBConfig using
glXGetFBConfigAttrib(). .. I'll send a patch.


[1] http://www.opengl.org/documentation/specs/

More information about the wine-devel mailing list