blob: 4c411674f4908f8a2639ff1cd67ca7add5af9baa [file] [edit]
#version 460
#extension GL_EXT_ray_query : enable
#extension GL_EXT_opacity_micromap_ray_query_mode : enable
// Bare specialization-constant form where the built-in is also read in the shader body. Reading it
// materializes the specialization constant, so the OpacityMicromapIdKHR execution mode must reference
// that same constant (not a synthesized duplicate) - i.e. a single SpecId is emitted.
layout(constant_id = 2) gl_EnableOpacityMicromapEXT;
layout(set = 0, binding = 0) uniform accelerationStructureEXT topLevelAS;
layout(set = 0, binding = 1, std430) buffer Out { uint enabled; } outBuf;
void main()
{
rayQueryEXT rq;
rayQueryInitializeEXT(rq, topLevelAS, gl_RayFlagsNoneEXT, 0xFFu,
vec3(0.0), 0.1, vec3(0.0, 0.0, 1.0), 100.0);
rayQueryProceedEXT(rq);
outBuf.enabled = gl_EnableOpacityMicromapEXT ? 1u : 0u;
}