//ShaderVulkanExporter
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 8
; Bound: 25251
; Schema: 0
OpCapability Shader
OpCapability ClipDistance
OpCapability SampledCubeArray
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %5663 "main" %5275 %3208 %5800 %5227 %4571 %5645 %4748 %5503 %5729 %3707 %6006
OpDecorate %2892 ArrayStride 2892
OpDecorate %1727 ArrayStride 1727
OpDecorate %1728 ArrayStride 1728
OpMemberDecorate %2471 0 Offset 2471
OpMemberDecorate %2471 1 Offset 2471
OpMemberDecorate %2471 2 Offset 2471
OpMemberDecorate %2471 3 Offset 2471
OpMemberDecorate %2471 4 Offset 2471
OpMemberDecorate %2471 5 RowMajor
OpMemberDecorate %2471 5 Offset 2471
OpMemberDecorate %2471 5 MatrixStride 2471
OpMemberDecorate %2471 6 Offset 2471
OpMemberDecorate %2471 7 Offset 2471
OpDecorate %2471 Block
OpDecorate %4930 DescriptorSet 4930
OpDecorate %4930 Binding 4930
OpDecorate %3853 DescriptorSet 3853
OpDecorate %3853 Binding 3853
OpDecorate %4428 DescriptorSet 4428
OpDecorate %4428 Binding 4428
OpDecorate %5275 Location 5275
OpDecorate %3208 Location 3208
OpDecorate %5800 Location 5800
OpDecorate %5227 Location 5227
OpDecorate %4571 Location 4571
OpDecorate %5645 Location 5645
OpDecorate %4748 Location 4748
OpDecorate %5503 Location 5503
OpDecorate %5729 Location 5729
OpDecorate %3707 BuiltIn 3707
OpDecorate %6006 BuiltIn 6006
%8 = OpTypeVoid
%1282 = OpTypeFunction %8
%11 = OpTypeInt 32 0
%13 = OpTypeFloat 32
%29 = OpTypeVector %13 4
%24 = OpTypeVector %13 3
%19 = OpTypeVector %13 2
%23 = OpTypeVector %11 4
%80 = OpTypeMatrix %29 3
%101 = OpTypeMatrix %29 4
u32 %2576 = OpConstant 2
%2892 = OpTypeArray %101 %2576
%1727 = OpTypeArray %29 %2576
%1728 = OpTypeArray %29 %2576
%2471 = OpTypeStruct %29 %24 %13 %13 %29 %2892 %1727 %1728
%97 = OpTypePointer Uniform %2471
Uniform struct {f32_4; f32_3; f32; f32; f32_4; f32_4x4[2]; f32_4[2]; f32_4[2];}* %4930 = OpVariable Uniform
%12 = OpTypeInt 32 1
%666 = OpTypePointer Uniform %29
u32 %2579 = OpConstant 3
%738 = OpTypePointer Uniform %101
f32 %138 = OpConstant 3.67402E-40
%661 = OpTypePointer Uniform %24
%650 = OpTypePointer Uniform %13
f32 %2572 = OpConstant 3.67402E-40
i32 %2583 = OpConstant 4
i32 %2580 = OpConstant 3
u32 %2570 = OpConstant 0
i32 %2577 = OpConstant 2
f32 %252 = OpConstant 3.67402E-40
u32 %2573 = OpConstant 1
%150 = OpTypeImage %13 Dim2D 0 0 0 1 Unknown
%787 = OpTypePointer UniformConstant %150
UniformConstant read_only Texture2D* %3853 = OpVariable UniformConstant
%508 = OpTypeSampler
%1145 = OpTypePointer UniformConstant %508
UniformConstant sampler* %4428 = OpVariable UniformConstant
%510 = OpTypeSampledImage %150
%18 = OpTypeVector %12 2
i32 %2574 = OpConstant 1
i32 %2571 = OpConstant 0
i32_2 %1824 = OpConstantComposite %2574 %2571
i32_2 %1833 = OpConstantComposite %2577 %2571
i32_2 %1842 = OpConstantComposite %2580 %2571
i32 %2619 = OpConstant 16
u32 %324 = OpConstant 255
i32 %2595 = OpConstant 8
%662 = OpTypePointer Input %24
Input f32_3* %5275 = OpVariable Input
%667 = OpTypePointer Input %29
Input f32_4* %3208 = OpVariable Input
%656 = OpTypePointer Input %19
Input f32_2* %5800 = OpVariable Input
%660 = OpTypePointer Input %23
Input u32_4* %5227 = OpVariable Input
Input f32_2* %4571 = OpVariable Input
%668 = OpTypePointer Output %29
Output f32_4* %5645 = OpVariable Output
%663 = OpTypePointer Output %24
Output f32_3* %4748 = OpVariable Output
Output f32_4* %5503 = OpVariable Output
%657 = OpTypePointer Output %19
Output f32_2* %5729 = OpVariable Output
Output f32_4* %3707 = OpVariable Output
%1449 = OpTypeArray %13 %2573
%2086 = OpTypePointer Output %1449
Output f32[1]* %6006 = OpVariable Output
%651 = OpTypePointer Output %13
f32 %378 = OpConstant 3.67402E-40
u32 %2582 = OpConstant 4
u32 %2591 = OpConstant 7
u32 %2585 = OpConstant 5
u32 %2588 = OpConstant 6
f32_4 %10264 = OpUndef
void %5663 = OpFunction None %1282
%24607 = OpLabel
f32_3 %20754 = OpLoad %5275
u32_4 %23772 = OpLoad %5227
f32_2 %11482 = OpLoad %4571
read_only Texture2D %11957 = OpLoad %3853
sampler %7670 = OpLoad %4428
read_only Texture2DSampled %12147 = OpSampledImage %11957 %7670
f32_4 %16492 = OpImageSampleExplicitLod %12147 %11482 Lod %29ConstOffset %16492
f32 %24510 = OpCompositeExtract %16492 1
u32 %13689 = OpBitcast %24510
f32 %10641 = OpCompositeExtract %16492 0
f32_4 %6854 = OpCompositeInsert %10641 %10264 3
u32 %21484 = OpShiftRightLogical %13689 %2619
u32 %20472 = OpBitwiseAnd %21484 %324
f32 %15562 = OpConvertUToF %20472
f32 %18681 = OpFMul %15562 %378
f32_4 %15013 = OpCompositeInsert %18681 %6854 0
u32 %12066 = OpShiftRightLogical %13689 %2595
u32 %20473 = OpBitwiseAnd %12066 %324
f32 %15563 = OpConvertUToF %20473
f32 %18682 = OpFMul %15563 %378
f32_4 %15014 = OpCompositeInsert %18682 %15013 1
u32 %12067 = OpShiftRightLogical %13689 %2571
u32 %20474 = OpBitwiseAnd %12067 %324
f32 %15564 = OpConvertUToF %20474
f32 %16230 = OpFMul %15564 %378
f32_4 %15637 = OpCompositeInsert %16230 %15014 2
Uniform f32* %11658 = OpAccessChain %4930 %2582 %2576
f32 %9017 = OpLoad %11658
u32 %12861 = OpCompositeExtract %23772 0
i32 %19946 = OpBitcast %12861
i32 %15834 = OpIAdd %19946 %2577
i32 %23349 = OpIMul %15834 %2583
f32 %16498 = OpConvertSToF %23349
f32 %16034 = OpFAdd %16498 %252
f32 %19471 = OpFMul %16034 %9017
f32_2 %18899 = OpCompositeConstruct %19471 %2572
f32_2 %17029 = OpFAdd %11482 %18899
f32 %9175 = OpCompositeExtract %17029 0
f32 %19686 = OpExtInst %1 8 %9175
f32 %13510 = OpFSub %9175 %19686
f32_2 %9444 = OpCompositeInsert %13510 %17029 0
Uniform f32* %11033 = OpAccessChain %4930 %2582 %2579
f32 %18275 = OpLoad %11033
f32 %7388 = OpFMul %19686 %18275
f32 %20153 = OpCompositeExtract %17029 1
f32 %18005 = OpFAdd %20153 %7388
f32_2 %11111 = OpCompositeInsert %18005 %9444 1
read_only Texture2DSampled %9899 = OpSampledImage %11957 %7670
f32_4 %15737 = OpImageSampleExplicitLod %9899 %11111 Lod %29
read_only Texture2DSampled %8939 = OpSampledImage %11957 %7670
f32_4 %14119 = OpImageSampleExplicitLod %8939 %11111 Lod %29ConstOffset %14119
read_only Texture2DSampled %8825 = OpSampledImage %11957 %7670
f32_4 %15119 = OpImageSampleExplicitLod %8825 %11111 Lod %29ConstOffset %15119
f32_4x3 %20339 = OpCompositeConstruct %15737 %14119 %15119
read_only Texture2DSampled %6254 = OpSampledImage %11957 %7670
f32_4 %16190 = OpImageSampleExplicitLod %6254 %11482 Lod %29
f32_3 %20268 = OpVectorShuffle %16190 %16190 2 2 2
f32_3 %16715 = OpFMul %20754 %20268
f32 %10970 = OpCompositeExtract %16715 0
f32 %10837 = OpCompositeExtract %16715 1
f32 %9030 = OpCompositeExtract %16715 2
f32_4 %24025 = OpCompositeConstruct %10970 %10837 %9030 %138
f32_3 %19281 = OpVectorTimesMatrix %24025 %20339
f32 %11966 = OpCompositeExtract %19281 0
f32 %16480 = OpCompositeExtract %19281 1
f32 %7529 = OpCompositeExtract %19281 2
f32_4 %18241 = OpCompositeConstruct %11966 %16480 %7529 %138
Uniform f32_4* %10119 = OpAccessChain %4930 %2591 %2570
f32_4 %16017 = OpLoad %10119
f32_4 %19486 = OpVectorTimesScalar %16017 %138
f32_4 %22898 = OpFAdd %18241 %19486
Uniform f32_4x4* %16896 = OpAccessChain %4930 %2585 %2570
f32_4x4 %18460 = OpLoad %16896
f32_4 %14096 = OpVectorTimesMatrix %22898 %18460
Uniform f32_4* %15109 = OpAccessChain %4930 %2570
f32_4 %20446 = OpLoad %15109
f32 %17120 = OpDot %18241 %20446
f32_2 %24106 = OpVectorShuffle %14096 %14096 2 3
Uniform f32_4* %21236 = OpAccessChain %4930 %2588 %2570
f32_4 %10305 = OpLoad %21236
f32_3 %7768 = OpVectorShuffle %10305 %10305 0 1 2
f32_3 %17242 = OpFSub %19281 %7768
Uniform f32_3* %20249 = OpAccessChain %4930 %2573
f32_3 %19381 = OpLoad %20249
f32 %19466 = OpDot %17242 %19381
Uniform f32* %7333 = OpAccessChain %4930 %2576
f32 %7276 = OpLoad %7333
f32 %25250 = OpFSub %19466 %7276
Uniform f32* %18323 = OpAccessChain %4930 %2579
f32 %23671 = OpLoad %18323
f32 %13347 = OpFSub %23671 %7276
f32 %16954 = OpFDiv %25250 %13347
f32 %13419 = OpCompositeExtract %14096 3
f32 %16485 = OpCompositeExtract %14096 0
f32 %7472 = OpCompositeExtract %14096 1
f32_4 %18779 = OpCompositeConstruct %16485 %7472 %16954 %13419
OpStore %5645 %18779
OpStore %4748 %19281
OpStore %5503 %15637
OpStore %5729 %24106
f32 %17518 = OpFNegate %7472
f32_4 %16143 = OpCompositeInsert %17518 %14096 1
OpStore %3707 %16143
Output f32* %20872 = OpAccessChain %6006 %2571
OpStore %20872 %17120
OpReturn
OpFunctionEnd