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>2019-03-27 11:58:23 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2019-03-27 11:58:23 +0300
commit82e23e4221d98a67e2434dd114910a863dba55bd (patch)
tree6c77df69a690e9d1379756df99b618725e39be01 /shaders
parent736703fe3beea590e5ada820e65d12721932fa66 (diff)
parent0f72199b8f99d5a3b8ea68d66d8454dddf927b26 (diff)
Merge branch 'SPV_NV_ray_tracing' of git://github.com/pmoursnv/SPIRV-Cross
Diffstat (limited to 'shaders')
-rw-r--r--shaders/vulkan/rchit/ray_tracing.vk.rchit9
-rw-r--r--shaders/vulkan/rgen/pure_call.vk.rgen18
-rw-r--r--shaders/vulkan/rgen/ray_tracing.vk.rgen16
-rw-r--r--shaders/vulkan/rmiss/ray_tracing.vk.rmiss9
4 files changed, 52 insertions, 0 deletions
diff --git a/shaders/vulkan/rchit/ray_tracing.vk.rchit b/shaders/vulkan/rchit/ray_tracing.vk.rchit
new file mode 100644
index 00000000..107f9751
--- /dev/null
+++ b/shaders/vulkan/rchit/ray_tracing.vk.rchit
@@ -0,0 +1,9 @@
+#version 460
+#extension GL_NV_ray_tracing : require
+
+layout(location = 0) rayPayloadInNV float payload;
+
+void main()
+{
+ payload = 1.0;
+}
diff --git a/shaders/vulkan/rgen/pure_call.vk.rgen b/shaders/vulkan/rgen/pure_call.vk.rgen
new file mode 100644
index 00000000..3e362ed0
--- /dev/null
+++ b/shaders/vulkan/rgen/pure_call.vk.rgen
@@ -0,0 +1,18 @@
+#version 460
+#extension GL_NV_ray_tracing : require
+
+layout(set = 0, binding = 1) uniform accelerationStructureNV as;
+layout(location = 0) rayPayloadNV float payload;
+
+float pure_call(vec2 launchID, vec2 launchSize)
+{
+ vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0);
+ vec3 direction = vec3(0.0, 0.0, -1.0);
+ traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0);
+ return 0.0;
+}
+
+void main()
+{
+ pure_call(vec2(gl_LaunchIDNV.xy), vec2(gl_LaunchSizeNV.xy));
+}
diff --git a/shaders/vulkan/rgen/ray_tracing.vk.rgen b/shaders/vulkan/rgen/ray_tracing.vk.rgen
new file mode 100644
index 00000000..e3f7c1ac
--- /dev/null
+++ b/shaders/vulkan/rgen/ray_tracing.vk.rgen
@@ -0,0 +1,16 @@
+#version 460
+#extension GL_NV_ray_tracing : require
+
+layout(set = 0, binding = 0, rgba8) uniform image2D image;
+layout(set = 0, binding = 1) uniform accelerationStructureNV as;
+layout(location = 0) rayPayloadNV float payload;
+
+void main()
+{
+ vec4 col = vec4(0.0, 0.0, 0.0, 1.0);
+ vec3 origin = vec3(float(gl_LaunchIDNV.x) / float(gl_LaunchSizeNV.x), float(gl_LaunchIDNV.y) / float(gl_LaunchSizeNV.y), 1.0);
+ vec3 direction = vec3(0.0, 0.0, -1.0);
+ traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0);
+ col.y = payload;
+ imageStore(image, ivec2(gl_LaunchIDNV.xy), col);
+}
diff --git a/shaders/vulkan/rmiss/ray_tracing.vk.rmiss b/shaders/vulkan/rmiss/ray_tracing.vk.rmiss
new file mode 100644
index 00000000..ff438ce7
--- /dev/null
+++ b/shaders/vulkan/rmiss/ray_tracing.vk.rmiss
@@ -0,0 +1,9 @@
+#version 460
+#extension GL_NV_ray_tracing : require
+
+layout(location = 0) rayPayloadInNV float payload;
+
+void main()
+{
+ payload = 0.0;
+}