Merge pull request #3031 from rg3igalia/sub-group-size-arb-flat-fix
[platform/upstream/glslang.git] / Test / spv.ext.RayGenShaderArray.rgen
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
5 layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT0[];
6 layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1[2];
7 layout(location = 1) rayPayloadEXT vec4 payload;
8 layout(shaderRecordEXT) buffer block
9 {
10         vec3 dir;
11         vec3 origin;
12     int i;
13     uvec2 aHandle32;
14     uint64_t aHandle64;
15 };
16 void 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 }