summaryrefslogtreecommitdiffstats
path: root/tests/vkray
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-09-13 09:48:32 -0700
committerGitHub <noreply@github.com>2023-09-13 09:48:32 -0700
commitd2466a602774fcaec063e2f8cdbf86fd5e160a21 (patch)
tree13d453cbf79c51ddba4131453da89055fe9740af /tests/vkray
parentc0a77c360436c4f1ec4d284e331063c35bdf95ad (diff)
Add all RayQuery SPIRV Intrinsics. (#3204)
* Add all RayQuery SPIRV Intrinsics. * Fix * Fix. * fix. * Fix. * Fix. * Fix. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tests/vkray')
-rw-r--r--tests/vkray/anyhit.slang10
-rw-r--r--tests/vkray/callable.slang11
-rw-r--r--tests/vkray/callable.slang.glsl24
-rw-r--r--tests/vkray/closesthit.slang17
-rw-r--r--tests/vkray/closesthit.slang.glsl71
-rw-r--r--tests/vkray/entry-point-params.slang10
-rw-r--r--tests/vkray/entry-point-params.slang.glsl38
7 files changed, 44 insertions, 137 deletions
diff --git a/tests/vkray/anyhit.slang b/tests/vkray/anyhit.slang
index 515c66f14..baafb00a0 100644
--- a/tests/vkray/anyhit.slang
+++ b/tests/vkray/anyhit.slang
@@ -5,7 +5,7 @@
// where we cannot infer the required SPIR-V version from the code
// (and glslang doesn't include any such inference ability).
-//TEST:CROSS_COMPILE: -profile glsl_460+spirv_1_4 -stage anyhit -entry main -target spirv-assembly
+//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+spirv_1_4 -stage anyhit -entry main -target spirv-assembly
struct SphereHitAttributes
{
@@ -45,3 +45,11 @@ void main(
}
}
}
+
+// CHECK: OpCapability RayTracing
+// CHECK: OpEntryPoint AnyHitNV %main "main"
+// CHECK: %_ptr_HitAttributeNV_SphereHitAttributes_0 = OpTypePointer HitAttributeNV %SphereHitAttributes_0
+// CHECK: %_S{{.*}} = OpVariable %_ptr_HitAttributeNV_SphereHitAttributes_0 HitAttributeNV
+// CHECK: %{{.*}} = OpAccessChain %_ptr_HitAttributeNV_v3float %_S{{.*}} %int_0
+// CHECK: OpTerminateRayKHR
+// CHECK: OpIgnoreIntersectionKHR
diff --git a/tests/vkray/callable.slang b/tests/vkray/callable.slang
index 5fdbd0eb5..0f96266f6 100644
--- a/tests/vkray/callable.slang
+++ b/tests/vkray/callable.slang
@@ -1,6 +1,6 @@
// callable.slang
-//TEST:CROSS_COMPILE: -profile glsl_460+spirv_1_4 -stage callable -entry main -target spirv-assembly
+//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+spirv_1_4 -stage callable -entry main -target spirv-assembly
import callable_shared;
@@ -14,3 +14,12 @@ void main(in out MaterialPayload ioPayload)
ioPayload.uv,
0);
}
+
+// CHECK: OpCapability RayTracingKHR
+// CHECK: OpExtension "SPV_KHR_ray_tracing"
+// CHECK: OpEntryPoint CallableNV %main
+// CHECK: %_ptr_IncomingCallableDataNV_MaterialPayload_0 = OpTypePointer IncomingCallableDataNV %MaterialPayload_0
+// CHECK: %_ptr_IncomingCallableDataNV_v2float = OpTypePointer IncomingCallableDataNV %v2float
+// CHECK: %_ptr_IncomingCallableDataNV_v4float = OpTypePointer IncomingCallableDataNV %v4float
+// CHECK: %{{.*}} = OpAccessChain %_ptr_IncomingCallableDataNV_v2float %_S1 %int_1
+// CHECK: %{{.*}} = OpAccessChain %_ptr_IncomingCallableDataNV_v4float %_S1 %int_0
diff --git a/tests/vkray/callable.slang.glsl b/tests/vkray/callable.slang.glsl
deleted file mode 100644
index 871ffcbb7..000000000
--- a/tests/vkray/callable.slang.glsl
+++ /dev/null
@@ -1,24 +0,0 @@
-#version 460
-#extension GL_EXT_ray_tracing : require
-layout(row_major) uniform;
-layout(row_major) buffer;
-layout(binding = 0)
-uniform texture2D gAlbedoMap_0;
-
-layout(binding = 1)
-uniform sampler gSampler_0;
-
-struct MaterialPayload_0
-{
- vec4 albedo_0;
- vec2 uv_0;
-};
-
-callableDataInEXT MaterialPayload_0 _S1;
-
-void main()
-{
- _S1.albedo_0 = (textureLod(sampler2D(gAlbedoMap_0,gSampler_0), (_S1.uv_0), (0.0)));
- return;
-}
-
diff --git a/tests/vkray/closesthit.slang b/tests/vkray/closesthit.slang
index b1b73c94e..b2af4501c 100644
--- a/tests/vkray/closesthit.slang
+++ b/tests/vkray/closesthit.slang
@@ -1,5 +1,5 @@
// closesthit.slang
-//TEST:CROSS_COMPILE: -profile glsl_460+GL_NV_ray_tracing -stage closesthit -entry main -target spirv-assembly
+//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+GL_NV_ray_tracing -stage closesthit -entry main -target spirv-assembly
struct ReflectionRay
{
@@ -30,3 +30,18 @@ void main(
ioPayload.color = color;
}
+
+// CHECK: OpCapability RayTracing
+// CHECK: OpEntryPoint ClosestHitNV %main "main"
+// CHECK: OpDecorate %gl_InstanceID BuiltIn InstanceId
+// CHECK: OpDecorate %gl_InstanceCustomIndexNV BuiltIn InstanceCustomIndexNV
+// CHECK: OpDecorate %gl_PrimitiveID BuiltIn PrimitiveId
+// CHECK: OpDecorate %gl_HitKindNV BuiltIn HitKindNV
+// CHECK: OpDecorate %gl_RayTmaxNV BuiltIn RayTmaxNV
+// CHECK: OpDecorate %gl_RayTminNV BuiltIn RayTminNV
+// CHECK: %ShaderRecord_0 = OpVariable %_ptr_ShaderRecordBufferNV__S{{.*}} ShaderRecordBufferNV
+// CHECK: %{{.*}} = OpVariable %_ptr_IncomingRayPayloadNV_ReflectionRay_0 IncomingRayPayloadNV
+// CHECK: %{{.*}} = OpLoad %int %gl_InstanceID
+// CHECK: %{{.*}} = OpLoad %int %gl_InstanceCustomIndexNV
+// CHECK: %{{.*}} = OpAccessChain %_ptr_ShaderRecordBufferNV_uint %ShaderRecord_0 %int_0
+// CHECK: %{{.*}} = OpAccessChain %_ptr_IncomingRayPayloadNV_v4float %_S{{.*}} %int_0
diff --git a/tests/vkray/closesthit.slang.glsl b/tests/vkray/closesthit.slang.glsl
deleted file mode 100644
index bb3e81f87..000000000
--- a/tests/vkray/closesthit.slang.glsl
+++ /dev/null
@@ -1,71 +0,0 @@
-// closesthit.slang.glsl
-#version 460
-#extension GL_NV_ray_tracing : require
-
-#define tmp_shaderrecord _S1
-#define tmp_colors StructuredBuffer_float4_t_0
-#define tmp_hitattrs _S2
-#define tmp_payload _S3
-#define tmp_customidx _S4
-#define tmp_instanceid _S5
-#define tmp_add_0 _S6
-#define tmp_primid _S7
-#define tmp_add_1 _S8
-#define tmp_hitkind _S9
-#define tmp_hitt _S10
-#define tmp_tmin _S11
-
-struct SLANG_ParameterGroup_ShaderRecord_0
-{
- uint shaderRecordID_0;
-};
-
-layout(shaderRecordNV)
-buffer tmp_shaderrecord
-{
- uint shaderRecordID_0;
-} ShaderRecord_0;
-
-layout(std430, binding = 0) readonly buffer tmp_colors
-{
- vec4 _data[];
-} colors_0;
-
-struct BuiltInTriangleIntersectionAttributes_0
-{
- vec2 barycentrics_0;
-};
-
-
-hitAttributeNV BuiltInTriangleIntersectionAttributes_0 tmp_hitattrs;
-
-struct ReflectionRay_0
-{
- vec4 color_0;
-};
-
-rayPayloadInNV ReflectionRay_0 tmp_payload;
-
-void main()
-{
- uint tmp_instanceid = gl_InstanceID;
- uint tmp_shift_0 = tmp_instanceid << 1;
-
- uint tmp_customidx = gl_InstanceCustomIndexNV;
-
- uint tmp_add_0 = tmp_shift_0 + tmp_customidx;
- uint tmp_primid = gl_PrimitiveID;
-
- uint tmp_add_1 = tmp_add_0 + tmp_primid;
- uint tmp_hitkind = gl_HitKindNV;
-
- vec4 color_1 = colors_0._data[tmp_add_1 + tmp_hitkind + ShaderRecord_0.shaderRecordID_0];
-
- float tmp_hitt = gl_RayTmaxNV;
- float tmp_tmin = gl_RayTminNV;
-
- tmp_payload.color_0 = color_1 * (tmp_hitt - tmp_tmin);
-
- return;
-}
-
diff --git a/tests/vkray/entry-point-params.slang b/tests/vkray/entry-point-params.slang
index 25ee29d0d..075692b19 100644
--- a/tests/vkray/entry-point-params.slang
+++ b/tests/vkray/entry-point-params.slang
@@ -3,7 +3,7 @@
// Test that entry-point `uniform` parameters on ray-tracing
// shaders properly map to the "shader record" in SPIR-V output.
-//TEST:CROSS_COMPILE: -profile glsl_460+spirv_1_4 -stage raygeneration -entry main -target spirv-assembly
+//TEST:SIMPLE(filecheck=CHECK): -profile glsl_460+spirv_1_4 -stage raygeneration -entry main -target spirv-assembly
RWStructuredBuffer<float> buffer;
@@ -12,3 +12,11 @@ void main(
{
buffer[DispatchRaysIndex().x] = value;
}
+
+// CHECK: OpCapability RayTracingKHR
+// CHECK: OpExtension "SPV_KHR_ray_tracing"
+// CHECK: OpEntryPoint RayGenerationNV %main
+// CHECK: OpDecorate %gl_LaunchIDEXT BuiltIn LaunchIdNV
+// CHECK: %gl_LaunchIDEXT = OpVariable %_ptr_Input_v3uint Input
+// CHECK: %{{.*}} = OpLoad %v3uint %gl_LaunchIDEXT
+// CHECK: %{{.*}} = OpAccessChain %_ptr_ShaderRecordBufferNV_float %_S2 %int_0
diff --git a/tests/vkray/entry-point-params.slang.glsl b/tests/vkray/entry-point-params.slang.glsl
deleted file mode 100644
index a505b337e..000000000
--- a/tests/vkray/entry-point-params.slang.glsl
+++ /dev/null
@@ -1,38 +0,0 @@
-//TEST_IGNORE_FILE:
-#version 460
-
-#if USE_NV_RT
-#extension GL_NV_ray_tracing : require
-#define callableDataInEXT callableDataInNV
-#define gl_LaunchIDEXT gl_LaunchIDNV
-#define hitAttributeEXT hitAttributeNV
-#define ignoreIntersectionEXT ignoreIntersectionNV
-#define rayPayloadInEXT rayPayloadInNV
-#define shaderRecordEXT shaderRecordNV
-#define terminateRayEXT terminateRayNV
-#else
-#extension GL_EXT_ray_tracing : require
-#endif
-
-layout(std430, binding = 0)
-buffer StructuredBuffer_float_t_0 {
- float _data[];
-} buffer_0;
-
-struct EntryPointParams_0
-{
- float value_0;
-};
-
-layout(shaderRecordEXT)
-buffer _S1
-{
- float value_0;
-} _S2;
-
-void main()
-{
- uvec3 _S3 = gl_LaunchIDEXT;
- buffer_0._data[_S3.x] = _S2.value_0;
- return;
-}