; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 387 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Vertex %main "main" %a_Position_1 %a_UV_1 %a_Color_1 %a_Normal_1 %a_PosMtxIdx_1 %v_Color_1 %v_TexCoord_1 %member_1 %vertex_point_size OpName %a_Position_1 "a_Position_1" OpName %a_UV_1 "a_UV_1" OpName %a_Color_1 "a_Color_1" OpName %a_Normal_1 "a_Normal_1" OpName %a_PosMtxIdx_1 "a_PosMtxIdx_1" OpName %v_Color_1 "v_Color_1" OpName %v_TexCoord_1 "v_TexCoord_1" OpName %member_1 "member_1" OpName %vertex_point_size "vertex_point_size" OpName %ub_SceneParams "ub_SceneParams" OpMemberName %ub_SceneParams 0 "u_Projection" OpName %Mat4x4_ "Mat4x4_" OpMemberName %Mat4x4_ 0 "mx" OpMemberName %Mat4x4_ 1 "my" OpMemberName %Mat4x4_ 2 "mz" OpMemberName %Mat4x4_ 3 "mw" OpName %global "global" OpName %ub_MaterialParams "ub_MaterialParams" OpMemberName %ub_MaterialParams 0 "u_TexMtx" OpName %Mat4x2_ "Mat4x2_" OpMemberName %Mat4x2_ 0 "mx" OpMemberName %Mat4x2_ 1 "my" OpMemberName %ub_MaterialParams 1 "u_Misc0_" OpName %global1 "global1" OpName %ub_PacketParams "ub_PacketParams" OpMemberName %ub_PacketParams 0 "u_PosMtx" OpName %Mat4x3_ "Mat4x3_" OpMemberName %Mat4x3_ 0 "mx" OpMemberName %Mat4x3_ 1 "my" OpMemberName %Mat4x3_ 2 "mz" OpName %global2 "global2" OpName %a_Position1 "a_Position1" OpName %a_UV1 "a_UV1" OpName %a_Color1 "a_Color1" OpName %a_Normal1 "a_Normal1" OpName %a_PosMtxIdx1 "a_PosMtxIdx1" OpName %v_Color "v_Color" OpName %v_TexCoord "v_TexCoord" OpName %gl_Position "gl_Position" OpName %Mat4x3GetCol0_ "Mat4x3GetCol0_" OpName %m "m" OpName %m1 "m1" OpName %Mat4x3GetCol1_ "Mat4x3GetCol1_" OpName %m2 "m2" OpName %m3 "m3" OpName %Mat4x3GetCol2_ "Mat4x3GetCol2_" OpName %m4 "m4" OpName %m5 "m5" OpName %Mat4x3GetCol3_ "Mat4x3GetCol3_" OpName %m6 "m6" OpName %m7 "m7" OpName %Mul "Mul" OpName %m8 "m8" OpName %v "v" OpName %m9 "m9" OpName %v1 "v1" OpName %Mul1 "Mul1" OpName %m10 "m10" OpName %v2 "v2" OpName %m11 "m11" OpName %v3 "v3" OpName %Mul2 "Mul2" OpName %m12 "m12" OpName %v4 "v4" OpName %m13 "m13" OpName %v5 "v5" OpName %Mul3 "Mul3" OpName %v6 "v6" OpName %m14 "m14" OpName %v7 "v7" OpName %m15 "m15" OpName %x_Mat4x4_ "x_Mat4x4_" OpName %n "n" OpName %n1 "n1" OpName %o "o" OpName %x_Mat4x4_1 "x_Mat4x4_1" OpName %m16 "m16" OpName %m17 "m17" OpName %o1 "o1" OpName %x_Mat4x4_2 "x_Mat4x4_2" OpName %m18 "m18" OpName %m19 "m19" OpName %o2 "o2" OpName %x_Mat4x3_ "x_Mat4x3_" OpName %n2 "n2" OpName %n3 "n3" OpName %o3 "o3" OpName %x_Mat4x3_1 "x_Mat4x3_1" OpName %m20 "m20" OpName %m21 "m21" OpName %o4 "o4" OpName %main1 "main1" OpName %t_PosMtx "t_PosMtx" OpName %t_TexSpaceCoord "t_TexSpaceCoord" OpName %VertexOutput "VertexOutput" OpMemberName %VertexOutput 0 "v_Color" OpMemberName %VertexOutput 1 "v_TexCoord" OpMemberName %VertexOutput 2 "member" OpName %main_inner "main_inner" OpName %a_Position "a_Position" OpName %a_UV "a_UV" OpName %a_Color "a_Color" OpName %a_Normal "a_Normal" OpName %a_PosMtxIdx "a_PosMtxIdx" OpName %main "main" OpDecorate %a_Position_1 Location 0 OpDecorate %a_UV_1 Location 1 OpDecorate %a_Color_1 Location 2 OpDecorate %a_Normal_1 Location 3 OpDecorate %a_PosMtxIdx_1 Location 4 OpDecorate %v_Color_1 Location 0 OpDecorate %v_TexCoord_1 Location 1 OpDecorate %member_1 BuiltIn Position OpDecorate %vertex_point_size BuiltIn PointSize OpDecorate %ub_SceneParams Block OpMemberDecorate %ub_SceneParams 0 Offset 0 OpMemberDecorate %Mat4x4_ 0 Offset 0 OpMemberDecorate %Mat4x4_ 1 Offset 16 OpMemberDecorate %Mat4x4_ 2 Offset 32 OpMemberDecorate %Mat4x4_ 3 Offset 48 OpDecorate %global NonWritable OpDecorate %global DescriptorSet 0 OpDecorate %global Binding 0 OpDecorate %ub_MaterialParams Block OpMemberDecorate %ub_MaterialParams 0 Offset 0 OpMemberDecorate %Mat4x2_ 0 Offset 0 OpMemberDecorate %Mat4x2_ 1 Offset 16 OpDecorate %_arr_Mat4x2__uint_1 ArrayStride 32 OpMemberDecorate %ub_MaterialParams 1 Offset 32 OpDecorate %global1 NonWritable OpDecorate %global1 DescriptorSet 0 OpDecorate %global1 Binding 1 OpDecorate %ub_PacketParams Block OpMemberDecorate %ub_PacketParams 0 Offset 0 OpMemberDecorate %Mat4x3_ 0 Offset 0 OpMemberDecorate %Mat4x3_ 1 Offset 16 OpMemberDecorate %Mat4x3_ 2 Offset 32 OpDecorate %_arr_Mat4x3__uint_32 ArrayStride 48 OpDecorate %global2 NonWritable OpDecorate %global2 DescriptorSet 0 OpDecorate %global2 Binding 2 OpMemberDecorate %VertexOutput 0 Offset 0 OpMemberDecorate %VertexOutput 1 Offset 16 OpMemberDecorate %VertexOutput 2 Offset 32 %float = OpTypeFloat 32 %v3float = OpTypeVector %float 3 %_ptr_Input_v3float = OpTypePointer Input %v3float %a_Position_1 = OpVariable %_ptr_Input_v3float Input %v2float = OpTypeVector %float 2 %_ptr_Input_v2float = OpTypePointer Input %v2float %a_UV_1 = OpVariable %_ptr_Input_v2float Input %v4float = OpTypeVector %float 4 %_ptr_Input_v4float = OpTypePointer Input %v4float %a_Color_1 = OpVariable %_ptr_Input_v4float Input %a_Normal_1 = OpVariable %_ptr_Input_v3float Input %_ptr_Input_float = OpTypePointer Input %float %a_PosMtxIdx_1 = OpVariable %_ptr_Input_float Input %_ptr_Output_v4float = OpTypePointer Output %v4float %16 = OpConstantNull %v4float %v_Color_1 = OpVariable %_ptr_Output_v4float Output %16 %_ptr_Output_v2float = OpTypePointer Output %v2float %19 = OpConstantNull %v2float %v_TexCoord_1 = OpVariable %_ptr_Output_v2float Output %19 %member_1 = OpVariable %_ptr_Output_v4float Output %16 %_ptr_Output_float = OpTypePointer Output %float %23 = OpConstantNull %float %vertex_point_size = OpVariable %_ptr_Output_float Output %23 %Mat4x4_ = OpTypeStruct %v4float %v4float %v4float %v4float %ub_SceneParams = OpTypeStruct %Mat4x4_ %_ptr_Uniform_ub_SceneParams = OpTypePointer Uniform %ub_SceneParams %global = OpVariable %_ptr_Uniform_ub_SceneParams Uniform %Mat4x2_ = OpTypeStruct %v4float %v4float %uint = OpTypeInt 32 0 %uint_1 = OpConstant %uint 1 %_arr_Mat4x2__uint_1 = OpTypeArray %Mat4x2_ %uint_1 %ub_MaterialParams = OpTypeStruct %_arr_Mat4x2__uint_1 %v4float %_ptr_Uniform_ub_MaterialParams = OpTypePointer Uniform %ub_MaterialParams %global1 = OpVariable %_ptr_Uniform_ub_MaterialParams Uniform %Mat4x3_ = OpTypeStruct %v4float %v4float %v4float %uint_32 = OpConstant %uint 32 %_arr_Mat4x3__uint_32 = OpTypeArray %Mat4x3_ %uint_32 %ub_PacketParams = OpTypeStruct %_arr_Mat4x3__uint_32 %_ptr_Uniform_ub_PacketParams = OpTypePointer Uniform %ub_PacketParams %global2 = OpVariable %_ptr_Uniform_ub_PacketParams Uniform %_ptr_Private_v3float = OpTypePointer Private %v3float %43 = OpConstantNull %v3float %a_Position1 = OpVariable %_ptr_Private_v3float Private %43 %_ptr_Private_v2float = OpTypePointer Private %v2float %a_UV1 = OpVariable %_ptr_Private_v2float Private %19 %_ptr_Private_v4float = OpTypePointer Private %v4float %a_Color1 = OpVariable %_ptr_Private_v4float Private %16 %a_Normal1 = OpVariable %_ptr_Private_v3float Private %43 %_ptr_Private_float = OpTypePointer Private %float %a_PosMtxIdx1 = OpVariable %_ptr_Private_float Private %23 %v_Color = OpVariable %_ptr_Private_v4float Private %16 %v_TexCoord = OpVariable %_ptr_Private_v2float Private %19 %gl_Position = OpVariable %_ptr_Private_v4float Private %16 %54 = OpTypeFunction %v3float %Mat4x3_ %_ptr_Function_Mat4x3_ = OpTypePointer Function %Mat4x3_ %60 = OpConstantNull %Mat4x3_ %113 = OpTypeFunction %v4float %Mat4x4_ %v4float %_ptr_Function_Mat4x4_ = OpTypePointer Function %Mat4x4_ %120 = OpConstantNull %Mat4x4_ %_ptr_Function_v4float = OpTypePointer Function %v4float %140 = OpTypeFunction %v3float %Mat4x3_ %v4float %160 = OpTypeFunction %v2float %Mat4x2_ %v4float %_ptr_Function_Mat4x2_ = OpTypePointer Function %Mat4x2_ %167 = OpConstantNull %Mat4x2_ %178 = OpTypeFunction %v4float %v3float %Mat4x3_ %_ptr_Function_v3float = OpTypePointer Function %v3float %203 = OpTypeFunction %Mat4x4_ %float %_ptr_Function_float = OpTypePointer Function %float %uint_0 = OpConstant %uint 0 %float_0 = OpConstant %float 0 %uint_2 = OpConstant %uint 2 %uint_3 = OpConstant %uint 3 %227 = OpTypeFunction %Mat4x4_ %Mat4x3_ %float_1 = OpConstant %float 1 %245 = OpTypeFunction %Mat4x4_ %Mat4x2_ %259 = OpTypeFunction %Mat4x3_ %float %275 = OpTypeFunction %Mat4x3_ %Mat4x4_ %void = OpTypeVoid %291 = OpTypeFunction %void %_ptr_Function_v2float = OpTypePointer Function %v2float %int = OpTypeInt 32 1 %_ptr_Uniform_Mat4x3_ = OpTypePointer Uniform %Mat4x3_ %_ptr_Uniform_Mat4x4_ = OpTypePointer Uniform %Mat4x4_ %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %float_2 = OpConstant %float 2 %bool = OpTypeBool %int_0 = OpConstant %int 0 %_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_ %VertexOutput = OpTypeStruct %v4float %v2float %v4float %362 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float %Mat4x3GetCol0_ = OpFunction %v3float None %54 %m = OpFunctionParameter %Mat4x3_ %57 = OpLabel %m1 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %m1 %m %61 = OpLoad %Mat4x3_ %m1 %62 = OpLoad %Mat4x3_ %m1 %63 = OpLoad %Mat4x3_ %m1 %64 = OpCompositeExtract %v4float %61 0 %65 = OpCompositeExtract %float %64 0 %66 = OpCompositeExtract %v4float %62 1 %67 = OpCompositeExtract %float %66 0 %68 = OpCompositeExtract %v4float %63 2 %69 = OpCompositeExtract %float %68 0 %70 = OpCompositeConstruct %v3float %65 %67 %69 OpReturnValue %70 OpFunctionEnd %Mat4x3GetCol1_ = OpFunction %v3float None %54 %m2 = OpFunctionParameter %Mat4x3_ %73 = OpLabel %m3 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %m3 %m2 %75 = OpLoad %Mat4x3_ %m3 %76 = OpLoad %Mat4x3_ %m3 %77 = OpLoad %Mat4x3_ %m3 %78 = OpCompositeExtract %v4float %75 0 %79 = OpCompositeExtract %float %78 1 %80 = OpCompositeExtract %v4float %76 1 %81 = OpCompositeExtract %float %80 1 %82 = OpCompositeExtract %v4float %77 2 %83 = OpCompositeExtract %float %82 1 %84 = OpCompositeConstruct %v3float %79 %81 %83 OpReturnValue %84 OpFunctionEnd %Mat4x3GetCol2_ = OpFunction %v3float None %54 %m4 = OpFunctionParameter %Mat4x3_ %87 = OpLabel %m5 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %m5 %m4 %89 = OpLoad %Mat4x3_ %m5 %90 = OpLoad %Mat4x3_ %m5 %91 = OpLoad %Mat4x3_ %m5 %92 = OpCompositeExtract %v4float %89 0 %93 = OpCompositeExtract %float %92 2 %94 = OpCompositeExtract %v4float %90 1 %95 = OpCompositeExtract %float %94 2 %96 = OpCompositeExtract %v4float %91 2 %97 = OpCompositeExtract %float %96 2 %98 = OpCompositeConstruct %v3float %93 %95 %97 OpReturnValue %98 OpFunctionEnd %Mat4x3GetCol3_ = OpFunction %v3float None %54 %m6 = OpFunctionParameter %Mat4x3_ %101 = OpLabel %m7 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %m7 %m6 %103 = OpLoad %Mat4x3_ %m7 %104 = OpLoad %Mat4x3_ %m7 %105 = OpLoad %Mat4x3_ %m7 %106 = OpCompositeExtract %v4float %103 0 %107 = OpCompositeExtract %float %106 3 %108 = OpCompositeExtract %v4float %104 1 %109 = OpCompositeExtract %float %108 3 %110 = OpCompositeExtract %v4float %105 2 %111 = OpCompositeExtract %float %110 3 %112 = OpCompositeConstruct %v3float %107 %109 %111 OpReturnValue %112 OpFunctionEnd %Mul = OpFunction %v4float None %113 %m8 = OpFunctionParameter %Mat4x4_ %v = OpFunctionParameter %v4float %117 = OpLabel %m9 = OpVariable %_ptr_Function_Mat4x4_ Function %120 %v1 = OpVariable %_ptr_Function_v4float Function %16 OpStore %m9 %m8 OpStore %v1 %v %123 = OpLoad %Mat4x4_ %m9 %124 = OpLoad %v4float %v1 %125 = OpLoad %Mat4x4_ %m9 %126 = OpLoad %v4float %v1 %127 = OpLoad %Mat4x4_ %m9 %128 = OpLoad %v4float %v1 %129 = OpLoad %Mat4x4_ %m9 %130 = OpLoad %v4float %v1 %132 = OpCompositeExtract %v4float %123 0 %131 = OpDot %float %132 %124 %134 = OpCompositeExtract %v4float %125 1 %133 = OpDot %float %134 %126 %136 = OpCompositeExtract %v4float %127 2 %135 = OpDot %float %136 %128 %138 = OpCompositeExtract %v4float %129 3 %137 = OpDot %float %138 %130 %139 = OpCompositeConstruct %v4float %131 %133 %135 %137 OpReturnValue %139 OpFunctionEnd %Mul1 = OpFunction %v3float None %140 %m10 = OpFunctionParameter %Mat4x3_ %v2 = OpFunctionParameter %v4float %144 = OpLabel %m11 = OpVariable %_ptr_Function_Mat4x3_ Function %60 %v3 = OpVariable %_ptr_Function_v4float Function %16 OpStore %m11 %m10 OpStore %v3 %v2 %147 = OpLoad %Mat4x3_ %m11 %148 = OpLoad %v4float %v3 %149 = OpLoad %Mat4x3_ %m11 %150 = OpLoad %v4float %v3 %151 = OpLoad %Mat4x3_ %m11 %152 = OpLoad %v4float %v3 %154 = OpCompositeExtract %v4float %147 0 %153 = OpDot %float %154 %148 %156 = OpCompositeExtract %v4float %149 1 %155 = OpDot %float %156 %150 %158 = OpCompositeExtract %v4float %151 2 %157 = OpDot %float %158 %152 %159 = OpCompositeConstruct %v3float %153 %155 %157 OpReturnValue %159 OpFunctionEnd %Mul2 = OpFunction %v2float None %160 %m12 = OpFunctionParameter %Mat4x2_ %v4 = OpFunctionParameter %v4float %164 = OpLabel %m13 = OpVariable %_ptr_Function_Mat4x2_ Function %167 %v5 = OpVariable %_ptr_Function_v4float Function %16 OpStore %m13 %m12 OpStore %v5 %v4 %169 = OpLoad %Mat4x2_ %m13 %170 = OpLoad %v4float %v5 %171 = OpLoad %Mat4x2_ %m13 %172 = OpLoad %v4float %v5 %174 = OpCompositeExtract %v4float %169 0 %173 = OpDot %float %174 %170 %176 = OpCompositeExtract %v4float %171 1 %175 = OpDot %float %176 %172 %177 = OpCompositeConstruct %v2float %173 %175 OpReturnValue %177 OpFunctionEnd %Mul3 = OpFunction %v4float None %178 %v6 = OpFunctionParameter %v3float %m14 = OpFunctionParameter %Mat4x3_ %182 = OpLabel %v7 = OpVariable %_ptr_Function_v3float Function %43 %m15 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %v7 %v6 OpStore %m15 %m14 %186 = OpLoad %Mat4x3_ %m15 %187 = OpFunctionCall %v3float %Mat4x3GetCol0_ %186 %188 = OpLoad %v3float %v7 %189 = OpLoad %Mat4x3_ %m15 %190 = OpFunctionCall %v3float %Mat4x3GetCol1_ %189 %191 = OpLoad %v3float %v7 %192 = OpLoad %Mat4x3_ %m15 %193 = OpFunctionCall %v3float %Mat4x3GetCol2_ %192 %194 = OpLoad %v3float %v7 %195 = OpLoad %Mat4x3_ %m15 %196 = OpFunctionCall %v3float %Mat4x3GetCol3_ %195 %197 = OpLoad %v3float %v7 %198 = OpDot %float %187 %188 %199 = OpDot %float %190 %191 %200 = OpDot %float %193 %194 %201 = OpDot %float %196 %197 %202 = OpCompositeConstruct %v4float %198 %199 %200 %201 OpReturnValue %202 OpFunctionEnd %x_Mat4x4_ = OpFunction %Mat4x4_ None %203 %n = OpFunctionParameter %float %206 = OpLabel %n1 = OpVariable %_ptr_Function_float Function %23 %o = OpVariable %_ptr_Function_Mat4x4_ Function %120 OpStore %n1 %n %210 = OpLoad %float %n1 %212 = OpAccessChain %_ptr_Function_v4float %o %uint_0 %214 = OpCompositeConstruct %v4float %210 %float_0 %float_0 %float_0 OpStore %212 %214 %215 = OpLoad %float %n1 %216 = OpAccessChain %_ptr_Function_v4float %o %uint_1 %217 = OpCompositeConstruct %v4float %float_0 %215 %float_0 %float_0 OpStore %216 %217 %218 = OpLoad %float %n1 %220 = OpAccessChain %_ptr_Function_v4float %o %uint_2 %221 = OpCompositeConstruct %v4float %float_0 %float_0 %218 %float_0 OpStore %220 %221 %222 = OpLoad %float %n1 %224 = OpAccessChain %_ptr_Function_v4float %o %uint_3 %225 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %222 OpStore %224 %225 %226 = OpLoad %Mat4x4_ %o OpReturnValue %226 OpFunctionEnd %x_Mat4x4_1 = OpFunction %Mat4x4_ None %227 %m16 = OpFunctionParameter %Mat4x3_ %230 = OpLabel %m17 = OpVariable %_ptr_Function_Mat4x3_ Function %60 %o1 = OpVariable %_ptr_Function_Mat4x4_ Function %120 OpStore %m17 %m16 %233 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1 OpStore %o1 %233 %235 = OpLoad %Mat4x3_ %m17 %236 = OpAccessChain %_ptr_Function_v4float %o1 %uint_0 %237 = OpCompositeExtract %v4float %235 0 OpStore %236 %237 %238 = OpLoad %Mat4x3_ %m17 %239 = OpAccessChain %_ptr_Function_v4float %o1 %uint_1 %240 = OpCompositeExtract %v4float %238 1 OpStore %239 %240 %241 = OpLoad %Mat4x3_ %m17 %242 = OpAccessChain %_ptr_Function_v4float %o1 %uint_2 %243 = OpCompositeExtract %v4float %241 2 OpStore %242 %243 %244 = OpLoad %Mat4x4_ %o1 OpReturnValue %244 OpFunctionEnd %x_Mat4x4_2 = OpFunction %Mat4x4_ None %245 %m18 = OpFunctionParameter %Mat4x2_ %248 = OpLabel %m19 = OpVariable %_ptr_Function_Mat4x2_ Function %167 %o2 = OpVariable %_ptr_Function_Mat4x4_ Function %120 OpStore %m19 %m18 %251 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1 OpStore %o2 %251 %252 = OpLoad %Mat4x2_ %m19 %253 = OpAccessChain %_ptr_Function_v4float %o2 %uint_0 %254 = OpCompositeExtract %v4float %252 0 OpStore %253 %254 %255 = OpLoad %Mat4x2_ %m19 %256 = OpAccessChain %_ptr_Function_v4float %o2 %uint_1 %257 = OpCompositeExtract %v4float %255 1 OpStore %256 %257 %258 = OpLoad %Mat4x4_ %o2 OpReturnValue %258 OpFunctionEnd %x_Mat4x3_ = OpFunction %Mat4x3_ None %259 %n2 = OpFunctionParameter %float %262 = OpLabel %n3 = OpVariable %_ptr_Function_float Function %23 %o3 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %n3 %n2 %265 = OpLoad %float %n3 %266 = OpAccessChain %_ptr_Function_v4float %o3 %uint_0 %267 = OpCompositeConstruct %v4float %265 %float_0 %float_0 %float_0 OpStore %266 %267 %268 = OpLoad %float %n3 %269 = OpAccessChain %_ptr_Function_v4float %o3 %uint_1 %270 = OpCompositeConstruct %v4float %float_0 %268 %float_0 %float_0 OpStore %269 %270 %271 = OpLoad %float %n3 %272 = OpAccessChain %_ptr_Function_v4float %o3 %uint_2 %273 = OpCompositeConstruct %v4float %float_0 %float_0 %271 %float_0 OpStore %272 %273 %274 = OpLoad %Mat4x3_ %o3 OpReturnValue %274 OpFunctionEnd %x_Mat4x3_1 = OpFunction %Mat4x3_ None %275 %m20 = OpFunctionParameter %Mat4x4_ %278 = OpLabel %m21 = OpVariable %_ptr_Function_Mat4x4_ Function %120 %o4 = OpVariable %_ptr_Function_Mat4x3_ Function %60 OpStore %m21 %m20 %281 = OpLoad %Mat4x4_ %m21 %282 = OpAccessChain %_ptr_Function_v4float %o4 %uint_0 %283 = OpCompositeExtract %v4float %281 0 OpStore %282 %283 %284 = OpLoad %Mat4x4_ %m21 %285 = OpAccessChain %_ptr_Function_v4float %o4 %uint_1 %286 = OpCompositeExtract %v4float %284 1 OpStore %285 %286 %287 = OpLoad %Mat4x4_ %m21 %288 = OpAccessChain %_ptr_Function_v4float %o4 %uint_2 %289 = OpCompositeExtract %v4float %287 2 OpStore %288 %289 %290 = OpLoad %Mat4x3_ %o4 OpReturnValue %290 OpFunctionEnd %main1 = OpFunction %void None %291 %294 = OpLabel %t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60 %t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19 %298 = OpLoad %float %a_PosMtxIdx1 %299 = OpConvertFToS %int %298 %302 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %299 %303 = OpLoad %Mat4x3_ %302 OpStore %t_PosMtx %303 %304 = OpLoad %Mat4x3_ %t_PosMtx %305 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %304 %306 = OpLoad %v3float %a_Position1 %307 = OpLoad %Mat4x3_ %t_PosMtx %308 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %307 %309 = OpLoad %v3float %a_Position1 %311 = OpCompositeExtract %float %309 0 %312 = OpCompositeExtract %float %309 1 %313 = OpCompositeExtract %float %309 2 %314 = OpCompositeConstruct %v4float %311 %312 %313 %float_1 %310 = OpFunctionCall %v4float %Mul %308 %314 %316 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0 %317 = OpLoad %Mat4x4_ %316 %318 = OpLoad %Mat4x3_ %t_PosMtx %319 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %318 %320 = OpLoad %v3float %a_Position1 %321 = OpLoad %Mat4x3_ %t_PosMtx %322 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %321 %323 = OpLoad %v3float %a_Position1 %325 = OpCompositeExtract %float %323 0 %326 = OpCompositeExtract %float %323 1 %327 = OpCompositeExtract %float %323 2 %328 = OpCompositeConstruct %v4float %325 %326 %327 %float_1 %324 = OpFunctionCall %v4float %Mul %322 %328 %329 = OpFunctionCall %v4float %Mul %317 %324 OpStore %gl_Position %329 %330 = OpLoad %v4float %a_Color1 OpStore %v_Color %330 %332 = OpAccessChain %_ptr_Uniform_v4float %global1 %uint_1 %333 = OpLoad %v4float %332 %334 = OpCompositeExtract %float %333 0 %336 = OpFOrdEqual %bool %334 %float_2 OpSelectionMerge %338 None OpBranchConditional %336 %339 %340 %339 = OpLabel %341 = OpLoad %v3float %a_Normal1 %344 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %int_0 %345 = OpLoad %Mat4x2_ %344 %346 = OpLoad %v3float %a_Normal1 %348 = OpCompositeExtract %float %346 0 %349 = OpCompositeExtract %float %346 1 %350 = OpCompositeExtract %float %346 2 %351 = OpCompositeConstruct %v4float %348 %349 %350 %float_1 %347 = OpFunctionCall %v2float %Mul2 %345 %351 %352 = OpVectorShuffle %v2float %347 %347 0 1 OpStore %v_TexCoord %352 OpReturn %340 = OpLabel %353 = OpLoad %v2float %a_UV1 %354 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %int_0 %355 = OpLoad %Mat4x2_ %354 %356 = OpLoad %v2float %a_UV1 %358 = OpCompositeExtract %float %356 0 %359 = OpCompositeExtract %float %356 1 %360 = OpCompositeConstruct %v4float %358 %359 %float_1 %float_1 %357 = OpFunctionCall %v2float %Mul2 %355 %360 %361 = OpVectorShuffle %v2float %357 %357 0 1 OpStore %v_TexCoord %361 OpReturn %338 = OpLabel OpReturn OpFunctionEnd %main_inner = OpFunction %VertexOutput None %362 %a_Position = OpFunctionParameter %v3float %a_UV = OpFunctionParameter %v2float %a_Color = OpFunctionParameter %v4float %a_Normal = OpFunctionParameter %v3float %a_PosMtxIdx = OpFunctionParameter %float %370 = OpLabel OpStore %a_Position1 %a_Position OpStore %a_UV1 %a_UV OpStore %a_Color1 %a_Color OpStore %a_Normal1 %a_Normal OpStore %a_PosMtxIdx1 %a_PosMtxIdx %371 = OpFunctionCall %void %main1 %372 = OpLoad %v4float %v_Color %373 = OpLoad %v2float %v_TexCoord %374 = OpLoad %v4float %gl_Position %375 = OpCompositeConstruct %VertexOutput %372 %373 %374 OpReturnValue %375 OpFunctionEnd %main = OpFunction %void None %291 %377 = OpLabel %379 = OpLoad %v3float %a_Position_1 %380 = OpLoad %v2float %a_UV_1 %381 = OpLoad %v4float %a_Color_1 %382 = OpLoad %v3float %a_Normal_1 %383 = OpLoad %float %a_PosMtxIdx_1 %378 = OpFunctionCall %VertexOutput %main_inner %379 %380 %381 %382 %383 %384 = OpCompositeExtract %v4float %378 0 OpStore %v_Color_1 %384 %385 = OpCompositeExtract %v2float %378 1 OpStore %v_TexCoord_1 %385 %386 = OpCompositeExtract %v4float %378 2 OpStore %member_1 %386 OpStore %vertex_point_size %float_1 OpReturn OpFunctionEnd