; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 114 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_7 OpExecutionMode %main OriginUpperLeft OpName %Uniforms "Uniforms" OpMemberName %Uniforms 0 "worldView" OpMemberName %Uniforms 1 "proj" OpMemberName %Uniforms 2 "numPointLights" OpMemberName %Uniforms 3 "color_source" OpMemberName %Uniforms 4 "color" OpName %uniforms "uniforms" OpName %PointLights "PointLights" OpMemberName %PointLights 0 "values" OpName %PointLight "PointLight" OpMemberName %PointLight 0 "position" OpName %pointLights "pointLights" OpName %mySampler "mySampler" OpName %myTexture "myTexture" OpName %tint_symbol "tint_symbol" OpName %tint_symbol_1 "tint_symbol_1" OpName %tint_symbol_2 "tint_symbol_2" OpName %tint_symbol_3 "tint_symbol_3" OpName %tint_symbol_4 "tint_symbol_4" OpName %tint_symbol_7 "tint_symbol_7" OpName %FragmentInput "FragmentInput" OpMemberName %FragmentInput 0 "position" OpMemberName %FragmentInput 1 "view_position" OpMemberName %FragmentInput 2 "normal" OpMemberName %FragmentInput 3 "uv" OpMemberName %FragmentInput 4 "color" OpName %getColor "getColor" OpName %fragment "fragment" OpName %color "color" OpName %FragmentOutput "FragmentOutput" OpMemberName %FragmentOutput 0 "color" OpName %tint_symbol_8 "tint_symbol_8" OpName %tint_symbol_6 "tint_symbol_6" OpName %main "main" OpName %output "output" OpDecorate %Uniforms Block OpMemberDecorate %Uniforms 0 Offset 0 OpMemberDecorate %Uniforms 0 ColMajor OpMemberDecorate %Uniforms 0 MatrixStride 16 OpMemberDecorate %Uniforms 1 Offset 64 OpMemberDecorate %Uniforms 1 ColMajor OpMemberDecorate %Uniforms 1 MatrixStride 16 OpMemberDecorate %Uniforms 2 Offset 128 OpMemberDecorate %Uniforms 3 Offset 132 OpMemberDecorate %Uniforms 4 Offset 144 OpDecorate %uniforms NonWritable OpDecorate %uniforms Binding 0 OpDecorate %uniforms DescriptorSet 0 OpDecorate %PointLights Block OpMemberDecorate %PointLights 0 Offset 0 OpMemberDecorate %PointLight 0 Offset 0 OpDecorate %_runtimearr_PointLight ArrayStride 16 OpDecorate %pointLights NonWritable OpDecorate %pointLights Binding 1 OpDecorate %pointLights DescriptorSet 0 OpDecorate %mySampler Binding 2 OpDecorate %mySampler DescriptorSet 0 OpDecorate %myTexture Binding 3 OpDecorate %myTexture DescriptorSet 0 OpDecorate %tint_symbol BuiltIn FragCoord OpDecorate %tint_symbol_1 Location 0 OpDecorate %tint_symbol_2 Location 1 OpDecorate %tint_symbol_3 Location 2 OpDecorate %tint_symbol_4 Location 3 OpDecorate %tint_symbol_7 Location 0 OpMemberDecorate %FragmentInput 0 Offset 0 OpMemberDecorate %FragmentInput 1 Offset 16 OpMemberDecorate %FragmentInput 2 Offset 32 OpMemberDecorate %FragmentInput 3 Offset 48 OpMemberDecorate %FragmentInput 4 Offset 64 OpMemberDecorate %FragmentOutput 0 Offset 0 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %mat4v4float = OpTypeMatrix %v4float 4 %uint = OpTypeInt 32 0 %Uniforms = OpTypeStruct %mat4v4float %mat4v4float %uint %uint %v4float %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform %PointLight = OpTypeStruct %v4float %_runtimearr_PointLight = OpTypeRuntimeArray %PointLight %PointLights = OpTypeStruct %_runtimearr_PointLight %_ptr_StorageBuffer_PointLights = OpTypePointer StorageBuffer %PointLights %pointLights = OpVariable %_ptr_StorageBuffer_PointLights StorageBuffer %15 = OpTypeSampler %_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15 %mySampler = OpVariable %_ptr_UniformConstant_15 UniformConstant %18 = OpTypeImage %float 2D 0 0 0 1 Unknown %_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18 %myTexture = OpVariable %_ptr_UniformConstant_18 UniformConstant %_ptr_Input_v4float = OpTypePointer Input %v4float %tint_symbol = OpVariable %_ptr_Input_v4float Input %tint_symbol_1 = OpVariable %_ptr_Input_v4float Input %tint_symbol_2 = OpVariable %_ptr_Input_v4float Input %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %tint_symbol_3 = OpVariable %_ptr_Input_v2float Input %tint_symbol_4 = OpVariable %_ptr_Input_v4float Input %_ptr_Output_v4float = OpTypePointer Output %v4float %29 = OpConstantNull %v4float %tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %29 %FragmentInput = OpTypeStruct %v4float %v4float %v4float %v2float %v4float %30 = OpTypeFunction %v4float %FragmentInput %_ptr_Function_v4float = OpTypePointer Function %v4float %uint_3 = OpConstant %uint 3 %_ptr_Uniform_uint = OpTypePointer Uniform %uint %uint_0 = OpConstant %uint 0 %bool = OpTypeBool %uint_1 = OpConstant %uint 1 %_ptr_Function_float = OpTypePointer Function %float %float_1 = OpConstant %float 1 %uint_2 = OpConstant %uint 2 %uint_4 = OpConstant %uint 4 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %78 = OpTypeSampledImage %18 %void = OpTypeVoid %FragmentOutput = OpTypeStruct %v4float %82 = OpTypeFunction %void %FragmentOutput %89 = OpTypeFunction %void %_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput %100 = OpConstantNull %FragmentOutput %float_0 = OpConstant %float 0 %103 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %getColor = OpFunction %v4float None %30 %fragment = OpFunctionParameter %FragmentInput %34 = OpLabel %color = OpVariable %_ptr_Function_v4float Function %29 %39 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %40 = OpLoad %uint %39 %42 = OpIEqual %bool %40 %uint_0 OpSelectionMerge %44 None OpBranchConditional %42 %45 %46 %45 = OpLabel %47 = OpCompositeExtract %v4float %fragment 4 OpStore %color %47 OpBranch %44 %46 = OpLabel %48 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %49 = OpLoad %uint %48 %51 = OpIEqual %bool %49 %uint_1 OpSelectionMerge %52 None OpBranchConditional %51 %53 %54 %53 = OpLabel %55 = OpCompositeExtract %v4float %fragment 2 OpStore %color %55 %57 = OpAccessChain %_ptr_Function_float %color %uint_3 OpStore %57 %float_1 OpBranch %52 %54 = OpLabel %59 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %60 = OpLoad %uint %59 %62 = OpIEqual %bool %60 %uint_2 OpSelectionMerge %63 None OpBranchConditional %62 %64 %65 %64 = OpLabel %68 = OpAccessChain %_ptr_Uniform_v4float %uniforms %uint_4 %69 = OpLoad %v4float %68 OpStore %color %69 OpBranch %63 %65 = OpLabel %70 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %71 = OpLoad %uint %70 %72 = OpIEqual %bool %71 %uint_3 OpSelectionMerge %73 None OpBranchConditional %72 %74 %73 %74 = OpLabel %76 = OpLoad %15 %mySampler %77 = OpLoad %18 %myTexture %79 = OpSampledImage %78 %77 %76 %80 = OpCompositeExtract %v2float %fragment 3 %75 = OpImageSampleImplicitLod %v4float %79 %80 OpStore %color %75 OpBranch %73 %73 = OpLabel OpBranch %63 %63 = OpLabel OpBranch %52 %52 = OpLabel OpBranch %44 %44 = OpLabel %81 = OpLoad %v4float %color OpReturnValue %81 OpFunctionEnd %tint_symbol_8 = OpFunction %void None %82 %tint_symbol_6 = OpFunctionParameter %FragmentOutput %87 = OpLabel %88 = OpCompositeExtract %v4float %tint_symbol_6 0 OpStore %tint_symbol_7 %88 OpReturn OpFunctionEnd %main = OpFunction %void None %89 %91 = OpLabel %output = OpVariable %_ptr_Function_FragmentOutput Function %100 %92 = OpLoad %v4float %tint_symbol %93 = OpLoad %v4float %tint_symbol_1 %94 = OpLoad %v4float %tint_symbol_2 %95 = OpLoad %v2float %tint_symbol_3 %96 = OpLoad %v4float %tint_symbol_4 %97 = OpCompositeConstruct %FragmentInput %92 %93 %94 %95 %96 %101 = OpAccessChain %_ptr_Function_v4float %output %uint_0 OpStore %101 %103 %105 = OpLoad %Uniforms %uniforms %107 = OpLoad %15 %mySampler %109 = OpLoad %18 %myTexture %111 = OpLoad %PointLights %pointLights %113 = OpLoad %FragmentOutput %output %112 = OpFunctionCall %void %tint_symbol_8 %113 OpReturn OpFunctionEnd