yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Jay KwakUpdate spirv-header and spirv-tools to Jun/2024 (#4679)ad379b7c5

master
1.9 KiB62 linesraw
1//TEST:SIMPLE(filecheck=CHECK_GLSL): -allow-glsl -stage miss -entry main -target glsl
2//TEST:SIMPLE(filecheck=CHECK_SPV): -allow-glsl -emit-spirv-directly -stage miss -entry main -target spirv-assembly
3
4layout(binding = 0) uniform accelerationStructureEXT as;
5
6//TEST_INPUT:ubuffer(data=[0], stride=4):out,name=outputBuffer
7buffer MyBlockName
8{
9    uint data[];
10} outputBuffer;
11
12// CHECK_GLSL-DAG: rayPayloadInEXT
13// CHECK_SPV-DAG: IncomingRayPayload{{NV|KHR}}
14layout(location = 2) rayPayloadInEXT vec4 payload;
15// CHECK_GLSL-DAG: hitObjectAttributeNV
16// CHECK_SPV-DAG: HitObjectAttributeNV
17layout(location = 2) hitObjectAttributeNV vec4 attrMain;
18
19bool testVars() {
20    payload = vec4(1);
21    attrMain = vec4(1);
22    return true
23// CHECK_GLSL-DAG: gl_LaunchIDNV
24// CHECK_SPV-DAG-N: LaunchIdNV
25        && gl_LaunchIDNV != uint3(99)
26// CHECK_GLSL-DAG: gl_LaunchIDEXT
27// spirv checked with CHECK_SPV-DAG-N
28        && gl_LaunchIDEXT != uint3(99)
29// CHECK_GLSL-DAG: gl_LaunchSizeNV
30// CHECK_SPV-DAG-N: LaunchSizeNV
31        && gl_LaunchSizeNV != uint3(99)
32// CHECK_GLSL-DAG: gl_LaunchSizeEXT
33// spirv checked with CHECK_SPV-DAG-N
34        && gl_LaunchSizeEXT != uint3(99)
35// CHECK_GLSL-DAG: gl_WorldRayOriginEXT
36// CHECK_SPV-DAG: WorldRayOrigin{{NV|KHR}}
37        && gl_WorldRayOriginEXT != vec3(99)
38// CHECK_GLSL-DAG: gl_WorldRayDirectionEXT
39// CHECK_SPV-DAG: WorldRayDirection{{NV|KHR}}
40        && gl_WorldRayDirectionEXT != vec3(99)
41// CHECK_GLSL-DAG: gl_RayTminEXT
42// CHECK_SPV-DAG: RayTmin{{NV|KHR}}
43        && gl_RayTminEXT != 99.0f
44// CHECK_GLSL-DAG: gl_RayTmaxEXT
45// CHECK_SPV-DAG: RayTmax{{NV|KHR}}
46        && gl_RayTmaxEXT != 99.0f
47// CHECK_GLSL-DAG: gl_IncomingRayFlagsEXT
48// CHECK_SPV-DAG: IncomingRayFlags{{NV|KHR}}
49        && gl_IncomingRayFlagsEXT != 0xFFFFFFFF
50// CHECK_GLSL-DAG: gl_CurrentRayTimeNV
51// CHECK_SPV-DAG: CurrentRayTimeNV
52        && gl_CurrentRayTimeNV != 0.0f
53        ;
54}
55
56void main()
57{
58    outputBuffer.data[0] = true
59        && testVars()
60        ;
61    //BUF: 1
62}