summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/ir.cpp5
-rw-r--r--src/glsl/ir.h14
2 files changed, 19 insertions, 0 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index 1a36bd631c1..63dfa383a1d 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -1554,6 +1554,11 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
this->data.max_array_access = 0;
this->data.atomic.buffer_index = 0;
this->data.atomic.offset = 0;
+ this->data.image.read_only = false;
+ this->data.image.write_only = false;
+ this->data.image.coherent = false;
+ this->data.image._volatile = false;
+ this->data.image._restrict = false;
if (type != NULL) {
if (type->base_type == GLSL_TYPE_SAMPLER)
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index e266328b204..39585731898 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -691,6 +691,20 @@ public:
} atomic;
/**
+ * ARB_shader_image_load_store qualifiers.
+ */
+ struct {
+ bool read_only; /**< "readonly" qualifier. */
+ bool write_only; /**< "writeonly" qualifier. */
+ bool coherent;
+ bool _volatile;
+ bool _restrict;
+
+ /** Image internal format if specified explicitly, otherwise GL_NONE. */
+ GLenum format;
+ } image;
+
+ /**
* Highest element accessed with a constant expression array index
*
* Not used for non-array variables.