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

Tapani Pälli tapani.palli at intel.com
Mon Aug 17 04:23:17 PDT 2015



On 08/17/2015 01:58 PM, Timothy Arceri wrote:
> 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.

I can add this version check when enabling 
GL_OES_texture_storage_multisample_2d_array later.

>
>>             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