diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index 8d77d5c3b7a..680fff6afaf 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -66,6 +66,9 @@ struct spirv_supported_capabilities { bool multiview; bool physical_storage_buffer_address; bool post_depth_coverage; + bool ray_tracing; + bool ray_query; + bool ray_traversal_primitive_culling; bool runtime_descriptor_array; bool float_controls; bool shader_clock; diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 0f89a78431a..b9b085413ee 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -4401,6 +4401,18 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, spv_check_supported(intel_subgroup_buffer_block_io, cap); break; + case SpvCapabilityRayTracingProvisionalKHR: + spv_check_supported(ray_tracing, cap); + break; + + case SpvCapabilityRayQueryProvisionalKHR: + spv_check_supported(ray_query, cap); + break; + + case SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR: + spv_check_supported(ray_traversal_primitive_culling, cap); + break; + default: vtn_fail("Unhandled capability: %s (%u)", spirv_capability_to_string(cap), cap);