[cairo] glitz, pbuffers, and OpenGL 2.0
David Simmons
simmons at davidsimmons.com
Mon Feb 13 18:56:46 PST 2006
Your modification fixes one part of the problem -- the GLX 1.2/1.3
issue. However, I still can't use pbuffers because the pbuffer
extension is not being advertised and flagged as a feature in glitz. If
I add a few lines to force the fbconfig and pbuffer flags to be set, as
shown below, pbuffers work fine.
David
diff -Nru glitz-20060213.orig/src/glx/glitz_glx_extension.c
glitz-20060213/src/glx/glitz_glx_extension.c
--- glitz-20060213.orig/src/glx/glitz_glx_extension.c 2006-02-10
02:04:32.000000000 -0700
+++ glitz-20060213/src/glx/glitz_glx_extension.c 2006-02-13
19:41:37.000000000 -0700
@@ -73,6 +73,11 @@
/* ATI's driver emulates GLX 1.3 support */
if (!strncmp ("ATI", vendor, 3))
screen_info->glx_version = 1.3f;
+
+ /* ATI's latest driver supports fbconfig and pbuffer,
+ although they are not advertised as extensions. */
+ screen_info->glx_feature_mask |=
GLITZ_GLX_FEATURE_FBCONFIG_MASK;
+ screen_info->glx_feature_mask |= GLITZ_GLX_FEATURE_PBUFFER_MASK;
}
}
}
David Reveman wrote:
> 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