[Mesa-dev] [PATCH] glsl: enable textureSize and texelFetch on GLSL ES 3.10 with MS samplers

Timothy Arceri t_arceri at yahoo.com.au
Mon Aug 17 03:58:16 PDT 2015


On Mon, 2015-08-17 at 12:25 +0300, Tapani Pälli wrote:
> Patch separates array samplers from the texture_multisample check so that we
> can enable only [iu]sampler2DMS, [iu]sampler2DMSArray are not supported.
> 
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/glsl/builtin_functions.cpp | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
> index 2175c66..04ad617 100644
> --- a/src/glsl/builtin_functions.cpp
> +++ b/src/glsl/builtin_functions.cpp
> @@ -270,6 +270,13 @@ texture_array(const _mesa_glsl_parse_state *state)
>  static bool
>  texture_multisample(const _mesa_glsl_parse_state *state)
>  {
> +   return state->is_version(150, 310) ||
> +          state->ARB_texture_multisample_enable;
> +}
> +
> +static bool
> +texture_multisample_array(const _mesa_glsl_parse_state *state)
> +{
>     return state->is_version(150, 0) ||

It seems these are enabled for ES 3.2 you could probably set this to 320 while
your at it.


>            state->ARB_texture_multisample_enable;
>  }
> @@ -1367,9 +1374,9 @@ builtin_builder::create_builtins()
>                  _textureSize(texture_multisample, glsl_type::ivec2_type, 
> glsl_type::isampler2DMS_type),
>                  _textureSize(texture_multisample, glsl_type::ivec2_type, 
> glsl_type::usampler2DMS_type),
>  
> -                _textureSize(texture_multisample, glsl_type::ivec3_type, 
> glsl_type::sampler2DMSArray_type),
> -                _textureSize(texture_multisample, glsl_type::ivec3_type, 
> glsl_type::isampler2DMSArray_type),
> -                _textureSize(texture_multisample, glsl_type::ivec3_type, 
> glsl_type::usampler2DMSArray_type),
> +                _textureSize(texture_multisample_array, 
> glsl_type::ivec3_type, glsl_type::sampler2DMSArray_type),
> +                _textureSize(texture_multisample_array, 
> glsl_type::ivec3_type, glsl_type::isampler2DMSArray_type),
> +                _textureSize(texture_multisample_array, 
> glsl_type::ivec3_type, glsl_type::usampler2DMSArray_type),
>                  NULL);
>  
>     add_function("texture",
> @@ -1632,9 +1639,9 @@ builtin_builder::create_builtins()
>                  _texelFetch(texture_multisample, glsl_type::ivec4_type, 
> glsl_type::isampler2DMS_type, glsl_type::ivec2_type),
>                  _texelFetch(texture_multisample, glsl_type::uvec4_type, 
> glsl_type::usampler2DMS_type, glsl_type::ivec2_type),
>  
> -                _texelFetch(texture_multisample, glsl_type::vec4_type, 
>  glsl_type::sampler2DMSArray_type,  glsl_type::ivec3_type),
> -                _texelFetch(texture_multisample, glsl_type::ivec4_type, 
> glsl_type::isampler2DMSArray_type, glsl_type::ivec3_type),
> -                _texelFetch(texture_multisample, glsl_type::uvec4_type, 
> glsl_type::usampler2DMSArray_type, glsl_type::ivec3_type),
> +                _texelFetch(texture_multisample_array, 
> glsl_type::vec4_type,  glsl_type::sampler2DMSArray_type, 
>  glsl_type::ivec3_type),
> +                _texelFetch(texture_multisample_array, 
> glsl_type::ivec4_type, glsl_type::isampler2DMSArray_type, 
> glsl_type::ivec3_type),
> +                _texelFetch(texture_multisample_array, 
> glsl_type::uvec4_type, glsl_type::usampler2DMSArray_type, 
> glsl_type::ivec3_type),
>                  NULL);
>  
>     add_function("texelFetchOffset",


More information about the mesa-dev mailing list