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:
authorPatrick Mours <pmours@nvidia.com>2019-03-25 17:07:51 +0300
committerPatrick Mours <pmours@nvidia.com>2019-03-25 17:07:51 +0300
commitaa1c72bc51adc0e7f4e01ee14a4278c47cad3398 (patch)
tree972d3b1666324408e44b9ff605180b66ac72e28d /shaders
parentc74d7a412c97ab937a3959de088352ccc4be300e (diff)
Add ray tracing test shaders
Slightly modified from https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#_sample_code_2
Diffstat (limited to 'shaders')
-rw-r--r--shaders/vulkan/rchit/ray_tracing.vk.rchit9
-rw-r--r--shaders/vulkan/rgen/ray_tracing.vk.rgen16
-rw-r--r--shaders/vulkan/rmiss/ray_tracing.vk.rmiss9
3 files changed, 34 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/ray_tracing.vk.rgen b/shaders/vulkan/rgen/ray_tracing.vk.rgen
new file mode 100644
index 00000000..c3d8398b
--- /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 dir = vec3(0.0, 0.0, -1.0);
+ traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, dir, 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;
+}