Allow runtime-sized arrays of acceleration structures
This commit is contained in:
22
Test/spv.RayGenShaderArray.rgen
Normal file
22
Test/spv.RayGenShaderArray.rgen
Normal file
@@ -0,0 +1,22 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : enable
|
||||
#extension GL_EXT_nonuniform_qualifier : enable
|
||||
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0[];
|
||||
layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1[2];
|
||||
layout(location = 0) rayPayloadNV vec4 payload;
|
||||
layout(shaderRecordNV) buffer block
|
||||
{
|
||||
vec3 dir;
|
||||
vec3 origin;
|
||||
int i;
|
||||
};
|
||||
void main()
|
||||
{
|
||||
uint lx = gl_LaunchIDNV.x;
|
||||
uint ly = gl_LaunchIDNV.y;
|
||||
uint sx = gl_LaunchSizeNV.x;
|
||||
uint sy = gl_LaunchSizeNV.y;
|
||||
traceNV(accNV0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
traceNV(accNV1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
traceNV(accNV0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
||||
}
|
||||
Reference in New Issue
Block a user