On 08/21/2015 01:29 PM, Lofstedt, Marta wrote:
-----Original Message-----
From: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] On
Behalf Of Tapani Pälli
Sent: Friday, August 21, 2015 9:22 AM
To: mesa-dev@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.pa...@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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to