[Mesa-dev] [PATCH V5 2/7] mesa/es3.1: enable GL_ARB_shader_image_load_store for GLES 3.1

Samuel Iglesias Gonsálvez siglesias at igalia.com
Sun Jul 26 23:40:38 PDT 2015



On 23/07/15 16:38, Marta Lofstedt wrote:
> From: Marta Lofstedt <marta.lofstedt at intel.com>
> 
> Signed-off-by: Marta Lofstedt <marta.lofstedt at intel.com>
> ---
>  src/mesa/main/get.c              |  6 ++++++
>  src/mesa/main/get_hash_params.py | 17 +++++++++++------
>  2 files changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
> index ec7eb71..dc04930 100644
> --- a/src/mesa/main/get.c
> +++ b/src/mesa/main/get.c
> @@ -367,6 +367,12 @@ static const int extra_ARB_draw_indirect_es31[] = {
>     EXTRA_END
>  };
>  
> +static const int extra_ARB_shader_image_load_store_es31[] = {
> +   EXT(ARB_shader_image_load_store),
> +   EXTRA_API_ES31,
> +   EXTRA_END
> +};
> +
>  EXTRA_EXT(ARB_texture_cube_map);
>  EXTRA_EXT(EXT_texture_array);
>  EXTRA_EXT(NV_fog_distance);
> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
> index 4137e7f..85df077 100644
> --- a/src/mesa/main/get_hash_params.py
> +++ b/src/mesa/main/get_hash_params.py
> @@ -407,6 +407,17 @@ descriptor=[
>    [ "TEXTURE_EXTERNAL_OES", "LOC_CUSTOM, TYPE_BOOLEAN, 0, extra_OES_EGL_image_external" ],
>  ]},
>  
> +# Enums in OpenGL and ES 3.1
> +{ "apis": ["GL", "GL_CORE", "GLES31"], "params": [
> +# GL_ARB_shader_image_load_store / GLES 3.1
> +  [ "MAX_IMAGE_UNITS", "CONTEXT_INT(Const.MaxImageUnits), extra_ARB_shader_image_load_store_es31" ],
> +  [ "MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS", "CONTEXT_INT(Const.MaxCombinedImageUnitsAndFragmentOutputs), extra_ARB_shader_image_load_store_es31" ],

I have not found MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS in GLES
3.1 spec. Only MAX_COMBINED_TEXTURE_IMAGE_UNITS which is missing in this
patch.

Can you verify it?

> +  [ "MAX_IMAGE_SAMPLES", "CONTEXT_INT(Const.MaxImageSamples), extra_ARB_shader_image_load_store_es31" ],

I have not found MAX_IMAGE_SAMPLES in GLES 3.1. Please check it.

Sam

> +  [ "MAX_VERTEX_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxImageUniforms), extra_ARB_shader_image_load_store_es31" ],
> +  [ "MAX_FRAGMENT_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_FRAGMENT].MaxImageUniforms), extra_ARB_shader_image_load_store_es31" ],
> +  [ "MAX_COMBINED_IMAGE_UNIFORMS", "CONTEXT_INT(Const.MaxCombinedImageUniforms), extra_ARB_shader_image_load_store_es31" ],
> +]},
> +
>  # Enums in OpenGL Core profile and ES 3.1
>  { "apis": ["GL_CORE", "GLES3"], "params": [
>  # GL_ARB_draw_indirect / GLES 3.1
> @@ -779,13 +790,7 @@ descriptor=[
>    [ "MAX_VERTEX_ATTRIB_BINDINGS", "CONTEXT_ENUM(Const.MaxVertexAttribBindings), NO_EXTRA" ],
>  
>  # GL_ARB_shader_image_load_store
> -  [ "MAX_IMAGE_UNITS", "CONTEXT_INT(Const.MaxImageUnits), extra_ARB_shader_image_load_store"],
> -  [ "MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS", "CONTEXT_INT(Const.MaxCombinedImageUnitsAndFragmentOutputs), extra_ARB_shader_image_load_store"],
> -  [ "MAX_IMAGE_SAMPLES", "CONTEXT_INT(Const.MaxImageSamples), extra_ARB_shader_image_load_store"],
> -  [ "MAX_VERTEX_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxImageUniforms), extra_ARB_shader_image_load_store"],
>    [ "MAX_GEOMETRY_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxImageUniforms), extra_ARB_shader_image_load_store_and_geometry_shader"],
> -  [ "MAX_FRAGMENT_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_FRAGMENT].MaxImageUniforms), extra_ARB_shader_image_load_store"],
> -  [ "MAX_COMBINED_IMAGE_UNIFORMS", "CONTEXT_INT(Const.MaxCombinedImageUniforms), extra_ARB_shader_image_load_store"],
>  
>  # GL_ARB_compute_shader
>    [ "MAX_COMPUTE_WORK_GROUP_INVOCATIONS", "CONTEXT_INT(Const.MaxComputeWorkGroupInvocations), extra_ARB_compute_shader" ],
> 


More information about the mesa-dev mailing list