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