[Mesa-dev] [PATCH 07/10] mesa: Add extension tracking for GL_OES_shader_io_blocks

Ilia Mirkin imirkin at alum.mit.edu
Fri May 20 11:19:47 UTC 2016


On Fri, May 20, 2016 at 3:26 AM, Ian Romanick <idr at freedesktop.org> wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> v2: Also support GL_EXT_shader_io_blocks.  It's pretty much identical to
> the OES extension.  Suggested by Ilia.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>  src/compiler/glsl/glcpp/glcpp-parse.y    | 5 +++++
>  src/compiler/glsl/glsl_parser_extras.cpp | 2 ++
>  src/compiler/glsl/glsl_parser_extras.h   | 4 ++++
>  src/mesa/main/extensions_table.h         | 2 ++
>  src/mesa/main/mtypes.h                   | 1 +
>  5 files changed, 14 insertions(+)
>
> diff --git a/src/compiler/glsl/glcpp/glcpp-parse.y b/src/compiler/glsl/glcpp/glcpp-parse.y
> index e44f074..6dc21a9 100644
> --- a/src/compiler/glsl/glcpp/glcpp-parse.y
> +++ b/src/compiler/glsl/glcpp/glcpp-parse.y
> @@ -2327,6 +2327,11 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
>                 add_builtin_define(parser, "GL_EXT_texture_buffer", 1);
>                 add_builtin_define(parser, "GL_OES_texture_buffer", 1);
>              }
> +
> +            if (extensions->OES_shader_io_blocks) {
> +               add_builtin_define(parser, "GL_EXT_shader_io_blocks", 1);
> +               add_builtin_define(parser, "GL_OES_shader_io_blocks", 1);
> +            }
>           }
>        }
>     } else {
> diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
> index 771fd19..9ec0957 100644
> --- a/src/compiler/glsl/glsl_parser_extras.cpp
> +++ b/src/compiler/glsl/glsl_parser_extras.cpp
> @@ -626,6 +626,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
>     EXT(OES_gpu_shader5,                false, true,      ARB_gpu_shader5),
>     EXT(OES_sample_variables,           false, true,      OES_sample_variables),
>     EXT(OES_shader_image_atomic,        false, true,      ARB_shader_image_load_store),
> +   EXT(OES_shader_io_blocks,           false, true,      OES_shader_io_blocks),
>     EXT(OES_shader_multisample_interpolation, false, true, OES_sample_variables),
>     EXT(OES_standard_derivatives,       false, true,      OES_standard_derivatives),
>     EXT(OES_texture_3D,                 false, true,      dummy_true),
> @@ -644,6 +645,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
>     EXT(EXT_gpu_shader5,                false, true,      ARB_gpu_shader5),
>     EXT(EXT_separate_shader_objects,    false, true,      dummy_true),
>     EXT(EXT_shader_integer_mix,         true,  true,      EXT_shader_integer_mix),
> +   EXT(EXT_shader_io_blocks,           false, true,      OES_shader_io_blocks),
>     EXT(EXT_shader_samples_identical,   true,  true,      EXT_shader_samples_identical),
>     EXT(EXT_texture_array,              true,  false,     EXT_texture_array),
>     EXT(EXT_texture_buffer,             false, true,      OES_texture_buffer),
> diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h
> index aaf12dd..ed60c55 100644
> --- a/src/compiler/glsl/glsl_parser_extras.h
> +++ b/src/compiler/glsl/glsl_parser_extras.h
> @@ -614,6 +614,8 @@ struct _mesa_glsl_parse_state {
>     bool OES_sample_variables_warn;
>     bool OES_shader_image_atomic_enable;
>     bool OES_shader_image_atomic_warn;
> +   bool OES_shader_io_blocks_enable;
> +   bool OES_shader_io_blocks_warn;
>     bool OES_shader_multisample_interpolation_enable;
>     bool OES_shader_multisample_interpolation_warn;
>     bool OES_standard_derivatives_enable;
> @@ -647,6 +649,8 @@ struct _mesa_glsl_parse_state {
>     bool EXT_separate_shader_objects_warn;
>     bool EXT_shader_integer_mix_enable;
>     bool EXT_shader_integer_mix_warn;
> +   bool EXT_shader_io_blocks_enable;
> +   bool EXT_shader_io_blocks_warn;
>     bool EXT_shader_samples_identical_enable;
>     bool EXT_shader_samples_identical_warn;
>     bool EXT_texture_array_enable;
> diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
> index 471b19f..1482147 100644
> --- a/src/mesa/main/extensions_table.h
> +++ b/src/mesa/main/extensions_table.h
> @@ -226,6 +226,7 @@ EXT(EXT_secondary_color                     , dummy_true
>  EXT(EXT_separate_shader_objects             , dummy_true                             ,  x ,  x ,  x , ES2, 2013)
>  EXT(EXT_separate_specular_color             , dummy_true                             , GLL,  x ,  x ,  x , 1997)
>  EXT(EXT_shader_integer_mix                  , EXT_shader_integer_mix                 , GLL, GLC,  x ,  30, 2013)
> +EXT(EXT_shader_io_blocks                    , OES_shader_io_blocks                   ,  x ,  x ,  x ,  31, 2014)
>  EXT(EXT_shader_samples_identical            , EXT_shader_samples_identical           , GLL, GLC,  x ,  31, 2015)
>  EXT(EXT_shadow_funcs                        , ARB_shadow                             , GLL,  x ,  x ,  x , 2002)
>  EXT(EXT_stencil_two_side                    , EXT_stencil_two_side                   , GLL,  x ,  x ,  x , 2001)
> @@ -342,6 +343,7 @@ EXT(OES_rgb8_rgba8                          , dummy_true
>  EXT(OES_sample_shading                      , OES_sample_variables                   ,  x ,  x ,  x ,  30, 2014)
>  EXT(OES_sample_variables                    , OES_sample_variables                   ,  x ,  x ,  x ,  30, 2014)
>  EXT(OES_shader_image_atomic                 , ARB_shader_image_load_store            ,  x ,  x ,  x ,  31, 2015)
> +EXT(OES_shader_io_blocks                    , OES_shader_io_blocks                   ,  x ,  x ,  x ,  31, 2014)
>  EXT(OES_shader_multisample_interpolation    , OES_sample_variables                   ,  x ,  x ,  x ,  30, 2014)
>  EXT(OES_single_precision                    , dummy_true                             ,  x ,  x , ES1,  x , 2003)
>  EXT(OES_standard_derivatives                , OES_standard_derivatives               ,  x ,  x ,  x , ES2, 2005)
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 0f3150f..a2777b3 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3908,6 +3908,7 @@ struct gl_extensions
>     GLboolean EXT_vertex_array_bgra;
>     GLboolean OES_copy_image;
>     GLboolean OES_sample_variables;
> +   GLboolean OES_shader_io_blocks;

Why is this optional? Shouldn't we just flip it on everywhere?

>     GLboolean OES_standard_derivatives;
>     GLboolean OES_texture_buffer;
>     /* vendor extensions */
> --
> 2.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list