Mesa (master): spirv: Add basic plumbing for ray-tracing capabilities

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Nov 6 00:40:26 UTC 2020


Module: Mesa
Branch: master
Commit: d8dbdf20de840d81f8bc5e12a5ded0a423bb2a5f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d8dbdf20de840d81f8bc5e12a5ded0a423bb2a5f

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Wed May 13 13:01:28 2020 -0500

spirv: Add basic plumbing for ray-tracing capabilities

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6479>

---

 src/compiler/shader_info.h        |  3 +++
 src/compiler/spirv/spirv_to_nir.c | 12 ++++++++++++
 2 files changed, 15 insertions(+)

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



More information about the mesa-commit mailing list