[Mesa-dev] [PATCH 1/2] Fix __glXInitializeVisualConfigFromTags's handling of unrecognized fbconfig tags.

Dave Airlie airlied at gmail.com
Sun May 2 13:17:10 PDT 2010


On Mon, May 3, 2010 at 3:43 AM, Aaron Plattner <aplattner at nvidia.com> wrote:
> On Sun, May 02, 2010 at 02:39:07AM -0700, Dave Airlie wrote:
>> On Fri, Apr 23, 2010 at 2:30 AM, Aaron Plattner <aplattner at nvidia.com> wrote:
>> > __glXInitializeVisualConfigFromTags doesn't skip the payload of unrecognized
>> > tags.  Instead, it treats the value as if it were the next tag, which can happen
>> > if the server's GLX extension is not Mesa's.  For example, this falls down when
>> > NVIDIA sends a GLX_FLOAT_COMPONENTS_NV = 0 pair, causing
>> > __glXInitializeVisualConfigFromTags to bail out early.
>>
>> I've had a regression reported on irc from papillon81 with GLX_USE_GL
>> and OpenSceneGraph bisected to this.
>
> The spec is pretty clear about the attribute format for protocol:
>
> (for visuals)
>
>    The first 18 properties are ordered; the remaining properties consist of a
>    property type and a property value.
>
> (for fbconfigs)
>
>    The properties consist of a property type and a property value.
>
> You use __glXInitializeVisualConfigFromTags in glXChooseVisual, don't you?
> I think you need something like "fbconfig_style_tags && bp++;"  Or I guess
> you could just hope that the server never sends GLX_USE_GL as a visual or
> FBconfig property.
>

Oh good point, same handling as GL_RGBA then,

This look better?

Dave.

>> I'm guessing we need something like the attached.
>>
>> Dave.
>>
>> >
>> > Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
>> > ---
>> >  src/glx/glxext.c |    2 ++
>> >  1 files changed, 2 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/src/glx/glxext.c b/src/glx/glxext.c
>> > index 5289354..6d6f89e 100644
>> > --- a/src/glx/glxext.c
>> > +++ b/src/glx/glxext.c
>> > @@ -539,6 +539,8 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count,
>> >          i = count;
>> >          break;
>> >       default:
>> > +         /* Ignore the unrecognized tag's value */
>> > +         bp++;
>> >          break;
>> >       }
>> >    }
>> > --
>> > 1.6.3.3
>> >
>> > _______________________________________________
>> > mesa-dev mailing list
>> > mesa-dev at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> >
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-glx-fix-regression-with-GLX_USE_GL.patch
Type: application/octet-stream
Size: 772 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100503/291a50fd/attachment.obj>


More information about the mesa-dev mailing list