spirv: Allow ignoring decorations for workgroup variables
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 11 Dec 2017 23:31:22 +0000 (15:31 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 12 Dec 2017 03:02:47 +0000 (19:02 -0800)
Since we switched over to lowering SLM access directly in SPIR-V -> NIR,
we no longer have vtn_variables for SLM.  It's all safe as with UBOs and
SSBOs but we need to let it through in the assert.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104213
Fixes: 8761a04d0d9332d9c0c99164faf855fc3c741f7c
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/compiler/spirv/vtn_variables.c

index 671f18a033979befa2a0a72da86c3ec9e21b89e3..745269b65000bb28cf86da77b6f37f354f4bc2bb 100644 (file)
@@ -1533,7 +1533,9 @@ var_decoration_cb(struct vtn_builder *b, struct vtn_value *val, int member,
           */
          vtn_assert(vtn_var->mode == vtn_variable_mode_ubo ||
                     vtn_var->mode == vtn_variable_mode_ssbo ||
-                    vtn_var->mode == vtn_variable_mode_push_constant);
+                    vtn_var->mode == vtn_variable_mode_push_constant ||
+                    (vtn_var->mode == vtn_variable_mode_workgroup &&
+                     b->options->lower_workgroup_access_to_offsets));
       }
    }
 }