On Tue, Jun 19, 2012 at 3:26 PM, Eric Anholt <e...@anholt.net> wrote: > On Tue, 19 Jun 2012 08:10:25 -0600, Brian Paul <bri...@vmware.com> wrote: >> On 06/18/2012 07:35 PM, Eric Anholt wrote: >> > Fixes piglit ARB_uniform_buffer_object/getintegeri_v. >> > --- >> > src/mesa/main/get.c | 24 ++++++++++++++++++++++++ >> > 1 file changed, 24 insertions(+) >> > >> > diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c >> > index 933bfe7..4798c02 100644 >> > --- a/src/mesa/main/get.c >> > +++ b/src/mesa/main/get.c >> > @@ -2566,6 +2566,30 @@ find_value_indexed(const char *func, GLenum pname, >> > int index, union value *v) >> > goto invalid_enum; >> > v->value_int = >> > ctx->TransformFeedback.CurrentObject->BufferNames[index]; >> > return TYPE_INT; >> > + >> > + case GL_UNIFORM_BUFFER_BINDING: >> > + if (index>= ctx->Const.MaxUniformBufferBindings) >> > + goto invalid_value; >> > + if (!ctx->Extensions.ARB_uniform_buffer_object) >> > + goto invalid_enum; >> >> I think it's a bit more natural to do the extension check before the >> index check. > > Since all the other enums are handled in this order, too, I'd rather > that be an independent change. It does seem like a silly ordering, > though.
You can use the "extra" mechanism to check the extension automatically before even getting into find_value_indexed. Add: EXTRA_EXT(ARB_uniform_buffer_object); and then add &extra_ARB_uniform_buffer_object instead of NO_EXTRA where the token is defined. Kristian _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev