From: Brian P. <br...@tu...> - 2003-04-04 23:55:24
|
Ian Romanick wrote: > Brian Paul wrote: > >> This appears to be a bug in the XFree86/DRI libGL. I just >> double-checked and libGL doesn't have the GLX encoder support for >> glPixelTexGenSGIX() so it shouldn't be reporting GL_SGIX_pixel_texture >> in the extensions string (which is the intersection of the client-side >> and server-side extensions lists). >> >> Ian Romanick might have fixed this recently. >> >> By the way, Mesa/tests/getprocaddress.c is a test program which should >> detect problems like this. It has a list of GL extensions and the >> corresponding extension functions. It uses glXGetProcAddress() to be >> sure all the functions that are supposed to be present really are. >> >> It works fine with stand-alone Mesa. >> >> With NVIDIA's 41.91 driver it segfaults. Running with GDB it seems to >> get stuck somewhere in the driver. >> >> I don't have a DRI configuration up and running at the moment to >> test. Maybe someone else can. Ian? > > > All of the stuff that I was doing was with the GLX extension string. I > took some time to look at this while I was merging the DRI trunk to the > texmem-0-0-1 branch. It seems that the problem is in the implementation > of glGetString (line 927, lib/GL/glx/single2.c). Basically, it just > returns to the client EXACTLY what the server gives it. This is wrong > for both GL_EXTENSIONS and GL_VERSION. > > Fixing GL_EXTENSIONS should be as easy as making combine_strings (in > glxcmds.c) global and calling it on the returned string and the internal > extension list. If that is done, then __glXGLClientExtensions should be > expanded to include all of the extensions that are supported by libGL. > > Fixing GL_VERSION is a bit more tricky. Drivers classically add on > other stuff to the version string (driver dates, settings, etc). Would > something like this be okay? > > if ( atof( __glXGLClientVersion ) < atof( server_version ) ) { > gc->version = __glXGLClientVersion; > } > else { > gc->version = server_version; > } > > Or should something be done to add in the extra struff after the proper > version? I could have sworn this was working correctly at one point. Sounds like you've got the right idea for fixing it. Go ahead. -Brian |