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 OpMemberName %_UniformBuffer 2 "testArray" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %one "one" 14 OpName %two "two" 15 OpName %three "three" 16 OpName %four "four" 17 OpName %five "five" 18 OpDecorate %sk_FragColor RelaxedPrecision 19 OpDecorate %sk_FragColor Location 0 20 OpDecorate %sk_FragColor Index 0 21 OpDecorate %_arr_float_int_5 ArrayStride 16 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 OpDecorate %_UniformBuffer Block 28 OpDecorate %7 Binding 0 29 OpDecorate %7 DescriptorSet 0 30 OpDecorate %four RelaxedPrecision 31 OpDecorate %five RelaxedPrecision 32 OpDecorate %61 RelaxedPrecision 33 OpDecorate %72 RelaxedPrecision 34 OpDecorate %74 RelaxedPrecision 35 OpDecorate %75 RelaxedPrecision 36 %float = OpTypeFloat 32 37 %v4float = OpTypeVector %float 4 38%_ptr_Output_v4float = OpTypePointer Output %v4float 39%sk_FragColor = OpVariable %_ptr_Output_v4float Output 40 %int = OpTypeInt 32 1 41 %int_5 = OpConstant %int 5 42%_arr_float_int_5 = OpTypeArray %float %int_5 43%_UniformBuffer = OpTypeStruct %v4float %v4float %_arr_float_int_5 44%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 45 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 46 %void = OpTypeVoid 47 %15 = OpTypeFunction %void 48 %float_0 = OpConstant %float 0 49 %v2float = OpTypeVector %float 2 50 %19 = OpConstantComposite %v2float %float_0 %float_0 51%_ptr_Function_v2float = OpTypePointer Function %v2float 52 %23 = OpTypeFunction %v4float %_ptr_Function_v2float 53%_ptr_Function_float = OpTypePointer Function %float 54%_ptr_Uniform__arr_float_int_5 = OpTypePointer Uniform %_arr_float_int_5 55 %int_2 = OpConstant %int 2 56 %int_0 = OpConstant %int 0 57%_ptr_Uniform_float = OpTypePointer Uniform %float 58 %int_1 = OpConstant %int 1 59 %int_3 = OpConstant %int 3 60 %int_4 = OpConstant %int 4 61 %bool = OpTypeBool 62 %false = OpConstantFalse %bool 63 %float_5 = OpConstant %float 5 64 %float_17 = OpConstant %float 17 65%_ptr_Function_v4float = OpTypePointer Function %v4float 66%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 67%_entrypoint_v = OpFunction %void None %15 68 %16 = OpLabel 69 %20 = OpVariable %_ptr_Function_v2float Function 70 OpStore %20 %19 71 %22 = OpFunctionCall %v4float %main %20 72 OpStore %sk_FragColor %22 73 OpReturn 74 OpFunctionEnd 75 %main = OpFunction %v4float None %23 76 %24 = OpFunctionParameter %_ptr_Function_v2float 77 %25 = OpLabel 78 %one = OpVariable %_ptr_Function_float Function 79 %two = OpVariable %_ptr_Function_float Function 80 %three = OpVariable %_ptr_Function_float Function 81 %four = OpVariable %_ptr_Function_float Function 82 %five = OpVariable %_ptr_Function_float Function 83 %65 = OpVariable %_ptr_Function_v4float Function 84 %28 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2 85 %32 = OpAccessChain %_ptr_Uniform_float %28 %int_0 86 %34 = OpLoad %float %32 87 OpStore %one %34 88 %36 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2 89 %38 = OpAccessChain %_ptr_Uniform_float %36 %int_1 90 %39 = OpLoad %float %38 91 OpStore %two %39 92 %41 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2 93 %42 = OpAccessChain %_ptr_Uniform_float %41 %int_2 94 %43 = OpLoad %float %42 95 OpStore %three %43 96 %45 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2 97 %47 = OpAccessChain %_ptr_Uniform_float %45 %int_3 98 %48 = OpLoad %float %47 99 OpStore %four %48 100 %50 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2 101 %52 = OpAccessChain %_ptr_Uniform_float %50 %int_4 102 %53 = OpLoad %float %52 103 OpStore %five %53 104 %56 = OpExtInst %float %1 Fma %34 %39 %43 105 %58 = OpFOrdEqual %bool %56 %float_5 106 OpSelectionMerge %60 None 107 OpBranchConditional %58 %59 %60 108 %59 = OpLabel 109 %61 = OpExtInst %float %1 Fma %43 %48 %53 110 %63 = OpFOrdEqual %bool %61 %float_17 111 OpBranch %60 112 %60 = OpLabel 113 %64 = OpPhi %bool %false %25 %63 %59 114 OpSelectionMerge %69 None 115 OpBranchConditional %64 %67 %68 116 %67 = OpLabel 117 %70 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 118 %72 = OpLoad %v4float %70 119 OpStore %65 %72 120 OpBranch %69 121 %68 = OpLabel 122 %73 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 123 %74 = OpLoad %v4float %73 124 OpStore %65 %74 125 OpBranch %69 126 %69 = OpLabel 127 %75 = OpLoad %v4float %65 128 OpReturnValue %75 129 OpFunctionEnd 130