spirv: Access qualifiers are not a bitfield

They're an actual enum.  My bad.

Fixes: de36b5b805be "nir/vtn: Add support for kernel images to SPIRV-to-NIR"
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578>
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 19d2616..783f7ce 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -313,6 +313,22 @@
    return vtn_push_ssa_value(b, value_id, ssa);
 }
 
+static enum gl_access_qualifier
+spirv_to_gl_access_qualifier(struct vtn_builder *b,
+                             SpvAccessQualifier access_qualifier)
+{
+   switch (access_qualifier) {
+   case SpvAccessQualifierReadOnly:
+      return ACCESS_NON_WRITEABLE;
+   case SpvAccessQualifierWriteOnly:
+      return ACCESS_NON_READABLE;
+   case SpvAccessQualifierReadWrite:
+      return 0;
+   default:
+      vtn_fail("Invalid image access qualifier");
+   }
+}
+
 static nir_deref_instr *
 vtn_get_image(struct vtn_builder *b, uint32_t value_id)
 {
@@ -5578,11 +5594,8 @@
       in_var->data.read_only = true;
       in_var->data.location = i;
       if (param_type->base_type == vtn_base_type_image) {
-         in_var->data.access = 0;
-         if (param_type->access_qualifier & SpvAccessQualifierReadOnly)
-            in_var->data.access |= ACCESS_NON_WRITEABLE;
-         if (param_type->access_qualifier & SpvAccessQualifierWriteOnly)
-            in_var->data.access |= ACCESS_NON_READABLE;
+         in_var->data.access =
+            spirv_to_gl_access_qualifier(b, param_type->access_qualifier);
       }
 
       if (is_by_val)