1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpName %_entrypoint_v "_entrypoint_v" 11 OpName %main "main" 12 OpName %result "result" 13 OpName %g "g" 14 OpName %h "h" 15 OpName %i "i" 16 OpName %j "j" 17 OpName %k "k" 18 OpName %l "l" 19 OpDecorate %sk_FragColor RelaxedPrecision 20 OpDecorate %sk_FragColor Location 0 21 OpDecorate %sk_FragColor Index 0 22 OpMemberDecorate %_UniformBuffer 0 Offset 0 23 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 24 OpMemberDecorate %_UniformBuffer 1 Offset 16 25 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 26 OpDecorate %_UniformBuffer Block 27 OpDecorate %7 Binding 0 28 OpDecorate %7 DescriptorSet 0 29 OpDecorate %103 RelaxedPrecision 30 OpDecorate %106 RelaxedPrecision 31 OpDecorate %107 RelaxedPrecision 32 %float = OpTypeFloat 32 33 %v4float = OpTypeVector %float 4 34%_ptr_Output_v4float = OpTypePointer Output %v4float 35%sk_FragColor = OpVariable %_ptr_Output_v4float Output 36%_UniformBuffer = OpTypeStruct %v4float %v4float 37%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 38 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 39 %void = OpTypeVoid 40 %12 = OpTypeFunction %void 41 %float_0 = OpConstant %float 0 42 %v2float = OpTypeVector %float 2 43 %16 = OpConstantComposite %v2float %float_0 %float_0 44%_ptr_Function_v2float = OpTypePointer Function %v2float 45 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 46%_ptr_Function_float = OpTypePointer Function %float 47 %v3float = OpTypeVector %float 3 48%mat3v3float = OpTypeMatrix %v3float 3 49%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float 50 %float_1 = OpConstant %float 1 51 %30 = OpConstantComposite %v3float %float_1 %float_0 %float_0 52 %31 = OpConstantComposite %v3float %float_0 %float_1 %float_0 53%mat2v3float = OpTypeMatrix %v3float 2 54 %33 = OpConstantComposite %mat2v3float %30 %31 55 %34 = OpConstantComposite %v3float %float_0 %float_0 %float_1 56 %35 = OpConstantComposite %mat3v3float %30 %31 %34 57 %int = OpTypeInt 32 1 58 %int_0 = OpConstant %int 0 59%_ptr_Function_v3float = OpTypePointer Function %v3float 60 %44 = OpConstantComposite %v2float %float_1 %float_0 61 %45 = OpConstantComposite %v2float %float_0 %float_1 62%mat3v2float = OpTypeMatrix %v2float 3 63 %47 = OpConstantComposite %mat3v2float %44 %45 %16 64%mat4v4float = OpTypeMatrix %v4float 4 65%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float 66%mat4v2float = OpTypeMatrix %v2float 4 67 %56 = OpConstantComposite %mat4v2float %44 %45 %16 %16 68 %57 = OpConstantComposite %v3float %float_0 %float_0 %float_0 69%mat4v3float = OpTypeMatrix %v3float 4 70 %59 = OpConstantComposite %mat4v3float %30 %31 %34 %57 71 %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0 72 %61 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0 73 %62 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0 74 %63 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 75 %64 = OpConstantComposite %mat4v4float %60 %61 %62 %63 76%_ptr_Function_v4float = OpTypePointer Function %v4float 77%mat2v4float = OpTypeMatrix %v4float 2 78 %72 = OpConstantComposite %mat2v4float %60 %61 79%mat3v4float = OpTypeMatrix %v4float 3 80 %74 = OpConstantComposite %mat3v4float %60 %61 %62 81%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float 82%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float 83 %float_6 = OpConstant %float 6 84 %bool = OpTypeBool 85%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 86 %int_1 = OpConstant %int 1 87%_entrypoint_v = OpFunction %void None %12 88 %13 = OpLabel 89 %17 = OpVariable %_ptr_Function_v2float Function 90 OpStore %17 %16 91 %19 = OpFunctionCall %v4float %main %17 92 OpStore %sk_FragColor %19 93 OpReturn 94 OpFunctionEnd 95 %main = OpFunction %v4float None %20 96 %21 = OpFunctionParameter %_ptr_Function_v2float 97 %22 = OpLabel 98 %result = OpVariable %_ptr_Function_float Function 99 %g = OpVariable %_ptr_Function_mat3v3float Function 100 %h = OpVariable %_ptr_Function_mat3v3float Function 101 %i = OpVariable %_ptr_Function_mat4v4float Function 102 %j = OpVariable %_ptr_Function_mat4v4float Function 103 %k = OpVariable %_ptr_Function_mat2v4float Function 104 %l = OpVariable %_ptr_Function_mat4v2float Function 105 %97 = OpVariable %_ptr_Function_v4float Function 106 OpStore %result %float_0 107 OpStore %g %35 108 %38 = OpAccessChain %_ptr_Function_v3float %g %int_0 109 %40 = OpLoad %v3float %38 110 %41 = OpCompositeExtract %float %40 0 111 %42 = OpFAdd %float %float_0 %41 112 OpStore %result %42 113 OpStore %h %35 114 %48 = OpAccessChain %_ptr_Function_v3float %h %int_0 115 %49 = OpLoad %v3float %48 116 %50 = OpCompositeExtract %float %49 0 117 %51 = OpFAdd %float %42 %50 118 OpStore %result %51 119 OpStore %i %64 120 %65 = OpAccessChain %_ptr_Function_v4float %i %int_0 121 %67 = OpLoad %v4float %65 122 %68 = OpCompositeExtract %float %67 0 123 %69 = OpFAdd %float %51 %68 124 OpStore %result %69 125 OpStore %j %64 126 %75 = OpAccessChain %_ptr_Function_v4float %j %int_0 127 %76 = OpLoad %v4float %75 128 %77 = OpCompositeExtract %float %76 0 129 %78 = OpFAdd %float %69 %77 130 OpStore %result %78 131 OpStore %k %72 132 %81 = OpAccessChain %_ptr_Function_v4float %k %int_0 133 %82 = OpLoad %v4float %81 134 %83 = OpCompositeExtract %float %82 0 135 %84 = OpFAdd %float %78 %83 136 OpStore %result %84 137 %87 = OpVectorShuffle %v2float %60 %60 0 1 138 %88 = OpVectorShuffle %v2float %61 %61 0 1 139 %89 = OpCompositeConstruct %mat4v2float %87 %88 %16 %16 140 OpStore %l %89 141 %90 = OpAccessChain %_ptr_Function_v2float %l %int_0 142 %91 = OpLoad %v2float %90 143 %92 = OpCompositeExtract %float %91 0 144 %93 = OpFAdd %float %84 %92 145 OpStore %result %93 146 %95 = OpFOrdEqual %bool %93 %float_6 147 OpSelectionMerge %100 None 148 OpBranchConditional %95 %98 %99 149 %98 = OpLabel 150 %101 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 151 %103 = OpLoad %v4float %101 152 OpStore %97 %103 153 OpBranch %100 154 %99 = OpLabel 155 %104 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 156 %106 = OpLoad %v4float %104 157 OpStore %97 %106 158 OpBranch %100 159 %100 = OpLabel 160 %107 = OpLoad %v4float %97 161 OpReturnValue %107 162 OpFunctionEnd 163