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 | 17 ++++++++++++++--- src/compiler/spirv/vtn_variables.c | 6 ++++-- 3 files changed, 21 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 2c2dbe12a3c..e41a7e960ce 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -783,8 +783,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->shader->info.stage != MESA_SHADER_KERNEL) { + vtn_warn("Decoration only allowed for CL-style kernels: %s", + spirv_decoration_to_string(dec->decoration)); + } break; case SpvDecorationHlslSemanticGOOGLE: @@ -3420,7 +3422,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", @@ -3449,8 +3450,18 @@ 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 55721fc36e3..fe44e71800d 100644 --- a/src/compiler/spirv/vtn_variables.c +++ b/src/compiler/spirv/vtn_variables.c @@ -1381,8 +1381,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->shader->info.stage != MESA_SHADER_KERNEL) { + vtn_warn("Decoration only allowed for CL-style kernels: %s", + spirv_decoration_to_string(dec->decoration)); + } break; case SpvDecorationHlslSemanticGOOGLE: -- 2.19.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev