Mesa (master): glsl: add has_shader_image_load_store()

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Mon Feb 27 18:44:01 UTC 2017


Module: Mesa
Branch: master
Commit: de2727925a5b69e7c7fa1fee3c7e7ad0cbabcb02
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=de2727925a5b69e7c7fa1fee3c7e7ad0cbabcb02

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Feb 23 19:04:52 2017 +0100

glsl: add has_shader_image_load_store()

Preliminary work for ARB_bindless_texture which can interact
with ARB_shader_image_load_store.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>

---

 src/compiler/glsl/builtin_variables.cpp | 3 +--
 src/compiler/glsl/glsl_parser.yy        | 3 +--
 src/compiler/glsl/glsl_parser_extras.h  | 5 +++++
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp
index db8418b..fc0443e 100644
--- a/src/compiler/glsl/builtin_variables.cpp
+++ b/src/compiler/glsl/builtin_variables.cpp
@@ -840,8 +840,7 @@ builtin_variable_generator::generate_constants()
                 state->Const.MaxTransformFeedbackInterleavedComponents);
    }
 
-   if (state->is_version(420, 310) ||
-       state->ARB_shader_image_load_store_enable) {
+   if (state->has_shader_image_load_store()) {
       add_const("gl_MaxImageUnits",
                 state->Const.MaxImageUnits);
       add_const("gl_MaxVertexImageUniforms",
diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy
index db29165..146c962 100644
--- a/src/compiler/glsl/glsl_parser.yy
+++ b/src/compiler/glsl/glsl_parser.yy
@@ -1318,8 +1318,7 @@ layout_qualifier_id:
       }
 
       /* Layout qualifiers for ARB_shader_image_load_store. */
-      if (state->ARB_shader_image_load_store_enable ||
-          state->is_version(420, 310)) {
+      if (state->has_shader_image_load_store()) {
          if (!$$.flags.i) {
             static const struct {
                const char *name;
diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h
index 9f4a309..66ed2fa 100644
--- a/src/compiler/glsl/glsl_parser_extras.h
+++ b/src/compiler/glsl/glsl_parser_extras.h
@@ -330,6 +330,11 @@ struct _mesa_glsl_parse_state {
              is_version(400, 320);
    }
 
+   bool has_shader_image_load_store() const
+   {
+      return ARB_shader_image_load_store_enable || is_version(420, 310);
+   }
+
    void process_version_directive(YYLTYPE *locp, int version,
                                   const char *ident);
 




More information about the mesa-commit mailing list