[Mesa-dev] [PATCH 1/7] mesa/es3.1: enable DRAW_INDIRECT_BUFFER_BINDING for gles3.1

Tapani tapani.palli at intel.com
Thu May 14 22:33:48 PDT 2015


On 05/13/2015 09:52 PM, Ian Romanick wrote:
> On 05/06/2015 03:19 AM, Tapani Pälli wrote:
>> I've just noticed that this is wrong, sorry :/ We should to make a new
>> section for some of the enums that are only in GL core and ES31,
>> DRAW_INDIRECT_BUFFER_BINDING is one of these cases .. so this patch is
>> broken. Same may apply for some of your patches, there should not be
>> duplicates but only one entry per enum in the correct API section.
> Hm... as far as I can tell, the primary benefit of that would be faster
> rejection of GLES 3.1 enums in GLES 3.0 contexts.  Maybe it will also
> reduce hash collisions?  It doesn't look like there are any extensions
> part of 3.1 that we will exposed in 3.0 or earlier, so adding a new API
> section shouldn't cause more churn later.
>
> Maybe Kristian can comment, since the get-hash is his creation.

FWIW here's the v2 with changes mentioned above:

http://lists.freedesktop.org/archives/mesa-dev/2015-May/083593.html

>> (Otherwise, enabling these getters for ES3.1 is correct thing todo.)
>>
>>
>> On 05/06/2015 11:53 AM, Marta Lofstedt wrote:
>>> From: Tapani Pälli <tapani.palli at intel.com>
>>>
>>> (increases ES31-CTS.draw_indirect.basic.* passing tests)
>>>
>>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>>> ---
>>>    src/mesa/main/get.c              | 12 ++++++++++++
>>>    src/mesa/main/get_hash_params.py |  2 ++
>>>    2 files changed, 14 insertions(+)
>>>
>>> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
>>> index a881bc5..9898197 100644
>>> --- a/src/mesa/main/get.c
>>> +++ b/src/mesa/main/get.c
>>> @@ -138,6 +138,7 @@ enum value_extra {
>>>       EXTRA_API_GL_CORE,
>>>       EXTRA_API_ES2,
>>>       EXTRA_API_ES3,
>>> +   EXTRA_API_ES31,
>>>       EXTRA_NEW_BUFFERS,
>>>       EXTRA_NEW_FRAG_CLAMP,
>>>       EXTRA_VALID_DRAW_BUFFER,
>>> @@ -348,6 +349,12 @@ static const int
>>> extra_ARB_shader_image_load_store_and_geometry_shader[] = {
>>>       EXTRA_END
>>>    };
>>>
>>> +static const int extra_ARB_draw_indirect_es31[] = {
>>> +   EXT(ARB_draw_indirect),
>>> +   EXTRA_API_ES31,
>>> +   EXTRA_END
>>> +};
>>> +
>>>    EXTRA_EXT(ARB_texture_cube_map);
>>>    EXTRA_EXT(EXT_texture_array);
>>>    EXTRA_EXT(NV_fog_distance);
>>> @@ -1078,6 +1085,11 @@ check_extra(struct gl_context *ctx, const char
>>> *func, const struct value_desc *d
>>>             if (_mesa_is_gles3(ctx))
>>>                api_found = GL_TRUE;
>>>         break;
>>> +      case EXTRA_API_ES31:
>>> +         api_check = GL_TRUE;
>>> +         if (_mesa_is_gles31(ctx))
>>> +            api_found = GL_TRUE;
>>> +     break;
>>>          case EXTRA_API_GL:
>>>             api_check = GL_TRUE;
>>>             if (_mesa_is_desktop_gl(ctx))
>>> diff --git a/src/mesa/main/get_hash_params.py
>>> b/src/mesa/main/get_hash_params.py
>>> index 41cb2c1..998efe8 100644
>>> --- a/src/mesa/main/get_hash_params.py
>>> +++ b/src/mesa/main/get_hash_params.py
>>> @@ -407,6 +407,8 @@ descriptor=[
>>>    { "apis": ["GL", "GL_CORE", "GLES3"], "params": [
>>>    # GL_ARB_sampler_objects / GL 3.3 / GLES 3.0
>>>      [ "SAMPLER_BINDING", "LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING,
>>> NO_EXTRA" ],
>>> +# GL_ARB_draw_indirect / GLES 3.1
>>> +  [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0,
>>> extra_ARB_draw_indirect_es31" ],
>>>    ]},
>>>
>>>    # Remaining enums are only in OpenGL
>>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>



More information about the mesa-dev mailing list