[Mesa-dev] [PATCH] glsl/es31:Allow GL_ARB_TEXTURE_MULTISAMPLE in GLSL ES 3.10

Ian Romanick idr at freedesktop.org
Tue Jun 9 09:37:00 PDT 2015


On 05/12/2015 08:00 AM, Ilia Mirkin wrote:
> On Tue, May 12, 2015 at 10:53 AM, Marta Lofstedt
> <marta.lofstedt at linux.intel.com> wrote:
>> From: Marta Lofstedt <marta.lofstedt at intel.com>
>>
>> Signed-off-by: Marta Lofstedt <marta.lofstedt at intel.com>
>> ---
>>  src/glsl/builtin_functions.cpp |  3 +--
>>  src/glsl/builtin_types.cpp     |  2 +-
>>  src/glsl/glsl_lexer.ll         | 13 +++++++------
>>  src/glsl/glsl_parser_extras.h  |  5 +++++
>>  4 files changed, 14 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
>> index 1df6956..76aff14 100644
>> --- a/src/glsl/builtin_functions.cpp
>> +++ b/src/glsl/builtin_functions.cpp
>> @@ -270,8 +270,7 @@ texture_array(const _mesa_glsl_parse_state *state)
>>  static bool
>>  texture_multisample(const _mesa_glsl_parse_state *state)
>>  {
>> -   return state->is_version(150, 0) ||
>> -          state->ARB_texture_multisample_enable;
>> +   return state->has_texture_multisample();
>>  }
>>
>>  static bool
>> diff --git a/src/glsl/builtin_types.cpp b/src/glsl/builtin_types.cpp
>> index d92e2eb..9968f7c 100644
>> --- a/src/glsl/builtin_types.cpp
>> +++ b/src/glsl/builtin_types.cpp
>> @@ -307,7 +307,7 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
>>        add_type(symbols, glsl_type::usamplerCubeArray_type);
>>     }
>>
>> -   if (state->ARB_texture_multisample_enable) {
>> +   if (state->has_texture_multisample()) {
> 
> Oooh, nice catch! This was previously going to not auto-add the types
> for GLSL 1.50!
> 
>>        add_type(symbols, glsl_type::sampler2DMS_type);
>>        add_type(symbols, glsl_type::isampler2DMS_type);
>>        add_type(symbols, glsl_type::usampler2DMS_type);
>> diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
>> index 10db5b8..3597435 100644
>> --- a/src/glsl/glsl_lexer.ll
>> +++ b/src/glsl/glsl_lexer.ll
>> @@ -341,12 +341,13 @@ usampler2DArray           KEYWORD(130, 300, 130, 300, USAMPLER2DARRAY);
>>
>>     /* additional keywords in ARB_texture_multisample, included in GLSL 1.50 */
>>     /* these are reserved but not defined in GLSL 3.00 */
>> -sampler2DMS        KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, SAMPLER2DMS);
>> -isampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMS);
>> -usampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, USAMPLER2DMS);
>> -sampler2DMSArray   KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, SAMPLER2DMSARRAY);
>> -isampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMSARRAY);
>> -usampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 0, yyextra->ARB_texture_multisample_enable, USAMPLER2DMSARRAY);
>> +   /* these are needed for GLES 3.1 */
>> +sampler2DMS        KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, SAMPLER2DMS);
>> +isampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMS);
>> +usampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, USAMPLER2DMS);
>> +sampler2DMSArray   KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, SAMPLER2DMSARRAY);
>> +isampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMSARRAY);
>> +usampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, USAMPLER2DMSARRAY);
>>
>>     /* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
>>  samplerCubeArray   KEYWORD_WITH_ALT(400, 0, 400, 0, yyextra->ARB_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
>> diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
>> index 4612071..ce78622 100644
>> --- a/src/glsl/glsl_parser_extras.h
>> +++ b/src/glsl/glsl_parser_extras.h
>> @@ -221,6 +221,11 @@ struct _mesa_glsl_parse_state {
>>           || EXT_separate_shader_objects_enable;
>>     }
>>
>> +   bool has_texture_multisample() const
>> +   {
>> +      return ARB_texture_multisample_enable || is_version(410, 310);
> 
> This should certainly be is_version(150, 310) right?

Yes.  With that fixed, this patch is

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

>> +   }
>> +
>>     bool has_double() const
>>     {
>>        return ARB_gpu_shader_fp64_enable || is_version(400, 0);
>> --
>> 1.9.1
>>
> _______________________________________________
> 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