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

Ian Romanick idr at freedesktop.org
Tue Jun 9 08:44:33 PDT 2015


On 05/06/2015 03:43 AM, Tapani Pälli wrote:
> (increases ES31-CTS.draw_indirect.basic.* passing tests)
> 
> v2: only expose DRAW_INDIRECT_BUFFER_BINDING for GL core + ES3.1
> 
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>

I would have rather seen adding the EXTRA_API_ES31 bits and the
DRAW_INDIRECT_BUFFER_BINDING bits in separate patches, but I'm not going
to bust your chops about it after over a month.

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> ---
>  src/mesa/main/get.c              | 12 ++++++++++++
>  src/mesa/main/get_hash_params.py |  8 ++++++--
>  2 files changed, 18 insertions(+), 2 deletions(-)
> 
> 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..513d5d2 100644
> --- a/src/mesa/main/get_hash_params.py
> +++ b/src/mesa/main/get_hash_params.py
> @@ -409,6 +409,12 @@ descriptor=[
>    [ "SAMPLER_BINDING", "LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING, NO_EXTRA" ],
>  ]},
>  
> +# Enums in OpenGL Core profile and ES 3.1
> +{ "apis": ["GL_CORE", "GLES3"], "params": [
> +# 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
>  { "apis": ["GL", "GL_CORE"], "params": [
>    [ "ACCUM_RED_BITS", "BUFFER_INT(Visual.accumRedBits), NO_EXTRA" ],
> @@ -804,8 +810,6 @@ descriptor=[
>  { "apis": ["GL_CORE"], "params": [
>  # GL_ARB_texture_buffer_range
>    [ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "CONTEXT_INT(Const.TextureBufferOffsetAlignment), extra_ARB_texture_buffer_range" ],
> -# GL_ARB_draw_indirect
> -  [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect" ],
>  
>  # GL_ARB_viewport_array
>    [ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array" ],
> 



More information about the mesa-dev mailing list