• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 460
2#extension GL_EXT_ray_query : require
3#extension GL_EXT_ray_flags_primitive_culling : require
4#extension GL_EXT_ray_tracing : require
5layout(primitive_culling);
6layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
7
8layout(set = 0, binding = 1, std140) uniform Params
9{
10    uint ray_flags;
11    uint cull_mask;
12    vec3 origin;
13    float tmin;
14    vec3 dir;
15    float tmax;
16    float thit;
17    uvec2 bda;
18} _19;
19
20layout(set = 0, binding = 0) uniform accelerationStructureEXT AS;
21
22rayQueryEXT q;
23rayQueryEXT q2[2];
24
25void main()
26{
27    rayQueryInitializeEXT(q, AS, _19.ray_flags, _19.cull_mask, _19.origin, _19.tmin, _19.dir, _19.tmax);
28    rayQueryInitializeEXT(q2[1], accelerationStructureEXT(_19.bda), _19.ray_flags, _19.cull_mask, _19.origin, _19.tmin, _19.dir, _19.tmax);
29    bool _67 = rayQueryProceedEXT(q);
30    bool res = _67;
31    rayQueryTerminateEXT(q2[0]);
32    rayQueryGenerateIntersectionEXT(q, _19.thit);
33    rayQueryConfirmIntersectionEXT(q2[1]);
34    float _75 = rayQueryGetRayTMinEXT(q);
35    float fval = _75;
36    uint _79 = rayQueryGetRayFlagsEXT(q2[0]);
37    uint type = _79;
38    vec3 _82 = rayQueryGetWorldRayDirectionEXT(q);
39    vec3 fvals = _82;
40    vec3 _83 = rayQueryGetWorldRayOriginEXT(q);
41    fvals = _83;
42    uint _86 = rayQueryGetIntersectionTypeEXT(q2[1], bool(1));
43    type = _86;
44    bool _88 = rayQueryGetIntersectionCandidateAABBOpaqueEXT(q2[1]);
45    res = _88;
46    float _91 = rayQueryGetIntersectionTEXT(q2[1], bool(0));
47    fval = _91;
48    int _94 = rayQueryGetIntersectionInstanceCustomIndexEXT(q, bool(1));
49    int ival = _94;
50    int _96 = rayQueryGetIntersectionInstanceIdEXT(q2[0], bool(0));
51    ival = _96;
52    uint _97 = rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(q, bool(1));
53    type = _97;
54    int _99 = rayQueryGetIntersectionGeometryIndexEXT(q2[1], bool(0));
55    ival = _99;
56    int _100 = rayQueryGetIntersectionPrimitiveIndexEXT(q, bool(1));
57    ival = _100;
58    vec2 _103 = rayQueryGetIntersectionBarycentricsEXT(q2[0], bool(0));
59    fvals = vec3(_103.x, _103.y, fvals.z);
60    bool _106 = rayQueryGetIntersectionFrontFaceEXT(q, bool(1));
61    res = _106;
62    vec3 _107 = rayQueryGetIntersectionObjectRayDirectionEXT(q, bool(0));
63    fvals = _107;
64    vec3 _109 = rayQueryGetIntersectionObjectRayOriginEXT(q2[0], bool(1));
65    fvals = _109;
66    mat4x3 _113 = rayQueryGetIntersectionObjectToWorldEXT(q, bool(0));
67    mat4x3 matrices = _113;
68    mat4x3 _115 = rayQueryGetIntersectionWorldToObjectEXT(q2[1], bool(1));
69    matrices = _115;
70}
71
72