Module: Mesa Branch: master Commit: 1e902102c491a5af0f3c129afbabc0ec7a4f6b29 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e902102c491a5af0f3c129afbabc0ec7a4f6b29
Author: Jason Ekstrand <[email protected]> Date: Thu Sep 3 00:07:13 2020 -0500 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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6578> --- src/compiler/spirv/spirv_to_nir.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 19d26165a5a..783f7ce0b69 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -313,6 +313,22 @@ vtn_push_nir_ssa(struct vtn_builder *b, uint32_t value_id, nir_ssa_def *def) 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 @@ vtn_emit_kernel_entry_point_wrapper(struct vtn_builder *b, 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) _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
