Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2022-04-19 12:49:22 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2022-04-19 12:49:22 +0300
commit5b18fb1bcd86414ca1a8cf1ec2b105cfe216981d (patch)
tree68b43c18f091b98fdb1f0fc239ed5e150a77b043 /reference/opt
parent779138f39fa33f6fe6dab2e3b21938884f74a4bb (diff)
MSL: Pass down global RayQuery object to leaf functions.
Diffstat (limited to 'reference/opt')
-rw-r--r--reference/opt/shaders-msl/frag/ray-query-object-in-function.spv14.vk.msl24.frag45
1 files changed, 45 insertions, 0 deletions
diff --git a/reference/opt/shaders-msl/frag/ray-query-object-in-function.spv14.vk.msl24.frag b/reference/opt/shaders-msl/frag/ray-query-object-in-function.spv14.vk.msl24.frag
new file mode 100644
index 00000000..859ace2c
--- /dev/null
+++ b/reference/opt/shaders-msl/frag/ray-query-object-in-function.spv14.vk.msl24.frag
@@ -0,0 +1,45 @@
+#include <metal_stdlib>
+#include <simd/simd.h>
+#if __METAL_VERSION__ >= 230
+#include <metal_raytracing>
+using namespace metal::raytracing;
+#endif
+
+using namespace metal;
+
+struct main0_out
+{
+ float4 outColor [[color(0)]];
+};
+
+struct main0_in
+{
+ float4 inPos [[user(locn0)]];
+};
+
+fragment main0_out main0(main0_in in [[stage_in]], raytracing::acceleration_structure<raytracing::instancing> topLevelAS [[buffer(0)]])
+{
+ main0_out out = {};
+ raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data> rayQuery;
+ rayQuery.reset(ray(float3((in.inPos.xy * 4.0) - float2(2.0), 1.0), float3(0.0, 0.0, -1.0), 0.001000000047497451305389404296875, 2.0), topLevelAS, intersection_params());
+ for (;;)
+ {
+ bool _88 = rayQuery.next();
+ if (_88)
+ {
+ continue;
+ }
+ else
+ {
+ break;
+ }
+ }
+ uint _92 = uint(rayQuery.get_committed_intersection_type());
+ if (_92 == 0u)
+ {
+ discard_fragment();
+ }
+ out.outColor = in.inPos;
+ return out;
+}
+