[Mesa-dev] [PATCH 4/6] glsl: add support for OES_texture_storage_multisample_2d_array
Tapani Pälli
tapani.palli at intel.com
Sun Aug 23 22:11:13 PDT 2015
On 08/21/2015 01:29 PM, Lofstedt, Marta wrote:
>> -----Original Message-----
>> From: mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] On
>> Behalf Of Tapani Pälli
>> Sent: Friday, August 21, 2015 9:22 AM
>> To: mesa-dev at lists.freedesktop.org
>> Subject: [Mesa-dev] [PATCH 4/6] glsl: add support for
>> OES_texture_storage_multisample_2d_array
>>
>> Patch adds extension enable bit and enables required keywords and builtin
>> functions for the extension.
>>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> ---
>> src/glsl/builtin_functions.cpp | 5 +++--
>> src/glsl/builtin_types.cpp | 3 ++-
>> src/glsl/glcpp/glcpp-parse.y | 2 ++
>> src/glsl/glsl_lexer.ll | 6 +++---
>> src/glsl/glsl_parser_extras.cpp | 1 +
>> src/glsl/glsl_parser_extras.h | 2 ++
>> 6 files changed, 13 insertions(+), 6 deletions(-)
>>
>> diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
>> index 57bed86..a4e9baf 100644
>> --- a/src/glsl/builtin_functions.cpp
>> +++ b/src/glsl/builtin_functions.cpp
>> @@ -284,8 +284,9 @@ texture_multisample(const _mesa_glsl_parse_state
>> *state) static bool texture_multisample_array(const
>> _mesa_glsl_parse_state *state) {
>> - return state->is_version(150, 0) ||
>> - state->ARB_texture_multisample_enable;
>> + return state->is_version(150, 320) ||
>
> Could you explain 320?
> The rest of the patchset appear to go for exposure under GLES 3.1
This is not necessary change, it's a 'when changing that line make sure
that it does not need to be touched again' requested by Timothy here:
http://lists.freedesktop.org/archives/mesa-dev/2015-August/091922.html
I think this kind of 'future-proofing' in general is potentially
dangerous but in the case of keywords and builtins it should not cause
trouble.
> /Marta
>
>> + state->ARB_texture_multisample_enable ||
>> + state->OES_texture_storage_multisample_2d_array_enable;
>> }
>>
>>
>> static bool
>> diff --git a/src/glsl/builtin_types.cpp b/src/glsl/builtin_types.cpp index
>> 9cf198f..0d0d71d 100644
>> --- a/src/glsl/builtin_types.cpp
>> +++ b/src/glsl/builtin_types.cpp
>> @@ -307,7 +307,8 @@ _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->ARB_texture_multisample_enable ||
>> + state->OES_texture_storage_multisample_2d_array_enable) {
>> 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/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index
>> 18e50af..6396817 100644
>> --- a/src/glsl/glcpp/glcpp-parse.y
>> +++ b/src/glsl/glcpp/glcpp-parse.y
>> @@ -2382,6 +2382,8 @@
>> _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser,
>> intmax_t versio
>> add_builtin_define(parser,
>> "GL_OES_EGL_image_external", 1);
>> if (extensions->OES_standard_derivatives)
>> add_builtin_define(parser, "GL_OES_standard_derivatives", 1);
>> + if (extensions->OES_texture_storage_multisample_2d_array)
>> + add_builtin_define(parser,
>> + "GL_OES_texture_storage_multisample_2d_array", 1);
>> }
>> } else {
>> add_builtin_define(parser, "GL_ARB_draw_buffers", 1); diff
>> --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll index 24998c1..9d7ad74
>> 100644
>> --- a/src/glsl/glsl_lexer.ll
>> +++ b/src/glsl/glsl_lexer.ll
>> @@ -347,9 +347,9 @@ usampler2DArray KEYWORD(130, 300,
>> 130, 300, USAMPLER2DARRAY);
>> 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, 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);
>> +sampler2DMSArray KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra-
>>> ARB_texture_multisample_enable||yyextra-
>>> OES_texture_storage_multisample_2d_array_enable,
>> SAMPLER2DMSARRAY);
>> +isampler2DMSArray KEYWORD_WITH_ALT(150, 300, 150, 320,
>> +yyextra->ARB_texture_multisample_enable||yyextra-
>>> OES_texture_storage_m
>> +ultisample_2d_array_enable, ISAMPLER2DMSARRAY); usampler2DMSArray
>> +KEYWORD_WITH_ALT(150, 300, 150, 320,
>> +yyextra->ARB_texture_multisample_enable||yyextra-
>>> OES_texture_storage_m
>> +ultisample_2d_array_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.cpp b/src/glsl/glsl_parser_extras.cpp
>> index 6440a96..fe6129b 100644
>> --- a/src/glsl/glsl_parser_extras.cpp
>> +++ b/src/glsl/glsl_parser_extras.cpp
>> @@ -626,6 +626,7 @@ static const _mesa_glsl_extension
>> _mesa_glsl_supported_extensions[] = {
>> EXT(OES_EGL_image_external, false, true,
>> OES_EGL_image_external),
>> EXT(OES_standard_derivatives, false, true,
>> OES_standard_derivatives),
>> EXT(OES_texture_3D, false, true, EXT_texture3D),
>> + EXT(OES_texture_storage_multisample_2d_array, false, true,
>> + OES_texture_storage_multisample_2d_array),
>>
>> /* All other extensions go here, sorted alphabetically.
>> */
>> diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h index
>> e2145be..295cd10 100644
>> --- a/src/glsl/glsl_parser_extras.h
>> +++ b/src/glsl/glsl_parser_extras.h
>> @@ -548,6 +548,8 @@ struct _mesa_glsl_parse_state {
>> bool OES_standard_derivatives_warn;
>> bool OES_texture_3D_enable;
>> bool OES_texture_3D_warn;
>> + bool OES_texture_storage_multisample_2d_array_enable;
>> + bool OES_texture_storage_multisample_2d_array_warn;
>>
>> /* All other extensions go here, sorted alphabetically.
>> */
>> --
>> 2.4.3
>>
>> _______________________________________________
>> 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