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 %glob "glob" 8 OpName %_UniformBuffer "_UniformBuffer" 9 OpMemberName %_UniformBuffer 0 "colorGreen" 10 OpMemberName %_UniformBuffer 1 "colorRed" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %block_variable_hides_global_variable_b "block_variable_hides_global_variable_b" 13 OpName %local_variable_hides_struct_b "local_variable_hides_struct_b" 14 OpName %S "S" 15 OpName %local_struct_variable_hides_struct_type_b "local_struct_variable_hides_struct_type_b" 16 OpName %S_0 "S" 17 OpMemberName %S_0 0 "i" 18 OpName %S_1 "S" 19 OpName %local_variable_hides_global_variable_b "local_variable_hides_global_variable_b" 20 OpName %glob_0 "glob" 21 OpName %main "main" 22 OpDecorate %sk_FragColor RelaxedPrecision 23 OpDecorate %sk_FragColor Location 0 24 OpDecorate %sk_FragColor Index 0 25 OpMemberDecorate %_UniformBuffer 0 Offset 0 26 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 27 OpMemberDecorate %_UniformBuffer 1 Offset 16 28 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 29 OpDecorate %_UniformBuffer Block 30 OpDecorate %14 Binding 0 31 OpDecorate %14 DescriptorSet 0 32 OpMemberDecorate %S_0 0 Offset 0 33 OpDecorate %77 RelaxedPrecision 34 OpDecorate %79 RelaxedPrecision 35 OpDecorate %80 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%_ptr_Private_int = OpTypePointer Private %int 42 %glob = OpVariable %_ptr_Private_int Private 43%_UniformBuffer = OpTypeStruct %v4float %v4float 44%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 45 %14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 46 %void = OpTypeVoid 47 %19 = OpTypeFunction %void 48 %float_0 = OpConstant %float 0 49 %v2float = OpTypeVector %float 2 50 %23 = OpConstantComposite %v2float %float_0 %float_0 51%_ptr_Function_v2float = OpTypePointer Function %v2float 52 %bool = OpTypeBool 53 %28 = OpTypeFunction %bool 54 %int_2 = OpConstant %int 2 55%_ptr_Function_bool = OpTypePointer Function %bool 56 %true = OpConstantTrue %bool 57 %S_0 = OpTypeStruct %int 58%_ptr_Function_S_0 = OpTypePointer Function %S_0 59 %int_1 = OpConstant %int 1 60 %int_0 = OpConstant %int 0 61%_ptr_Function_int = OpTypePointer Function %int 62 %50 = OpTypeFunction %v4float %_ptr_Function_v2float 63 %false = OpConstantFalse %bool 64%_ptr_Function_v4float = OpTypePointer Function %v4float 65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 66%_entrypoint_v = OpFunction %void None %19 67 %20 = OpLabel 68 %24 = OpVariable %_ptr_Function_v2float Function 69 OpStore %24 %23 70 %26 = OpFunctionCall %v4float %main %24 71 OpStore %sk_FragColor %26 72 OpReturn 73 OpFunctionEnd 74%block_variable_hides_global_variable_b = OpFunction %bool None %28 75 %29 = OpLabel 76 %30 = OpLoad %int %glob 77 %32 = OpIEqual %bool %30 %int_2 78 OpReturnValue %32 79 OpFunctionEnd 80%local_variable_hides_struct_b = OpFunction %bool None %28 81 %33 = OpLabel 82 %S = OpVariable %_ptr_Function_bool Function 83 OpStore %S %true 84 OpReturnValue %true 85 OpFunctionEnd 86%local_struct_variable_hides_struct_type_b = OpFunction %bool None %28 87 %37 = OpLabel 88 %S_1 = OpVariable %_ptr_Function_S_0 Function 89 %42 = OpCompositeConstruct %S_0 %int_1 90 OpStore %S_1 %42 91 %44 = OpAccessChain %_ptr_Function_int %S_1 %int_0 92 %46 = OpLoad %int %44 93 %47 = OpIEqual %bool %46 %int_1 94 OpReturnValue %47 95 OpFunctionEnd 96%local_variable_hides_global_variable_b = OpFunction %bool None %28 97 %48 = OpLabel 98 %glob_0 = OpVariable %_ptr_Function_int Function 99 OpStore %glob_0 %int_1 100 OpReturnValue %true 101 OpFunctionEnd 102 %main = OpFunction %v4float None %50 103 %51 = OpFunctionParameter %_ptr_Function_v2float 104 %52 = OpLabel 105 %70 = OpVariable %_ptr_Function_v4float Function 106 OpStore %glob %int_2 107 OpSelectionMerge %55 None 108 OpBranchConditional %true %54 %55 109 %54 = OpLabel 110 %56 = OpFunctionCall %bool %block_variable_hides_global_variable_b 111 OpBranch %55 112 %55 = OpLabel 113 %57 = OpPhi %bool %false %52 %56 %54 114 OpSelectionMerge %59 None 115 OpBranchConditional %57 %58 %59 116 %58 = OpLabel 117 %60 = OpFunctionCall %bool %local_variable_hides_struct_b 118 OpBranch %59 119 %59 = OpLabel 120 %61 = OpPhi %bool %false %55 %60 %58 121 OpSelectionMerge %63 None 122 OpBranchConditional %61 %62 %63 123 %62 = OpLabel 124 %64 = OpFunctionCall %bool %local_struct_variable_hides_struct_type_b 125 OpBranch %63 126 %63 = OpLabel 127 %65 = OpPhi %bool %false %59 %64 %62 128 OpSelectionMerge %67 None 129 OpBranchConditional %65 %66 %67 130 %66 = OpLabel 131 %68 = OpFunctionCall %bool %local_variable_hides_global_variable_b 132 OpBranch %67 133 %67 = OpLabel 134 %69 = OpPhi %bool %false %63 %68 %66 135 OpSelectionMerge %74 None 136 OpBranchConditional %69 %72 %73 137 %72 = OpLabel 138 %75 = OpAccessChain %_ptr_Uniform_v4float %14 %int_0 139 %77 = OpLoad %v4float %75 140 OpStore %70 %77 141 OpBranch %74 142 %73 = OpLabel 143 %78 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1 144 %79 = OpLoad %v4float %78 145 OpStore %70 %79 146 OpBranch %74 147 %74 = OpLabel 148 %80 = OpLoad %v4float %70 149 OpReturnValue %80 150 OpFunctionEnd 151