[Mesa-dev] [PATCH 8/9] mesa: Add support for glGetIntegeri_v from GL_ARB_uniform_buffer_object.
Brian Paul
brianp at vmware.com
Wed Jun 20 07:11:05 PDT 2012
On 06/20/2012 08:00 AM, Kristian Høgsberg wrote:
> On Tue, Jun 19, 2012 at 3:26 PM, Eric Anholt<eric at anholt.net> wrote:
>> On Tue, 19 Jun 2012 08:10:25 -0600, Brian Paul<brianp at 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.
Actually, it looks like check_extra() isn't called for the indexed
glGet functions. find_value_indexed() isn't using any sort of table
for its implementation. There aren't too many indexed queries yet but
maybe someone should take a look at that.
-Brian
More information about the mesa-dev
mailing list