xref: /aosp_15_r20/external/angle/third_party/glslang/src/Test/spv.ext.RayGenShaderArray.rgen (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1#version 460
2#extension GL_EXT_ray_tracing : enable
3#extension GL_EXT_nonuniform_qualifier : enable
4#extension GL_ARB_gpu_shader_int64 : enable
5layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT0[];
6layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1[2];
7layout(location = 1) rayPayloadEXT vec4 payload;
8layout(shaderRecordEXT) buffer block
9{
10	vec3 dir;
11	vec3 origin;
12    int i;
13    uvec2 aHandle32;
14    uint64_t aHandle64;
15};
16void main()
17{
18    uint lx = gl_LaunchIDEXT.x;
19    uint ly = gl_LaunchIDEXT.y;
20    uint sx = gl_LaunchSizeEXT.x;
21    uint sy = gl_LaunchSizeEXT.y;
22    traceRayEXT(accEXT0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
23    traceRayEXT(accEXT1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
24    traceRayEXT(accEXT0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
25    traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
26    traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
27}
28