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