| // Covers accelerationStructureEXT as a resourceheap member used by ray queries. |
| #version 460 |
| #extension GL_EXT_descriptor_heap : require |
| #extension GL_EXT_structured_descriptor_heap : require |
| #extension GL_EXT_ray_query : require |
| |
| layout(local_size_x = 1) in; |
| |
| layout(heap_offset = 4096) resourceheap RayHeap { |
| accelerationStructureEXT topLevelAs; |
| } rayHeap; |
| |
| layout(binding = 0, std430) buffer Output { |
| uint values[2]; |
| } outputBuffer; |
| |
| void main() |
| { |
| rayQueryEXT rayQuery; |
| rayQueryInitializeEXT(rayQuery, rayHeap.topLevelAs, 0u, 0xFFu, vec3(0.0), 0.0, vec3(1.0, 0.0, 0.0), 1000.0); |
| |
| outputBuffer.values[0] = rayQueryProceedEXT(rayQuery) ? 1u : 0u; |
| outputBuffer.values[1] = rayQueryGetRayFlagsEXT(rayQuery); |
| } |