[cairo] glitz, pbuffers, and OpenGL 2.0

David Reveman davidr at novell.com
Mon Feb 13 00:18:05 PST 2006


Hey,

I know that ati's driver has support for pbuffers even though they don't
have server side GLX 1.3. I've committed some code that checks if vendor
string starts with ATI and assumes GLX 1.3 if that's true. I haven't
tested it yet, let me know if it doesn't work for you.

-David

On Wed, 2006-02-08 at 08:25 -0700, David Simmons wrote:
> [ From my study of the archives, I'm assuming that it's okay to discuss 
> glitz on this list. ]
> 
> Hi,
> 
> I'm using a version of glitz that I checked out from CVS on Jan 16, 
> 2006, and it doesn't seem to provide pbuffer support on my OpenGL 2.0 
> platform -- an ATI Radeon 9550 running in Linux using the ATI fglrx 
> 8.21.7 driver.  ATI's sample fgl_glxgears pbuffer demo runs without 
> complaint.
> 
> After some research and testing, my hypothesis is that OpenGL 2.0 / GLX 
> 1.3 does not advertise the GLX_SGIX_pbuffer and GLX_SGIX_fbconfig 
> extensions because they are now part of the standard.  When glitz does 
> not detect these extensions, it disables these features.  (I haven't 
> studied the OpenGL/GLX specifications yet to see if this is indeed the 
> proper behavior.)
> 
> I noticed that the SDL folks seem to agree with this hypothesis, as they 
> made the following change to their code at some point:
> -    if ( ExtensionSupported("GLX_SGIX_fbconfig", glx_extensions) &&
> -         ExtensionSupported("GLX_SGIX_pbuffer", glx_extensions) &&
> +    if ( ((this->gl_data->glx_version >= MAKE_GLX_VERSION(1, 3)) ||
> +          (ExtensionSupported("GLX_SGIX_fbconfig", glx_extensions) &&
> +           ExtensionSupported("GLX_SGIX_pbuffer", glx_extensions))) &&
> 
> I made two quick'n'nasty hacks to my glitz source to test this, and now 
> pbuffers seem to be working properly and hardware accelerated:
> 
> 1. glitz_glx_extension.c glitz_glx_query_extensions() -- I hard-coded 
> the GLITZ_GLX_FEATURE_FBCONFIG_MASK and GLITZ_GLX_FEATURE_PBUFFER_MASK 
> features into glx_feature_mask.
> 2. glitz_glx_info.c _glitz_glx_proc_address_lookup() -- I hard-coded my 
> glx_version to be 1.3.  (for whatever reason, glxinfo reports my client 
> glx version as 1.3, but my server glx version as 1.2.  No matter... 
> fbconfig/pbuffer is present, really!)
> 
> David
> 
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo




More information about the cairo mailing list