summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2013-11-22 20:57:44 -0800
committerFrancisco Jerez <[email protected]>2014-02-12 18:44:04 +0100
commitbb13691d1c4df0c9258289b77867e5d5c890a838 (patch)
treedfac46fc2dd2bc60ee79fdb659265f6e052fb938 /src
parent107d03a6d5b63687361b2b4d2876ef52b082cbb5 (diff)
glsl: Add image memory and layout qualifiers to ir_variable.
v2: Add comment next to the read_only and write_only qualifier flags. Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src')
-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.