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 "colorRed" 9 OpMemberName %_UniformBuffer 1 "colorGreen" 10 OpMemberName %_UniformBuffer 2 "colorWhite" 11 OpMemberName %_UniformBuffer 3 "colorBlack" 12 OpName %_entrypoint_v "_entrypoint_v" 13 OpName %setToColorBlack_vh4 "setToColorBlack_vh4" 14 OpName %main "main" 15 OpName %a "a" 16 OpName %b "b" 17 OpName %c "c" 18 OpName %d "d" 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 OpMemberDecorate %_UniformBuffer 2 Offset 32 27 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 28 OpMemberDecorate %_UniformBuffer 3 Offset 48 29 OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %8 Binding 0 32 OpDecorate %8 DescriptorSet 0 33 OpDecorate %29 RelaxedPrecision 34 OpDecorate %a RelaxedPrecision 35 OpDecorate %b RelaxedPrecision 36 OpDecorate %c RelaxedPrecision 37 OpDecorate %d RelaxedPrecision 38 OpDecorate %39 RelaxedPrecision 39 OpDecorate %42 RelaxedPrecision 40 OpDecorate %43 RelaxedPrecision 41 OpDecorate %45 RelaxedPrecision 42 OpDecorate %48 RelaxedPrecision 43 OpDecorate %49 RelaxedPrecision 44 OpDecorate %50 RelaxedPrecision 45 OpDecorate %51 RelaxedPrecision 46 OpDecorate %52 RelaxedPrecision 47 OpDecorate %56 RelaxedPrecision 48 OpDecorate %63 RelaxedPrecision 49 OpDecorate %70 RelaxedPrecision 50 OpDecorate %77 RelaxedPrecision 51 OpDecorate %86 RelaxedPrecision 52 OpDecorate %88 RelaxedPrecision 53 OpDecorate %89 RelaxedPrecision 54 %float = OpTypeFloat 32 55 %v4float = OpTypeVector %float 4 56%_ptr_Output_v4float = OpTypePointer Output %v4float 57%sk_FragColor = OpVariable %_ptr_Output_v4float Output 58%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float 59%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 60 %8 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 61 %void = OpTypeVoid 62 %13 = OpTypeFunction %void 63 %float_0 = OpConstant %float 0 64 %v2float = OpTypeVector %float 2 65 %17 = OpConstantComposite %v2float %float_0 %float_0 66%_ptr_Function_v2float = OpTypePointer Function %v2float 67%_ptr_Function_v4float = OpTypePointer Function %v4float 68 %22 = OpTypeFunction %void %_ptr_Function_v4float 69%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 70 %int = OpTypeInt 32 1 71 %int_3 = OpConstant %int 3 72 %30 = OpTypeFunction %v4float %_ptr_Function_v2float 73 %int_0 = OpConstant %int 0 74 %int_1 = OpConstant %int 1 75 %int_2 = OpConstant %int 2 76 %bool = OpTypeBool 77 %false = OpConstantFalse %bool 78 %v4bool = OpTypeVector %bool 4 79%_entrypoint_v = OpFunction %void None %13 80 %14 = OpLabel 81 %18 = OpVariable %_ptr_Function_v2float Function 82 OpStore %18 %17 83 %20 = OpFunctionCall %v4float %main %18 84 OpStore %sk_FragColor %20 85 OpReturn 86 OpFunctionEnd 87%setToColorBlack_vh4 = OpFunction %void None %22 88 %23 = OpFunctionParameter %_ptr_Function_v4float 89 %24 = OpLabel 90 %25 = OpAccessChain %_ptr_Uniform_v4float %8 %int_3 91 %29 = OpLoad %v4float %25 92 OpStore %23 %29 93 OpReturn 94 OpFunctionEnd 95 %main = OpFunction %v4float None %30 96 %31 = OpFunctionParameter %_ptr_Function_v2float 97 %32 = OpLabel 98 %a = OpVariable %_ptr_Function_v4float Function 99 %b = OpVariable %_ptr_Function_v4float Function 100 %c = OpVariable %_ptr_Function_v4float Function 101 %d = OpVariable %_ptr_Function_v4float Function 102 %43 = OpVariable %_ptr_Function_v4float Function 103 %81 = OpVariable %_ptr_Function_v4float Function 104 %37 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 105 %39 = OpLoad %v4float %37 106 OpStore %b %39 107 %40 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 108 %42 = OpLoad %v4float %40 109 OpStore %c %42 110 %44 = OpFunctionCall %void %setToColorBlack_vh4 %43 111 %45 = OpLoad %v4float %43 112 OpStore %d %45 113 %46 = OpAccessChain %_ptr_Uniform_v4float %8 %int_2 114 %48 = OpLoad %v4float %46 115 OpStore %a %48 116 %49 = OpFMul %v4float %48 %48 117 OpStore %a %49 118 %50 = OpFMul %v4float %39 %39 119 OpStore %b %50 120 %51 = OpFMul %v4float %42 %42 121 OpStore %c %51 122 %52 = OpFMul %v4float %45 %45 123 OpStore %d %52 124 %55 = OpAccessChain %_ptr_Uniform_v4float %8 %int_2 125 %56 = OpLoad %v4float %55 126 %57 = OpFOrdEqual %v4bool %49 %56 127 %59 = OpAll %bool %57 128 OpSelectionMerge %61 None 129 OpBranchConditional %59 %60 %61 130 %60 = OpLabel 131 %62 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 132 %63 = OpLoad %v4float %62 133 %64 = OpFOrdEqual %v4bool %50 %63 134 %65 = OpAll %bool %64 135 OpBranch %61 136 %61 = OpLabel 137 %66 = OpPhi %bool %false %32 %65 %60 138 OpSelectionMerge %68 None 139 OpBranchConditional %66 %67 %68 140 %67 = OpLabel 141 %69 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 142 %70 = OpLoad %v4float %69 143 %71 = OpFOrdEqual %v4bool %51 %70 144 %72 = OpAll %bool %71 145 OpBranch %68 146 %68 = OpLabel 147 %73 = OpPhi %bool %false %61 %72 %67 148 OpSelectionMerge %75 None 149 OpBranchConditional %73 %74 %75 150 %74 = OpLabel 151 %76 = OpAccessChain %_ptr_Uniform_v4float %8 %int_3 152 %77 = OpLoad %v4float %76 153 %78 = OpFOrdEqual %v4bool %52 %77 154 %79 = OpAll %bool %78 155 OpBranch %75 156 %75 = OpLabel 157 %80 = OpPhi %bool %false %68 %79 %74 158 OpSelectionMerge %84 None 159 OpBranchConditional %80 %82 %83 160 %82 = OpLabel 161 %85 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1 162 %86 = OpLoad %v4float %85 163 OpStore %81 %86 164 OpBranch %84 165 %83 = OpLabel 166 %87 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0 167 %88 = OpLoad %v4float %87 168 OpStore %81 %88 169 OpBranch %84 170 %84 = OpLabel 171 %89 = OpLoad %v4float %81 172 OpReturnValue %89 173 OpFunctionEnd 174