blob: d6b1143b97b872593d3fda797fd352b181ccc1ee [file]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 421
; Schema: 0
OpCapability Shader
%69 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %main_loc2_Input %main_loc5_Input %main_loc4_Input %main_loc3_Input %main_loc0_Input %main_loc1_Input %main_loc0_Output
OpExecutionMode %main OriginUpperLeft
OpMemberName %LeftOver 0 "time"
OpMemberName %LeftOver 1 "padding"
OpMemberName %LeftOver 2 "worldViewProjection"
OpMemberName %LeftOver 3 "outputSize"
OpMemberName %LeftOver 4 "stageSize"
OpMemberName %LeftOver 5 "spriteMapSize"
OpMemberName %LeftOver 6 "stageScale"
OpMemberName %LeftOver 7 "spriteCount"
OpMemberName %LeftOver 8 "colorMul"
OpName %LeftOver "LeftOver"
OpMemberName %x_20_block 0 "inner"
OpName %x_20_block "x_20_block"
OpName %frameMapTexture "frameMapTexture"
OpName %frameMapSampler "frameMapSampler"
OpName %tUV "tUV"
OpName %tileMapsTexture0 "tileMapsTexture0"
OpName %tileMapsSampler "tileMapsSampler"
OpName %tileMapsTexture1 "tileMapsTexture1"
OpName %animationMapTexture "animationMapTexture"
OpName %animationMapSampler "animationMapSampler"
OpName %mt "mt"
OpName %spriteSheetTexture "spriteSheetTexture"
OpName %spriteSheetSampler "spriteSheetSampler"
OpName %glFragColor "glFragColor"
OpName %tileID_1 "tileID_1"
OpName %levelUnits "levelUnits"
OpName %stageUnits_1 "stageUnits_1"
OpName %vPosition "vPosition"
OpName %vUV "vUV"
OpName %main_loc2_Input "main_loc2_Input"
OpName %main_loc5_Input "main_loc5_Input"
OpName %main_loc4_Input "main_loc4_Input"
OpName %main_loc3_Input "main_loc3_Input"
OpName %main_loc0_Input "main_loc0_Input"
OpName %main_loc1_Input "main_loc1_Input"
OpName %main_loc0_Output "main_loc0_Output"
OpName %getFrameData_f1_ "getFrameData_f1_"
OpName %frameID_root "frameID_root"
OpName %fX "fX"
OpName %x_15 "x_15"
OpName %x_25 "x_25"
OpName %x_37 "x_37"
OpName %x_40 "x_40"
OpName %x_44 "x_44"
OpName %x_47 "x_47"
OpName %x_51 "x_51"
OpName %x_54 "x_54"
OpName %main_1 "main_1"
OpName %color "color"
OpName %tileUV "tileUV"
OpName %tileID "tileID"
OpName %sheetUnits "sheetUnits"
OpName %spriteUnits "spriteUnits"
OpName %stageUnits "stageUnits"
OpName %i "i"
OpName %frameID_1 "frameID_1"
OpName %animationData "animationData"
OpName %f "f"
OpName %frameData "frameData"
OpName %param "param"
OpName %frameSize "frameSize"
OpName %offset_1 "offset_1"
OpName %ratio "ratio"
OpName %nc "nc"
OpName %alpha "alpha"
OpName %mixed "mixed"
OpName %x_86 "x_86"
OpName %x_91 "x_91"
OpName %x_95 "x_95"
OpName %x_101 "x_101"
OpName %x_106 "x_106"
OpName %x_111 "x_111"
OpName %x_310 "x_310"
OpName %x_311 "x_311"
OpName %x_313 "x_313"
OpName %x_314 "x_314"
OpName %x_318 "x_318"
OpName %tint_loop_idx "tint_loop_idx"
OpName %x_122 "x_122"
OpName %x_126 "x_126"
OpName %x_166 "x_166"
OpName %x_169 "x_169"
OpName %x_172 "x_172"
OpName %x_174 "x_174"
OpName %x_222 "x_222"
OpName %x_225 "x_225"
OpName %x_228 "x_228"
OpName %x_231 "x_231"
OpName %x_235 "x_235"
OpName %x_237 "x_237"
OpName %x_241 "x_241"
OpName %x_244 "x_244"
OpName %x_248 "x_248"
OpName %x_254 "x_254"
OpName %tint_low_inc "tint_low_inc"
OpName %tint_carry "tint_carry"
OpName %x_304 "x_304"
OpName %x_150 "x_150"
OpName %x_154 "x_154"
OpName %x_156 "x_156"
OpName %x_136 "x_136"
OpName %x_140 "x_140"
OpName %x_142 "x_142"
OpName %x_181 "x_181"
OpName %x_184 "x_184"
OpName %x_252 "x_252"
OpName %x_263 "x_263"
OpName %x_264 "x_264"
OpName %x_266 "x_266"
OpName %x_268 "x_268"
OpName %x_274 "x_274"
OpName %x_275 "x_275"
OpName %x_277 "x_277"
OpName %x_279 "x_279"
OpName %x_283 "x_283"
OpName %x_285 "x_285"
OpName %x_290 "x_290"
OpName %x_292 "x_292"
OpName %x_295 "x_295"
OpName %x_298 "x_298"
OpName %x_299 "x_299"
OpName %tint_loop_idx_0 "tint_loop_idx"
OpName %x_193 "x_193"
OpName %x_197 "x_197"
OpName %x_198 "x_198"
OpName %x_208 "x_208"
OpName %x_211 "x_211"
OpName %x_214 "x_214"
OpName %x_217 "x_217"
OpName %tint_low_inc_1 "tint_low_inc_1"
OpName %tint_carry_1 "tint_carry_1"
OpName %x_218 "x_218"
OpName %x_203 "x_203"
OpName %main_inner "main_inner"
OpMemberName %main_out 0 "glFragColor_1"
OpName %main_out "main_out"
OpName %tUV_param "tUV_param"
OpName %tileID_1_param "tileID_1_param"
OpName %levelUnits_param "levelUnits_param"
OpName %stageUnits_1_param "stageUnits_1_param"
OpName %vPosition_param "vPosition_param"
OpName %vUV_param "vUV_param"
OpName %main "main"
OpMemberDecorate %LeftOver 0 Offset 0
OpMemberDecorate %LeftOver 1 Offset 4
OpMemberDecorate %LeftOver 2 Offset 16
OpMemberDecorate %LeftOver 2 ColMajor
OpMemberDecorate %LeftOver 2 MatrixStride 16
OpMemberDecorate %LeftOver 3 Offset 80
OpMemberDecorate %LeftOver 4 Offset 88
OpMemberDecorate %LeftOver 5 Offset 96
OpMemberDecorate %LeftOver 6 Offset 104
OpMemberDecorate %LeftOver 7 Offset 108
OpMemberDecorate %LeftOver 8 Offset 112
OpMemberDecorate %x_20_block 0 Offset 0
OpDecorate %x_20_block Block
OpDecorate %1 DescriptorSet 2
OpDecorate %1 Binding 9
OpDecorate %1 NonWritable
OpDecorate %frameMapTexture DescriptorSet 2
OpDecorate %frameMapTexture Binding 3
OpDecorate %frameMapSampler DescriptorSet 2
OpDecorate %frameMapSampler Binding 2
OpDecorate %tileMapsTexture0 DescriptorSet 2
OpDecorate %tileMapsTexture0 Binding 5
OpDecorate %tileMapsSampler DescriptorSet 2
OpDecorate %tileMapsSampler Binding 4
OpDecorate %tileMapsTexture1 DescriptorSet 2
OpDecorate %tileMapsTexture1 Binding 6
OpDecorate %animationMapTexture DescriptorSet 2
OpDecorate %animationMapTexture Binding 8
OpDecorate %animationMapSampler DescriptorSet 2
OpDecorate %animationMapSampler Binding 7
OpDecorate %spriteSheetTexture DescriptorSet 2
OpDecorate %spriteSheetTexture Binding 1
OpDecorate %spriteSheetSampler DescriptorSet 2
OpDecorate %spriteSheetSampler Binding 0
OpDecorate %main_loc2_Input Location 2
OpDecorate %main_loc5_Input Location 5
OpDecorate %main_loc4_Input Location 4
OpDecorate %main_loc3_Input Location 3
OpDecorate %main_loc0_Input Location 0
OpDecorate %main_loc1_Input Location 1
OpDecorate %main_loc0_Output Location 0
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%v4float = OpTypeVector %float 4
%mat4v4float = OpTypeMatrix %v4float 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%LeftOver = OpTypeStruct %float %uint %mat4v4float %v2float %v2float %v2float %float %float %v3float
%x_20_block = OpTypeStruct %LeftOver
%_ptr_Uniform_x_20_block = OpTypePointer Uniform %x_20_block
%1 = OpVariable %_ptr_Uniform_x_20_block Uniform
%13 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
%frameMapTexture = OpVariable %_ptr_UniformConstant_13 UniformConstant
%16 = OpTypeSampler
%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
%frameMapSampler = OpVariable %_ptr_UniformConstant_16 UniformConstant
%_ptr_Private_v2float = OpTypePointer Private %v2float
%19 = OpConstantNull %v2float
%tUV = OpVariable %_ptr_Private_v2float Private %19
%tileMapsTexture0 = OpVariable %_ptr_UniformConstant_13 UniformConstant
%tileMapsSampler = OpVariable %_ptr_UniformConstant_16 UniformConstant
%tileMapsTexture1 = OpVariable %_ptr_UniformConstant_13 UniformConstant
%animationMapTexture = OpVariable %_ptr_UniformConstant_13 UniformConstant
%animationMapSampler = OpVariable %_ptr_UniformConstant_16 UniformConstant
%_ptr_Private_float = OpTypePointer Private %float
%27 = OpConstantNull %float
%mt = OpVariable %_ptr_Private_float Private %27
%spriteSheetTexture = OpVariable %_ptr_UniformConstant_13 UniformConstant
%spriteSheetSampler = OpVariable %_ptr_UniformConstant_16 UniformConstant
%_ptr_Private_v4float = OpTypePointer Private %v4float
%x_217 = OpConstantNull %v4float
%glFragColor = OpVariable %_ptr_Private_v4float Private %x_217
%tileID_1 = OpVariable %_ptr_Private_v2float Private %19
%levelUnits = OpVariable %_ptr_Private_v2float Private %19
%stageUnits_1 = OpVariable %_ptr_Private_v2float Private %19
%_ptr_Private_v3float = OpTypePointer Private %v3float
%38 = OpConstantNull %v3float
%vPosition = OpVariable %_ptr_Private_v3float Private %38
%vUV = OpVariable %_ptr_Private_v2float Private %19
%_ptr_Input_v2float = OpTypePointer Input %v2float
%main_loc2_Input = OpVariable %_ptr_Input_v2float Input
%main_loc5_Input = OpVariable %_ptr_Input_v2float Input
%main_loc4_Input = OpVariable %_ptr_Input_v2float Input
%main_loc3_Input = OpVariable %_ptr_Input_v2float Input
%_ptr_Input_v3float = OpTypePointer Input %v3float
%main_loc0_Input = OpVariable %_ptr_Input_v3float Input
%main_loc1_Input = OpVariable %_ptr_Input_v2float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%main_loc0_Output = OpVariable %_ptr_Output_v4float Output
%_ptr_Function_float = OpTypePointer Function %float
%53 = OpTypeFunction %mat4v4float %_ptr_Function_float
%_ptr_Uniform_float = OpTypePointer Uniform %float
%uint_0 = OpConstant %uint 0
%uint_7 = OpConstant %uint 7
%float_0 = OpConstant %float 0
%float_n16 = OpConstant %float -16
%float_15_9899998 = OpConstant %float 15.9899998
%73 = OpTypeSampledImage %13
%float_0_25 = OpConstant %float 0.25
%float_0_5 = OpConstant %float 0.5
%void = OpTypeVoid
%109 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%122 = OpConstantNull %int
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
%128 = OpConstantNull %mat4v4float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%uint_1 = OpConstant %uint 1
%float_1 = OpConstant %float 1
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%uint_5 = OpConstant %uint 5
%152 = OpConstantComposite %v2float %float_1 %float_1
%uint_4 = OpConstant %uint 4
%int_0 = OpConstant %int 0
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%uint_8 = OpConstant %uint 8
%v2uint = OpTypeVector %uint 2
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
%uint_4294967295 = OpConstant %uint 4294967295
%186 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
%190 = OpConstantNull %v2uint
%bool = OpTypeBool
%v2bool = OpTypeVector %bool 2
%int_2 = OpConstant %int 2
%uint_2 = OpConstant %uint 2
%_ptr_Function_uint = OpTypePointer Function %uint
%int_1 = OpConstant %int 1
%286 = OpConstantComposite %v2float %float_0_5 %float_0_5
%uint_3 = OpConstant %uint 3
%float_8 = OpConstant %float 8
%main_out = OpTypeStruct %v4float
%406 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
%getFrameData_f1_ = OpFunction %mat4v4float None %53
%frameID_root = OpFunctionParameter %_ptr_Function_float
%54 = OpLabel
%fX = OpVariable %_ptr_Function_float Function %27
%x_15 = OpLoad %float %frameID_root None
%57 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7
%x_25 = OpLoad %float %57 None
%62 = OpFDiv %float %x_15 %x_25
OpStore %fX %62 None
%x_37 = OpLoad %float %fX None
%64 = OpLoad %13 %frameMapTexture None
%65 = OpLoad %16 %frameMapSampler None
%66 = OpCompositeConstruct %v2float %x_37 %float_0
%68 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%72 = OpSampledImage %73 %64 %65
%x_40 = OpImageSampleImplicitLod %v4float %72 %66 Bias %68
%x_44 = OpLoad %float %fX None
%76 = OpLoad %13 %frameMapTexture None
%77 = OpLoad %16 %frameMapSampler None
%78 = OpCompositeConstruct %v2float %x_44 %float_0_25
%80 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%81 = OpSampledImage %73 %76 %77
%x_47 = OpImageSampleImplicitLod %v4float %81 %78 Bias %80
%x_51 = OpLoad %float %fX None
%84 = OpLoad %13 %frameMapTexture None
%85 = OpLoad %16 %frameMapSampler None
%86 = OpCompositeConstruct %v2float %x_51 %float_0_5
%88 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%89 = OpSampledImage %73 %84 %85
%x_54 = OpImageSampleImplicitLod %v4float %89 %86 Bias %88
%91 = OpCompositeExtract %float %x_40 0
%92 = OpCompositeExtract %float %x_40 1
%93 = OpCompositeExtract %float %x_40 2
%94 = OpCompositeExtract %float %x_40 3
%95 = OpCompositeConstruct %v4float %91 %92 %93 %94
%96 = OpCompositeExtract %float %x_47 0
%97 = OpCompositeExtract %float %x_47 1
%98 = OpCompositeExtract %float %x_47 2
%99 = OpCompositeExtract %float %x_47 3
%100 = OpCompositeConstruct %v4float %96 %97 %98 %99
%101 = OpCompositeExtract %float %x_54 0
%102 = OpCompositeExtract %float %x_54 1
%103 = OpCompositeExtract %float %x_54 2
%104 = OpCompositeExtract %float %x_54 3
%105 = OpCompositeConstruct %v4float %101 %102 %103 %104
%106 = OpCompositeConstruct %mat4v4float %95 %100 %105 %x_217
OpReturnValue %106
OpFunctionEnd
%main_1 = OpFunction %void None %109
%110 = OpLabel
%color = OpVariable %_ptr_Function_v4float Function %x_217
%tileUV = OpVariable %_ptr_Function_v2float Function %19
%tileID = OpVariable %_ptr_Function_v2float Function %19
%sheetUnits = OpVariable %_ptr_Function_v2float Function %19
%spriteUnits = OpVariable %_ptr_Function_float Function %27
%stageUnits = OpVariable %_ptr_Function_v2float Function %19
%i = OpVariable %_ptr_Function_int Function %122
%frameID_1 = OpVariable %_ptr_Function_float Function %27
%animationData = OpVariable %_ptr_Function_v4float Function %x_217
%f = OpVariable %_ptr_Function_float Function %27
%frameData = OpVariable %_ptr_Function_mat4v4float Function %128
%param = OpVariable %_ptr_Function_float Function %27
%frameSize = OpVariable %_ptr_Function_v2float Function %19
%offset_1 = OpVariable %_ptr_Function_v2float Function %19
%ratio = OpVariable %_ptr_Function_v2float Function %19
%nc = OpVariable %_ptr_Function_v4float Function %x_217
%alpha = OpVariable %_ptr_Function_float Function %27
%mixed = OpVariable %_ptr_Function_v3float Function %38
%tint_loop_idx = OpVariable %_ptr_Function_v2uint Function
%tint_loop_idx_0 = OpVariable %_ptr_Function_v2uint Function
OpStore %color %x_217 None
%x_86 = OpLoad %v2float %tUV None
%138 = OpExtInst %v2float %69 Fract %x_86
OpStore %tileUV %138 None
%139 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
%x_91 = OpLoad %float %139 None
%142 = OpFSub %float %float_1 %x_91
%144 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
OpStore %144 %142 None
%x_95 = OpLoad %v2float %tUV None
%146 = OpExtInst %v2float %69 Floor %x_95
OpStore %tileID %146 None
%147 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_5
%x_101 = OpLoad %v2float %147 None
%151 = OpFDiv %v2float %152 %x_101
OpStore %sheetUnits %151 None
%153 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7
%x_106 = OpLoad %float %153 None
%155 = OpFDiv %float %float_1 %x_106
OpStore %spriteUnits %155 None
%156 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4
%x_111 = OpLoad %v2float %156 None
%159 = OpFDiv %v2float %152 %x_111
OpStore %stageUnits %159 None
OpStore %i %int_0 None
OpBranch %161
%161 = OpLabel
OpStore %tint_loop_idx %186
OpBranch %164
%164 = OpLabel
OpLoopMerge %165 %163 None
OpBranch %162
%162 = OpLabel
%188 = OpLoad %v2uint %tint_loop_idx None
%189 = OpIEqual %v2bool %188 %190
%193 = OpAll %bool %189
OpSelectionMerge %194 None
OpBranchConditional %193 %195 %194
%195 = OpLabel
OpBranch %165
%194 = OpLabel
%x_122 = OpLoad %int %i None
%197 = OpSLessThan %bool %x_122 %int_2
OpSelectionMerge %199 None
OpBranchConditional %197 %199 %200
%200 = OpLabel
OpBranch %165
%199 = OpLabel
%x_126 = OpLoad %int %i None
OpSelectionMerge %205 None
OpSwitch %x_126 %202 1 %203 0 %204
%202 = OpLabel
OpBranch %205
%203 = OpLabel
%x_150 = OpLoad %v2float %tileID None
%281 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4
%x_154 = OpLoad %v2float %281 None
%283 = OpLoad %13 %tileMapsTexture1 None
%284 = OpLoad %16 %tileMapsSampler None
%285 = OpFAdd %v2float %x_150 %286
%287 = OpFDiv %v2float %285 %x_154
%288 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%289 = OpSampledImage %73 %283 %284
%x_156 = OpImageSampleImplicitLod %v4float %289 %287 Bias %288
%291 = OpCompositeExtract %float %x_156 0
OpStore %frameID_1 %291 None
OpBranch %205
%204 = OpLabel
%x_136 = OpLoad %v2float %tileID None
%293 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_4
%x_140 = OpLoad %v2float %293 None
%295 = OpLoad %13 %tileMapsTexture0 None
%296 = OpLoad %16 %tileMapsSampler None
%297 = OpFAdd %v2float %x_136 %286
%298 = OpFDiv %v2float %297 %x_140
%299 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%300 = OpSampledImage %73 %295 %296
%x_142 = OpImageSampleImplicitLod %v4float %300 %298 Bias %299
%302 = OpCompositeExtract %float %x_142 0
OpStore %frameID_1 %302 None
OpBranch %205
%205 = OpLabel
%x_166 = OpLoad %float %frameID_1 None
%207 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7
%x_169 = OpLoad %float %207 None
%209 = OpLoad %13 %animationMapTexture None
%210 = OpLoad %16 %animationMapSampler None
%211 = OpFAdd %float %x_166 %float_0_5
%212 = OpFDiv %float %211 %x_169
%213 = OpCompositeConstruct %v2float %212 %float_0
%214 = OpExtInst %float %69 NClamp %float_0 %float_n16 %float_15_9899998
%215 = OpSampledImage %73 %209 %210
%x_172 = OpImageSampleImplicitLod %v4float %215 %213 Bias %214
OpStore %animationData %x_172 None
%217 = OpAccessChain %_ptr_Function_float %animationData %uint_1
%x_174 = OpLoad %float %217 None
%219 = OpFOrdGreaterThan %bool %x_174 %float_0
OpSelectionMerge %220 None
OpBranchConditional %219 %221 %220
%221 = OpLabel
%303 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_0
%x_181 = OpLoad %float %303 None
%305 = OpAccessChain %_ptr_Function_float %animationData %uint_2
%x_184 = OpLoad %float %305 None
%307 = OpFMul %float %x_181 %x_184
%308 = OpFRem %float %307 %float_1
OpStore %mt %308 None
OpStore %f %float_0 None
OpBranch %309
%309 = OpLabel
OpStore %tint_loop_idx_0 %186
OpBranch %312
%312 = OpLabel
OpLoopMerge %313 %311 None
OpBranch %310
%310 = OpLabel
%364 = OpLoad %v2uint %tint_loop_idx_0 None
%365 = OpIEqual %v2bool %364 %190
%366 = OpAll %bool %365
OpSelectionMerge %367 None
OpBranchConditional %366 %368 %367
%368 = OpLabel
OpBranch %313
%367 = OpLabel
%x_193 = OpLoad %float %f None
%370 = OpFOrdLessThan %bool %x_193 %float_8
OpSelectionMerge %372 None
OpBranchConditional %370 %372 %373
%373 = OpLabel
OpBranch %313
%372 = OpLabel
%374 = OpAccessChain %_ptr_Function_float %animationData %uint_1
%x_197 = OpLoad %float %374 None
%x_198 = OpLoad %float %mt None
%377 = OpFOrdGreaterThan %bool %x_197 %x_198
OpSelectionMerge %378 None
OpBranchConditional %377 %379 %378
%379 = OpLabel
%396 = OpAccessChain %_ptr_Function_float %animationData %uint_0
%x_203 = OpLoad %float %396 None
OpStore %frameID_1 %x_203 None
OpBranch %313
%378 = OpLabel
%x_208 = OpLoad %float %frameID_1 None
%381 = OpAccessChain %_ptr_Uniform_float %1 %uint_0 %uint_7
%x_211 = OpLoad %float %381 None
%x_214 = OpLoad %float %f None
OpStore %animationData %x_217 None
OpBranch %311
%311 = OpLabel
%384 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0
%385 = OpLoad %uint %384 None
%tint_low_inc_1 = OpISub %uint %385 %uint_1
%387 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_0
OpStore %387 %tint_low_inc_1 None
%388 = OpIEqual %bool %tint_low_inc_1 %uint_4294967295
%tint_carry_1 = OpSelect %uint %388 %uint_1 %uint_0
%390 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1
%391 = OpLoad %uint %390 None
%392 = OpISub %uint %391 %tint_carry_1
%393 = OpAccessChain %_ptr_Function_uint %tint_loop_idx_0 %uint_1
OpStore %393 %392 None
%x_218 = OpLoad %float %f None
%395 = OpFAdd %float %x_218 %float_1
OpStore %f %395 None
OpBranch %312
%313 = OpLabel
OpBranch %220
%220 = OpLabel
%x_222 = OpLoad %float %frameID_1 None
%223 = OpFAdd %float %x_222 %float_0_5
OpStore %param %223 None
%x_225 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
OpStore %frameData %x_225 None
%225 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0
%x_228 = OpLoad %v4float %225 None
%227 = OpAccessChain %_ptr_Uniform_v2float %1 %uint_0 %uint_5
%x_231 = OpLoad %v2float %227 None
%229 = OpCompositeExtract %float %x_228 3
%230 = OpCompositeExtract %float %x_228 2
%231 = OpCompositeConstruct %v2float %229 %230
%232 = OpFDiv %v2float %231 %x_231
OpStore %frameSize %232 None
%233 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0
%x_235 = OpLoad %v4float %233 None
%x_237 = OpLoad %v2float %sheetUnits None
%236 = OpCompositeExtract %float %x_235 0
%237 = OpCompositeExtract %float %x_235 1
%238 = OpCompositeConstruct %v2float %236 %237
%239 = OpFMul %v2float %238 %x_237
OpStore %offset_1 %239 None
%240 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2
%x_241 = OpLoad %v4float %240 None
%243 = OpAccessChain %_ptr_Function_v4float %frameData %uint_0
%x_244 = OpLoad %v4float %243 None
%245 = OpCompositeExtract %float %x_241 0
%246 = OpCompositeExtract %float %x_241 1
%247 = OpCompositeConstruct %v2float %245 %246
%248 = OpCompositeExtract %float %x_244 3
%249 = OpCompositeExtract %float %x_244 2
%250 = OpCompositeConstruct %v2float %248 %249
%251 = OpFDiv %v2float %247 %250
OpStore %ratio %251 None
%252 = OpAccessChain %_ptr_Function_v4float %frameData %uint_2
%253 = OpAccessChain %_ptr_Function_float %252 %uint_2
%x_248 = OpLoad %float %253 None
%255 = OpFOrdEqual %bool %x_248 %float_1
OpSelectionMerge %256 None
OpBranchConditional %255 %257 %256
%257 = OpLabel
%x_252 = OpLoad %v2float %tileUV None
%315 = OpCompositeExtract %float %x_252 1
%316 = OpCompositeExtract %float %x_252 0
%317 = OpCompositeConstruct %v2float %315 %316
OpStore %tileUV %317 None
OpBranch %256
%256 = OpLabel
%x_254 = OpLoad %int %i None
%259 = OpIEqual %bool %x_254 %int_0
OpSelectionMerge %260 None
OpBranchConditional %259 %261 %262
%261 = OpLabel
%x_263 = OpLoad %v2float %tileUV None
%x_264 = OpLoad %v2float %frameSize None
%x_266 = OpLoad %v2float %offset_1 None
%321 = OpLoad %13 %spriteSheetTexture None
%322 = OpLoad %16 %spriteSheetSampler None
%323 = OpFMul %v2float %x_263 %x_264
%324 = OpFAdd %v2float %323 %x_266
%325 = OpSampledImage %73 %321 %322
%x_268 = OpImageSampleImplicitLod %v4float %325 %324 None
OpStore %color %x_268 None
OpBranch %260
%262 = OpLabel
%x_274 = OpLoad %v2float %tileUV None
%x_275 = OpLoad %v2float %frameSize None
%x_277 = OpLoad %v2float %offset_1 None
%330 = OpLoad %13 %spriteSheetTexture None
%331 = OpLoad %16 %spriteSheetSampler None
%332 = OpFMul %v2float %x_274 %x_275
%333 = OpFAdd %v2float %332 %x_277
%334 = OpSampledImage %73 %330 %331
%x_279 = OpImageSampleImplicitLod %v4float %334 %333 None
OpStore %nc %x_279 None
%336 = OpAccessChain %_ptr_Function_float %color %uint_3
%x_283 = OpLoad %float %336 None
%339 = OpAccessChain %_ptr_Function_float %nc %uint_3
%x_285 = OpLoad %float %339 None
%341 = OpFAdd %float %x_283 %x_285
%342 = OpExtInst %float %69 NMin %341 %float_1
OpStore %alpha %342 None
%x_290 = OpLoad %v4float %color None
%x_292 = OpLoad %v4float %nc None
%345 = OpAccessChain %_ptr_Function_float %nc %uint_3
%x_295 = OpLoad %float %345 None
%347 = OpCompositeExtract %float %x_290 0
%348 = OpCompositeExtract %float %x_290 1
%349 = OpCompositeExtract %float %x_290 2
%350 = OpCompositeConstruct %v3float %347 %348 %349
%351 = OpCompositeExtract %float %x_292 0
%352 = OpCompositeExtract %float %x_292 1
%353 = OpCompositeExtract %float %x_292 2
%354 = OpCompositeConstruct %v3float %351 %352 %353
%355 = OpCompositeConstruct %v3float %x_295 %x_295 %x_295
%356 = OpExtInst %v3float %69 FMix %350 %354 %355
OpStore %mixed %356 None
%x_298 = OpLoad %v3float %mixed None
%x_299 = OpLoad %float %alpha None
%359 = OpCompositeExtract %float %x_298 0
%360 = OpCompositeExtract %float %x_298 1
%361 = OpCompositeExtract %float %x_298 2
%362 = OpCompositeConstruct %v4float %359 %360 %361 %x_299
OpStore %color %362 None
OpBranch %260
%260 = OpLabel
OpBranch %163
%163 = OpLabel
%263 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0
%265 = OpLoad %uint %263 None
%tint_low_inc = OpISub %uint %265 %uint_1
%267 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_0
OpStore %267 %tint_low_inc None
%268 = OpIEqual %bool %tint_low_inc %uint_4294967295
%tint_carry = OpSelect %uint %268 %uint_1 %uint_0
%270 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1
%271 = OpLoad %uint %270 None
%272 = OpISub %uint %271 %tint_carry
%273 = OpAccessChain %_ptr_Function_uint %tint_loop_idx %uint_1
OpStore %273 %272 None
%x_304 = OpLoad %int %i None
%275 = OpBitcast %uint %x_304
%276 = OpBitcast %uint %int_1
%278 = OpIAdd %uint %275 %276
%279 = OpBitcast %int %278
OpStore %i %279 None
OpBranch %164
%165 = OpLabel
%166 = OpAccessChain %_ptr_Uniform_v3float %1 %uint_0 %uint_8
%x_310 = OpLoad %v3float %166 None
%x_311 = OpLoad %v4float %color None
%171 = OpCompositeExtract %float %x_311 0
%172 = OpCompositeExtract %float %x_311 1
%173 = OpCompositeExtract %float %x_311 2
%174 = OpCompositeConstruct %v3float %171 %172 %173
%x_313 = OpFMul %v3float %174 %x_310
%x_314 = OpLoad %v4float %color None
%177 = OpCompositeExtract %float %x_313 0
%178 = OpCompositeExtract %float %x_313 1
%179 = OpCompositeExtract %float %x_313 2
%180 = OpCompositeExtract %float %x_314 3
%181 = OpCompositeConstruct %v4float %177 %178 %179 %180
OpStore %color %181 None
%x_318 = OpLoad %v4float %color None
OpStore %glFragColor %x_318 None
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %406
%tUV_param = OpFunctionParameter %v2float
%tileID_1_param = OpFunctionParameter %v2float
%levelUnits_param = OpFunctionParameter %v2float
%stageUnits_1_param = OpFunctionParameter %v2float
%vPosition_param = OpFunctionParameter %v3float
%vUV_param = OpFunctionParameter %v2float
%407 = OpLabel
OpStore %tUV %tUV_param None
OpStore %tileID_1 %tileID_1_param None
OpStore %levelUnits %levelUnits_param None
OpStore %stageUnits_1 %stageUnits_1_param None
OpStore %vPosition %vPosition_param None
OpStore %vUV %vUV_param None
%408 = OpFunctionCall %void %main_1
%409 = OpLoad %v4float %glFragColor None
%410 = OpCompositeConstruct %main_out %409
OpReturnValue %410
OpFunctionEnd
%main = OpFunction %void None %109
%412 = OpLabel
%413 = OpLoad %v2float %main_loc2_Input None
%414 = OpLoad %v2float %main_loc5_Input None
%415 = OpLoad %v2float %main_loc4_Input None
%416 = OpLoad %v2float %main_loc3_Input None
%417 = OpLoad %v3float %main_loc0_Input None
%418 = OpLoad %v2float %main_loc1_Input None
%419 = OpFunctionCall %main_out %main_inner %413 %414 %415 %416 %417 %418
%420 = OpCompositeExtract %v4float %419 0
OpStore %main_loc0_Output %420 None
OpReturn
OpFunctionEnd