#version 460
#extension GL_EXT_ray_tracing : require
#extension GL_EXT_nonuniform_qualifier : require

struct _6
{
    uint _m0;
};

struct _11
{
    vec2 _m0;
};

layout(location = 0) rayPayloadInEXT _6 payload;
hitAttributeEXT _11 hit;

void main()
{
    payload._m0 = uint(gl_InstanceCustomIndexEXT);
}


#if 0
// SPIR-V disassembly
; SPIR-V
; Version: 1.4
; Generator: Unknown(30017); 21022
; Bound: 22
; Schema: 0
OpCapability Shader
OpCapability UniformBufferArrayDynamicIndexing
OpCapability SampledImageArrayDynamicIndexing
OpCapability StorageBufferArrayDynamicIndexing
OpCapability StorageImageArrayDynamicIndexing
OpCapability RayTracingKHR
OpCapability RuntimeDescriptorArray
OpCapability UniformBufferArrayNonUniformIndexing
OpCapability SampledImageArrayNonUniformIndexing
OpCapability StorageBufferArrayNonUniformIndexing
OpCapability StorageImageArrayNonUniformIndexing
OpExtension "SPV_EXT_descriptor_indexing"
OpExtension "SPV_KHR_ray_tracing"
OpMemoryModel Logical GLSL450
OpEntryPoint AnyHitNV %3 "main" %8 %13 %15
OpName %3 "main"
OpName %6 ""
OpName %8 "payload"
OpName %11 ""
OpName %13 "hit"
OpDecorate %15 BuiltIn InstanceCustomIndexNV
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpTypeStruct %5
%7 = OpTypePointer IncomingRayPayloadNV %6
%8 = OpVariable %7 IncomingRayPayloadNV
%9 = OpTypeFloat 32
%10 = OpTypeVector %9 2
%11 = OpTypeStruct %10
%12 = OpTypePointer HitAttributeNV %11
%13 = OpVariable %12 HitAttributeNV
%14 = OpTypePointer Input %5
%15 = OpVariable %14 Input
%17 = OpTypePointer IncomingRayPayloadNV %5
%19 = OpConstant %5 0
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %20
%20 = OpLabel
%16 = OpLoad %5 %15
%18 = OpInBoundsAccessChain %17 %8 %19
OpStore %18 %16
OpReturn
OpFunctionEnd
#endif
