--- src/glsl/ir.cpp | 2 +- src/glsl/ir.h | 14 ++++++++++++++ src/glsl/ir_clone.cpp | 1 + 3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp index ffff297..ae690ea 100644 --- a/src/glsl/ir.cpp +++ b/src/glsl/ir.cpp @@ -1587,7 +1587,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name, : max_array_access(0), max_ifc_array_access(NULL), read_only(false), centroid(false), invariant(false), how_declared(ir_var_declared_normally), mode(mode), - interpolation(INTERP_QUALIFIER_NONE), atomic() + interpolation(INTERP_QUALIFIER_NONE), atomic(), image() { this->ir_type = ir_type_variable; this->type = type; diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 4f775da..0bf8a12 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -694,6 +694,20 @@ public: } atomic; /** + * ARB_shader_image_load_store qualifiers. + */ + struct { + bool read_only; + bool write_only; + bool coherent; + bool _volatile; + bool _restrict; + + /** Image internal format if specified explicitly, otherwise GL_NONE. */ + GLenum format; + } image; + + /** * Built-in state that backs this uniform * * Once set at variable creation, \c state_slots must remain invariant. diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp index ed26aae..afa8075 100644 --- a/src/glsl/ir_clone.cpp +++ b/src/glsl/ir_clone.cpp @@ -59,6 +59,7 @@ ir_variable::clone(void *mem_ctx, struct hash_table *ht) const var->binding = this->binding; var->atomic.buffer_index = this->atomic.buffer_index; var->atomic.offset = this->atomic.offset; + var->image = this->image; var->warn_extension = this->warn_extension; var->origin_upper_left = this->origin_upper_left; var->pixel_center_integer = this->pixel_center_integer; -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev