#version 460
#extension GL_EXT_ray_tracing : enable
#extension GL_ARB_gpu_shader_int64 : enable
layout(location = 1) rayPayloadEXT vec4 payload;
layout(shaderRecordEXT, std140) buffer block
{
    vec3 dir;
    vec3 origin;
    int i;
    uvec2 aHandle32;
    uint64_t aHandle64;
    vec2 arr[2];
    float a;
    vec3 arr3[2];
    float packme;
    vec2 b;
    float c;
};
void main()
{
    uint lx = gl_LaunchIDEXT.x;
    uint ly = gl_LaunchIDEXT.y;
    uint sx = gl_LaunchSizeEXT.x;
    uint sy = gl_LaunchSizeEXT.y;
    traceRayEXT(accelerationStructureEXT(aHandle32), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
    traceRayEXT(accelerationStructureEXT(aHandle64), lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
}
