On 06/18/2012 06: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; > + v->value_int = ctx->UniformBufferBindings[index].BufferObject->Name; > + return TYPE_INT; > + > + case GL_UNIFORM_BUFFER_START: > + if (index >= ctx->Const.MaxUniformBufferBindings) > + goto invalid_value; > + if (!ctx->Extensions.ARB_uniform_buffer_object) > + goto invalid_enum; > + v->value_int = ctx->UniformBufferBindings[index].Offset; > + return TYPE_INT; > + > + case GL_UNIFORM_BUFFER_SIZE: > + if (index >= ctx->Const.MaxUniformBufferBindings) > + goto invalid_value; > + if (!ctx->Extensions.ARB_uniform_buffer_object) > + goto invalid_enum; > + v->value_int = ctx->UniformBufferBindings[index].Size; > + return TYPE_INT; > } > > invalid_enum:
Total nitpick: it seems like you should reorder the two checks, i.e. if (!ctx->Extensions.ARB_uniform_buffer_object) goto invalid_enum; if (index out of bounds) goto invalid_value; because if I query these on an implementation that doesn't support ARB_uniform_buffer_object, I would expect to get GL_INVALID_ENUM ("WTF are you talking about?"), not a complaint that my index value is out of bounds. (Not to mention the fact that you can't glGet() the upper bound in the first place...) It doesn't really matter, though I bet there's some picky conformance suite out there that might care. (I haven't checked oglconform, but it just sounds like the sort of thing they'd check for. :)) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev