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

struct _7
{
    vec3 _m0;
};

struct _11
{
    vec2 _m0;
};

vec3 _22;

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

void main()
{
    vec3 _21;
    _21.x = gl_WorldRayDirectionEXT.x;
    _21.y = gl_WorldRayDirectionEXT.y;
    _21.z = gl_WorldRayDirectionEXT.z;
    payload._m0 = _21;
}


#if 0
// SPIR-V disassembly
; SPIR-V
; Version: 1.4
; Generator: Unknown(30017); 21022
; Bound: 35
; 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 AnyHitKHR %3 "main" %9 %13 %15
OpName %3 "main"
OpName %7 ""
OpName %9 "payload"
OpName %11 ""
OpName %13 "hit"
OpDecorate %15 BuiltIn WorldRayDirectionKHR
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeFloat 32
%6 = OpTypeVector %5 3
%7 = OpTypeStruct %6
%8 = OpTypePointer IncomingRayPayloadKHR %7
%9 = OpVariable %8 IncomingRayPayloadKHR
%10 = OpTypeVector %5 2
%11 = OpTypeStruct %10
%12 = OpTypePointer HitAttributeKHR %11
%13 = OpVariable %12 HitAttributeKHR
%14 = OpTypePointer Input %6
%15 = OpVariable %14 Input
%16 = OpTypePointer Input %5
%18 = OpTypeInt 32 0
%19 = OpConstant %18 0
%24 = OpConstant %18 1
%28 = OpConstant %18 2
%31 = OpTypePointer IncomingRayPayloadKHR %6
%3 = OpFunction %1 None %2
%4 = OpLabel
%22 = OpUndef %6
OpBranch %33
%33 = OpLabel
%17 = OpAccessChain %16 %15 %19
%20 = OpLoad %5 %17
%21 = OpCompositeInsert %6 %20 %22 0
%23 = OpAccessChain %16 %15 %24
%25 = OpLoad %5 %23
%26 = OpCompositeInsert %6 %25 %21 1
%27 = OpAccessChain %16 %15 %28
%29 = OpLoad %5 %27
%30 = OpCompositeInsert %6 %29 %26 2
%32 = OpInBoundsAccessChain %31 %9 %19
OpStore %32 %30
OpReturn
OpFunctionEnd
#endif
