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

Lofstedt, Marta marta.lofstedt at intel.com
Mon Jun 15 04:36:59 PDT 2015



> -----Original Message-----
> From: mesa-dev [mailto:mesa-dev-bounces at lists.freedesktop.org] On
> Behalf Of Ilia Mirkin
> Sent: Tuesday, May 12, 2015 5:00 PM
> To: Marta Lofstedt
> Cc: mesa-dev at lists.freedesktop.org
> Subject: Re: [Mesa-dev] [PATCH] glsl/es31:Allow
> GL_ARB_TEXTURE_MULTISAMPLE in GLSL ES 3.10
> 
> 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, of course, fixed in V2.

/Marta
> > +   }
> > +
> >     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
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
----------------------------------------------------------------------
Intel Sweden AB
Registered Office: Knarrarnasgatan 15, 164 40 Kista, Stockholm, Sweden
Registration Number: 556189-6027

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the mesa-dev mailing list