From: Rob Clark <robdcl...@gmail.com> vtn supports these, so don't squalk if user is happy with enabling these.
Signed-off-by: Karol Herbst <kher...@redhat.com> --- src/compiler/shader_info.h | 3 +++ src/compiler/spirv/spirv_to_nir.c | 16 +++++++++++++--- src/compiler/spirv/vtn_variables.c | 6 ++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index 65bc0588d67..5286cf8fc5f 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -62,6 +62,9 @@ struct spirv_supported_capabilities { bool post_depth_coverage; bool transform_feedback; bool geometry_streams; + bool address; + bool kernel; + bool int8; }; typedef struct shader_info { diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index d7dd5a67cc4..db2ee51340c 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -792,8 +792,10 @@ struct_member_decoration_cb(struct vtn_builder *b, case SpvDecorationFPRoundingMode: case SpvDecorationFPFastMathMode: case SpvDecorationAlignment: - vtn_warn("Decoration only allowed for CL-style kernels: %s", - spirv_decoration_to_string(dec->decoration)); + if (!b->kernel_mode) { + vtn_warn("Decoration only allowed for CL-style kernels: %s", + spirv_decoration_to_string(dec->decoration)); + } break; case SpvDecorationHlslSemanticGOOGLE: @@ -3428,7 +3430,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, case SpvCapabilityFloat16: case SpvCapabilityInt64Atomics: case SpvCapabilityStorageImageMultisample: - case SpvCapabilityInt8: case SpvCapabilitySparseResidency: case SpvCapabilityMinLod: vtn_warn("Unsupported SPIR-V capability: %s", @@ -3457,8 +3458,17 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, spv_check_supported(geometry_streams, cap); break; + case SpvCapabilityInt8: + spv_check_supported(int8, cap); + break; + case SpvCapabilityAddresses: + spv_check_supported(address, cap); + break; case SpvCapabilityKernel: + spv_check_supported(kernel, cap); + break; + case SpvCapabilityImageBasic: case SpvCapabilityImageReadWrite: case SpvCapabilityImageMipmap: diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c index c5cf345d02a..e7654b768af 100644 --- a/src/compiler/spirv/vtn_variables.c +++ b/src/compiler/spirv/vtn_variables.c @@ -1371,8 +1371,10 @@ apply_var_decoration(struct vtn_builder *b, case SpvDecorationFPRoundingMode: case SpvDecorationFPFastMathMode: case SpvDecorationAlignment: - vtn_warn("Decoration only allowed for CL-style kernels: %s", - spirv_decoration_to_string(dec->decoration)); + if (!b->kernel_mode) { + vtn_warn("Decoration only allowed for CL-style kernels: %s", + spirv_decoration_to_string(dec->decoration)); + } break; case SpvDecorationHlslSemanticGOOGLE: -- 2.19.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev