nir/vtn: add caps for some cl related capabilities
vtn supports these, so don't squalk if user is happy with enabling these. v2: add new members sorted Signed-off-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -33,6 +33,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct spirv_supported_capabilities {
|
struct spirv_supported_capabilities {
|
||||||
|
bool address;
|
||||||
bool atomic_storage;
|
bool atomic_storage;
|
||||||
bool descriptor_array_dynamic_indexing;
|
bool descriptor_array_dynamic_indexing;
|
||||||
bool device_group;
|
bool device_group;
|
||||||
@@ -43,9 +44,11 @@ struct spirv_supported_capabilities {
|
|||||||
bool image_ms_array;
|
bool image_ms_array;
|
||||||
bool image_read_without_format;
|
bool image_read_without_format;
|
||||||
bool image_write_without_format;
|
bool image_write_without_format;
|
||||||
|
bool int8;
|
||||||
bool int16;
|
bool int16;
|
||||||
bool int64;
|
bool int64;
|
||||||
bool int64_atomics;
|
bool int64_atomics;
|
||||||
|
bool kernel;
|
||||||
bool min_lod;
|
bool min_lod;
|
||||||
bool multiview;
|
bool multiview;
|
||||||
bool post_depth_coverage;
|
bool post_depth_coverage;
|
||||||
|
@@ -820,8 +820,10 @@ struct_member_decoration_cb(struct vtn_builder *b,
|
|||||||
case SpvDecorationFPRoundingMode:
|
case SpvDecorationFPRoundingMode:
|
||||||
case SpvDecorationFPFastMathMode:
|
case SpvDecorationFPFastMathMode:
|
||||||
case SpvDecorationAlignment:
|
case SpvDecorationAlignment:
|
||||||
vtn_warn("Decoration only allowed for CL-style kernels: %s",
|
if (b->shader->info.stage != MESA_SHADER_KERNEL) {
|
||||||
spirv_decoration_to_string(dec->decoration));
|
vtn_warn("Decoration only allowed for CL-style kernels: %s",
|
||||||
|
spirv_decoration_to_string(dec->decoration));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SpvDecorationHlslSemanticGOOGLE:
|
case SpvDecorationHlslSemanticGOOGLE:
|
||||||
@@ -3521,7 +3523,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||||||
case SpvCapabilityVector16:
|
case SpvCapabilityVector16:
|
||||||
case SpvCapabilityFloat16Buffer:
|
case SpvCapabilityFloat16Buffer:
|
||||||
case SpvCapabilityFloat16:
|
case SpvCapabilityFloat16:
|
||||||
case SpvCapabilityInt8:
|
|
||||||
case SpvCapabilitySparseResidency:
|
case SpvCapabilitySparseResidency:
|
||||||
vtn_warn("Unsupported SPIR-V capability: %s",
|
vtn_warn("Unsupported SPIR-V capability: %s",
|
||||||
spirv_capability_to_string(cap));
|
spirv_capability_to_string(cap));
|
||||||
@@ -3555,6 +3556,9 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||||||
|
|
||||||
case SpvCapabilityInt64Atomics:
|
case SpvCapabilityInt64Atomics:
|
||||||
spv_check_supported(int64_atomics, cap);
|
spv_check_supported(int64_atomics, cap);
|
||||||
|
|
||||||
|
case SpvCapabilityInt8:
|
||||||
|
spv_check_supported(int8, cap);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SpvCapabilityStorageImageMultisample:
|
case SpvCapabilityStorageImageMultisample:
|
||||||
@@ -3562,7 +3566,13 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SpvCapabilityAddresses:
|
case SpvCapabilityAddresses:
|
||||||
|
spv_check_supported(address, cap);
|
||||||
|
break;
|
||||||
|
|
||||||
case SpvCapabilityKernel:
|
case SpvCapabilityKernel:
|
||||||
|
spv_check_supported(kernel, cap);
|
||||||
|
break;
|
||||||
|
|
||||||
case SpvCapabilityImageBasic:
|
case SpvCapabilityImageBasic:
|
||||||
case SpvCapabilityImageReadWrite:
|
case SpvCapabilityImageReadWrite:
|
||||||
case SpvCapabilityImageMipmap:
|
case SpvCapabilityImageMipmap:
|
||||||
|
@@ -1511,8 +1511,10 @@ apply_var_decoration(struct vtn_builder *b,
|
|||||||
case SpvDecorationFPRoundingMode:
|
case SpvDecorationFPRoundingMode:
|
||||||
case SpvDecorationFPFastMathMode:
|
case SpvDecorationFPFastMathMode:
|
||||||
case SpvDecorationAlignment:
|
case SpvDecorationAlignment:
|
||||||
vtn_warn("Decoration only allowed for CL-style kernels: %s",
|
if (b->shader->info.stage != MESA_SHADER_KERNEL) {
|
||||||
spirv_decoration_to_string(dec->decoration));
|
vtn_warn("Decoration only allowed for CL-style kernels: %s",
|
||||||
|
spirv_decoration_to_string(dec->decoration));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SpvDecorationHlslSemanticGOOGLE:
|
case SpvDecorationHlslSemanticGOOGLE:
|
||||||
|
Reference in New Issue
Block a user