[Mesa-dev] [PATCH 10/22] nir/vtn: add caps for some cl related capabilities
Karol Herbst
kherbst at redhat.com
Tue Nov 13 15:48:14 UTC 2018
From: Rob Clark <robdclark at gmail.com>
vtn supports these, so don't squalk if user is happy with enabling
these.
Signed-off-by: Karol Herbst <kherbst at 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
More information about the mesa-dev
mailing list