1#version 460
2#extension GL_EXT_ray_query : enable
3#extension GL_EXT_ray_flags_primitive_culling : enable
4
5layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
6
7rayQueryEXT rqGlobal;
8
9void otherWrapper(rayQueryEXT rq) {
10    rayQueryProceedEXT(rq);
11    rayQueryProceedEXT(rqGlobal);
12}
13
14void wrapper(rayQueryEXT rq) {
15    rayQueryEXT rq2;
16    rayQueryProceedEXT(rq);
17    rayQueryProceedEXT(rqGlobal);
18    otherWrapper(rq);
19    otherWrapper(rq2);
20    otherWrapper(rqGlobal);
21}
22
23void main() {
24    rayQueryInitializeEXT(rqGlobal, rtas, gl_RayFlagsNoneEXT, 0xFF, vec3(0,0,0), 0.0, vec3(1,0,0), 1.0);
25    wrapper(rqGlobal);
26    otherWrapper(rqGlobal);
27    rayQueryEXT rq2;
28    rayQueryInitializeEXT(rq2, rtas, gl_RayFlagsNoneEXT, 0xFF, vec3(0,0,0), 0.0, vec3(1,0,0), 1.0);
29    wrapper(rq2);
30    otherWrapper(rq2);
31}
32