[Mesa-dev] [PATCH v2 01/82] mesa: define ARB_shader_storage_buffer_object extension
Jordan Justen
jordan.l.justen at intel.com
Thu Jun 4 00:07:01 PDT 2015
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On 2015-06-03 00:00:51, Iago Toral Quiroga wrote:
> From: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
>
> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
> ---
> src/glsl/glcpp/glcpp-parse.y | 3 ++
> src/glsl/glsl_parser_extras.cpp | 63 +++++++++++++++++++++--------------------
> src/glsl/glsl_parser_extras.h | 7 +++++
> src/mesa/main/extensions.c | 1 +
> src/mesa/main/mtypes.h | 1 +
> 5 files changed, 44 insertions(+), 31 deletions(-)
>
> diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
> index a11b6b2..ed1bffb 100644
> --- a/src/glsl/glcpp/glcpp-parse.y
> +++ b/src/glsl/glcpp/glcpp-parse.y
> @@ -2483,6 +2483,9 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
>
> if (extensions->ARB_shader_precision)
> add_builtin_define(parser, "GL_ARB_shader_precision", 1);
> +
> + if (extensions->ARB_shader_storage_buffer_object)
> + add_builtin_define(parser, "GL_ARB_shader_storage_buffer_object", 1);
> }
> }
>
> diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> index 046d5d7..0d7e521 100644
> --- a/src/glsl/glsl_parser_extras.cpp
> +++ b/src/glsl/glsl_parser_extras.cpp
> @@ -551,37 +551,38 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
>
> /* ARB extensions go here, sorted alphabetically.
> */
> - EXT(ARB_arrays_of_arrays, true, false, ARB_arrays_of_arrays),
> - EXT(ARB_compute_shader, true, false, ARB_compute_shader),
> - EXT(ARB_conservative_depth, true, false, ARB_conservative_depth),
> - EXT(ARB_derivative_control, true, false, ARB_derivative_control),
> - EXT(ARB_draw_buffers, true, false, dummy_true),
> - EXT(ARB_draw_instanced, true, false, ARB_draw_instanced),
> - EXT(ARB_explicit_attrib_location, true, false, ARB_explicit_attrib_location),
> - EXT(ARB_explicit_uniform_location, true, false, ARB_explicit_uniform_location),
> - EXT(ARB_fragment_coord_conventions, true, false, ARB_fragment_coord_conventions),
> - EXT(ARB_fragment_layer_viewport, true, false, ARB_fragment_layer_viewport),
> - EXT(ARB_gpu_shader5, true, false, ARB_gpu_shader5),
> - EXT(ARB_gpu_shader_fp64, true, false, ARB_gpu_shader_fp64),
> - EXT(ARB_sample_shading, true, false, ARB_sample_shading),
> - EXT(ARB_separate_shader_objects, true, false, dummy_true),
> - EXT(ARB_shader_atomic_counters, true, false, ARB_shader_atomic_counters),
> - EXT(ARB_shader_bit_encoding, true, false, ARB_shader_bit_encoding),
> - EXT(ARB_shader_image_load_store, true, false, ARB_shader_image_load_store),
> - EXT(ARB_shader_precision, true, false, ARB_shader_precision),
> - EXT(ARB_shader_stencil_export, true, false, ARB_shader_stencil_export),
> - EXT(ARB_shader_texture_lod, true, false, ARB_shader_texture_lod),
> - EXT(ARB_shading_language_420pack, true, false, ARB_shading_language_420pack),
> - EXT(ARB_shading_language_packing, true, false, ARB_shading_language_packing),
> - EXT(ARB_texture_cube_map_array, true, false, ARB_texture_cube_map_array),
> - EXT(ARB_texture_gather, true, false, ARB_texture_gather),
> - EXT(ARB_texture_multisample, true, false, ARB_texture_multisample),
> - EXT(ARB_texture_query_levels, true, false, ARB_texture_query_levels),
> - EXT(ARB_texture_query_lod, true, false, ARB_texture_query_lod),
> - EXT(ARB_texture_rectangle, true, false, dummy_true),
> - EXT(ARB_uniform_buffer_object, true, false, ARB_uniform_buffer_object),
> - EXT(ARB_vertex_attrib_64bit, true, false, ARB_vertex_attrib_64bit),
> - EXT(ARB_viewport_array, true, false, ARB_viewport_array),
> + EXT(ARB_arrays_of_arrays, true, false, ARB_arrays_of_arrays),
> + EXT(ARB_compute_shader, true, false, ARB_compute_shader),
> + EXT(ARB_conservative_depth, true, false, ARB_conservative_depth),
> + EXT(ARB_derivative_control, true, false, ARB_derivative_control),
> + EXT(ARB_draw_buffers, true, false, dummy_true),
> + EXT(ARB_draw_instanced, true, false, ARB_draw_instanced),
> + EXT(ARB_explicit_attrib_location, true, false, ARB_explicit_attrib_location),
> + EXT(ARB_explicit_uniform_location, true, false, ARB_explicit_uniform_location),
> + EXT(ARB_fragment_coord_conventions, true, false, ARB_fragment_coord_conventions),
> + EXT(ARB_fragment_layer_viewport, true, false, ARB_fragment_layer_viewport),
> + EXT(ARB_gpu_shader5, true, false, ARB_gpu_shader5),
> + EXT(ARB_gpu_shader_fp64, true, false, ARB_gpu_shader_fp64),
> + EXT(ARB_sample_shading, true, false, ARB_sample_shading),
> + EXT(ARB_separate_shader_objects, true, false, dummy_true),
> + EXT(ARB_shader_atomic_counters, true, false, ARB_shader_atomic_counters),
> + EXT(ARB_shader_bit_encoding, true, false, ARB_shader_bit_encoding),
> + EXT(ARB_shader_image_load_store, true, false, ARB_shader_image_load_store),
> + EXT(ARB_shader_precision, true, false, ARB_shader_precision),
> + EXT(ARB_shader_stencil_export, true, false, ARB_shader_stencil_export),
> + EXT(ARB_shader_storage_buffer_object, true, false, ARB_shader_storage_buffer_object),
> + EXT(ARB_shader_texture_lod, true, false, ARB_shader_texture_lod),
> + EXT(ARB_shading_language_420pack, true, false, ARB_shading_language_420pack),
> + EXT(ARB_shading_language_packing, true, false, ARB_shading_language_packing),
> + EXT(ARB_texture_cube_map_array, true, false, ARB_texture_cube_map_array),
> + EXT(ARB_texture_gather, true, false, ARB_texture_gather),
> + EXT(ARB_texture_multisample, true, false, ARB_texture_multisample),
> + EXT(ARB_texture_query_levels, true, false, ARB_texture_query_levels),
> + EXT(ARB_texture_query_lod, true, false, ARB_texture_query_lod),
> + EXT(ARB_texture_rectangle, true, false, dummy_true),
> + EXT(ARB_uniform_buffer_object, true, false, ARB_uniform_buffer_object),
> + EXT(ARB_vertex_attrib_64bit, true, false, ARB_vertex_attrib_64bit),
> + EXT(ARB_viewport_array, true, false, ARB_viewport_array),
>
> /* KHR extensions go here, sorted alphabetically.
> */
> diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
> index 9a0c24e..a49548b 100644
> --- a/src/glsl/glsl_parser_extras.h
> +++ b/src/glsl/glsl_parser_extras.h
> @@ -215,6 +215,11 @@ struct _mesa_glsl_parse_state {
> return ARB_uniform_buffer_object_enable || is_version(140, 300);
> }
>
> + bool has_shader_storage_buffer_objects() const
> + {
> + return ARB_shader_storage_buffer_object_enable || is_version(430, 0);
> + }
> +
> bool has_separate_shader_objects() const
> {
> return ARB_separate_shader_objects_enable || is_version(410, 310)
> @@ -462,6 +467,8 @@ struct _mesa_glsl_parse_state {
> bool ARB_shader_precision_warn;
> bool ARB_shader_stencil_export_enable;
> bool ARB_shader_stencil_export_warn;
> + bool ARB_shader_storage_buffer_object_enable;
> + bool ARB_shader_storage_buffer_object_warn;
> bool ARB_shader_texture_lod_enable;
> bool ARB_shader_texture_lod_warn;
> bool ARB_shading_language_420pack_enable;
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index f9bf503..905efb7 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -153,6 +153,7 @@ static const struct extension extension_table[] = {
> { "GL_ARB_shader_objects", o(dummy_true), GL, 2002 },
> { "GL_ARB_shader_precision", o(ARB_shader_precision), GL, 2010 },
> { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 },
> + { "GL_ARB_shader_storage_buffer_object", o(ARB_shader_storage_buffer_object), GL, 2012 },
> { "GL_ARB_shader_texture_lod", o(ARB_shader_texture_lod), GL, 2009 },
> { "GL_ARB_shading_language_100", o(dummy_true), GLL, 2003 },
> { "GL_ARB_shading_language_packing", o(ARB_shading_language_packing), GL, 2011 },
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 737f0be..631e01b 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3651,6 +3651,7 @@ struct gl_extensions
> GLboolean ARB_shader_image_load_store;
> GLboolean ARB_shader_precision;
> GLboolean ARB_shader_stencil_export;
> + GLboolean ARB_shader_storage_buffer_object;
> GLboolean ARB_shader_texture_lod;
> GLboolean ARB_shading_language_packing;
> GLboolean ARB_shading_language_420pack;
> --
> 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