Patches 61 and 62

Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>

On 09/10/2015 04:36 PM, Iago Toral Quiroga wrote:
v2:
   - Merge the error check for the readonly qualifier with the already
     existing check for variables flagged as readonly (Timothy).
   - Limit the check to buffer variables, image variables have different
     semantics involved (Curro).
---
  src/glsl/ast_to_hir.cpp | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 61318ef..fed5a47 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -820,7 +820,16 @@ do_assignment(exec_list *instructions, struct 
_mesa_glsl_parse_state *state,
                            "assignment to %s",
                            non_lvalue_description);
           error_emitted = true;
-      } else if (lhs_var != NULL && lhs_var->data.read_only) {
+      } else if (lhs_var != NULL && (lhs_var->data.read_only ||
+                 (lhs_var->data.mode == ir_var_shader_storage &&
+                  lhs_var->data.image_read_only))) {
+         /* We can have image_read_only set on both images and buffer 
variables,
+          * but in the former there is a distinction between assignments to
+          * the variable itself (read_only) and to the memory they point to
+          * (image_read_only), while in the case of buffer variables there is
+          * no such distinction, that is why this check here is limited to
+          * buffer variables alone.
+          */
           _mesa_glsl_error(&lhs_loc, state,
                            "assignment to read-only variable '%s'",
                            lhs_var->name);

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to