spirv: Add basic plumbing for ray-tracing capabilities

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6479>
This commit is contained in:
Jason Ekstrand 2020-05-13 13:01:28 -05:00 committed by Marge Bot
parent f65182931d
commit d8dbdf20de
2 changed files with 15 additions and 0 deletions

View file

@ -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;

View file

@ -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);