1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color 5 OpExecutionMode %main OriginUpperLeft 6 OpSource ESSL 320 7 OpName %main "main" 8 OpName %c "c" 9 OpName %buf0 "buf0" 10 OpMemberName %buf0 0 "resolution" 11 OpName %_ "" 12 OpName %gl_FragCoord "gl_FragCoord" 13 OpName %_GLF_color "_GLF_color" 14 OpMemberDecorate %buf0 0 Offset 0 15 OpDecorate %buf0 Block 16 OpDecorate %_ DescriptorSet 0 17 OpDecorate %_ Binding 0 18 OpDecorate %gl_FragCoord BuiltIn FragCoord 19 OpDecorate %_GLF_color Location 0 20 %void = OpTypeVoid 21 %9 = OpTypeFunction %void 22 %float = OpTypeFloat 32 23%_ptr_Function_float = OpTypePointer Function %float 24 %float_n0_5 = OpConstant %float -0.5 25 %int = OpTypeInt 32 1 26 %int_1 = OpConstant %int 1 27 %int_800 = OpConstant %int 800 28 %bool = OpTypeBool 29 %int_32 = OpConstant %int 32 30 %int_0 = OpConstant %int 0 31%float_0_400000006 = OpConstant %float 0.400000006 32%float_0_00999999978 = OpConstant %float 0.00999999978 33 %float_100 = OpConstant %float 100 34 %v3float = OpTypeVector %float 3 35%_ptr_Function_v3float = OpTypePointer Function %v3float 36 %float_7 = OpConstant %float 7 37 %float_8 = OpConstant %float 8 38 %float_9 = OpConstant %float 9 39 %27 = OpConstantComposite %v3float %float_7 %float_8 %float_9 40 %v2float = OpTypeVector %float 2 41 %buf0 = OpTypeStruct %v2float 42%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 43 %_ = OpVariable %_ptr_Uniform_buf0 Uniform 44 %uint = OpTypeInt 32 0 45 %uint_0 = OpConstant %uint 0 46%_ptr_Uniform_float = OpTypePointer Uniform %float 47 %v4float = OpTypeVector %float 4 48%_ptr_Input_v4float = OpTypePointer Input %v4float 49%gl_FragCoord = OpVariable %_ptr_Input_v4float Input 50%_ptr_Input_float = OpTypePointer Input %float 51 %uint_1 = OpConstant %uint 1 52 %uint_2 = OpConstant %uint 2 53 %int_3 = OpConstant %int 3 54 %float_1 = OpConstant %float 1 55%_ptr_Output_v4float = OpTypePointer Output %v4float 56 %_GLF_color = OpVariable %_ptr_Output_v4float Output 57 %false = OpConstantFalse %bool 58 %true = OpConstantTrue %bool 59 %43 = OpUndef %float 60%float_0_125 = OpConstant %float 0.125 61 %main = OpFunction %void None %9 62 %45 = OpLabel 63 %c = OpVariable %_ptr_Function_v3float Function 64 OpStore %c %27 65 %46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 66 %47 = OpLoad %float %46 67 %48 = OpFMul %float %47 %float_0_125 68 %49 = OpExtInst %float %1 Round %48 69 %50 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 70 %51 = OpLoad %float %50 71 OpSelectionMerge %52 None 72 OpSwitch %uint_0 %53 73 %53 = OpLabel 74 OpBranch %54 75 %54 = OpLabel 76 %55 = OpPhi %float %float_n0_5 %53 %56 %57 77 %58 = OpPhi %int %int_1 %53 %59 %57 78 %60 = OpSLessThan %bool %58 %int_800 79 OpLoopMerge %61 %57 None 80 OpBranchConditional %60 %62 %61 81 %62 = OpLabel 82 %63 = OpSMod %int %58 %int_32 83 %64 = OpIEqual %bool %63 %int_0 84 OpSelectionMerge %65 None 85 OpBranchConditional %64 %66 %67 86 %66 = OpLabel 87 %68 = OpFAdd %float %55 %float_0_400000006 88 OpBranch %65 89 %67 = OpLabel 90 %69 = OpConvertSToF %float %58 91 %70 = OpExtInst %float %1 Round %49 92 %71 = OpFMod %float %69 %70 93 %72 = OpFOrdLessThanEqual %bool %71 %float_0_00999999978 94 OpSelectionMerge %73 None 95 OpBranchConditional %72 %74 %73 96 %74 = OpLabel 97 %75 = OpFAdd %float %55 %float_100 98 OpBranch %73 99 %73 = OpLabel 100 %76 = OpPhi %float %55 %67 %75 %74 101 OpBranch %65 102 %65 = OpLabel 103 %56 = OpPhi %float %68 %66 %76 %73 104 %77 = OpConvertSToF %float %58 105 %78 = OpFOrdGreaterThanEqual %bool %77 %51 106 OpSelectionMerge %79 None 107 OpBranchConditional %78 %80 %79 108 %80 = OpLabel 109 OpBranch %61 110 %79 = OpLabel 111 OpBranch %57 112 %57 = OpLabel 113 %59 = OpIAdd %int %58 %int_1 114 OpBranch %54 115 %61 = OpLabel 116 %81 = OpPhi %float %43 %54 %56 %80 117 %82 = OpPhi %float %55 %54 %56 %80 118 %83 = OpPhi %bool %false %54 %true %80 119 OpSelectionMerge %84 None 120 OpBranchConditional %83 %52 %84 121 %84 = OpLabel 122 OpBranch %52 123 %52 = OpLabel 124 %85 = OpPhi %float %81 %61 %82 %84 125 %86 = OpAccessChain %_ptr_Function_float %c %uint_0 126 OpStore %86 %85 127 %87 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 128 %88 = OpLoad %float %87 129 OpSelectionMerge %89 None 130 OpSwitch %uint_0 %90 131 %90 = OpLabel 132 OpBranch %91 133 %91 = OpLabel 134 %92 = OpPhi %float %float_n0_5 %90 %93 %94 135 %95 = OpPhi %int %int_1 %90 %96 %94 136 %97 = OpSLessThan %bool %95 %int_800 137 OpLoopMerge %98 %94 None 138 OpBranchConditional %97 %99 %98 139 %99 = OpLabel 140 %100 = OpSMod %int %95 %int_32 141 %101 = OpIEqual %bool %100 %int_0 142 OpSelectionMerge %102 None 143 OpBranchConditional %101 %103 %104 144 %103 = OpLabel 145 %105 = OpFAdd %float %92 %float_0_400000006 146 OpBranch %102 147 %104 = OpLabel 148 %106 = OpConvertSToF %float %95 149 %107 = OpExtInst %float %1 Round %49 150 %108 = OpFMod %float %106 %107 151 %109 = OpFOrdLessThanEqual %bool %108 %float_0_00999999978 152 OpSelectionMerge %110 None 153 OpBranchConditional %109 %111 %110 154 %111 = OpLabel 155 %112 = OpFAdd %float %92 %float_100 156 OpBranch %110 157 %110 = OpLabel 158 %113 = OpPhi %float %92 %104 %112 %111 159 OpBranch %102 160 %102 = OpLabel 161 %93 = OpPhi %float %105 %103 %113 %110 162 %114 = OpConvertSToF %float %95 163 %115 = OpFOrdGreaterThanEqual %bool %114 %88 164 OpSelectionMerge %116 None 165 OpBranchConditional %115 %117 %116 166 %117 = OpLabel 167 OpBranch %98 168 %116 = OpLabel 169 OpBranch %94 170 %94 = OpLabel 171 %96 = OpIAdd %int %95 %int_1 172 OpBranch %91 173 %98 = OpLabel 174 %118 = OpPhi %float %43 %91 %93 %117 175 %119 = OpPhi %float %92 %91 %93 %117 176 %120 = OpPhi %bool %false %91 %true %117 177 OpSelectionMerge %121 None 178 OpBranchConditional %120 %89 %121 179 %121 = OpLabel 180 OpBranch %89 181 %89 = OpLabel 182 %122 = OpPhi %float %118 %98 %119 %121 183 %123 = OpAccessChain %_ptr_Function_float %c %uint_1 184 OpStore %123 %122 185 %124 = OpLoad %float %86 186 %125 = OpLoad %float %123 187 %126 = OpFAdd %float %124 %125 188 %127 = OpAccessChain %_ptr_Function_float %c %uint_2 189 OpStore %127 %126 190 OpBranch %128 191 %128 = OpLabel 192 %129 = OpPhi %int %int_0 %89 %130 %131 193 %132 = OpSLessThan %bool %129 %int_3 194 OpLoopMerge %133 %131 None 195 OpBranchConditional %132 %134 %133 196 %134 = OpLabel 197 %135 = OpAccessChain %_ptr_Function_float %c %129 198 %136 = OpLoad %float %135 199 %137 = OpFOrdGreaterThanEqual %bool %136 %float_1 200 OpSelectionMerge %138 None 201 OpBranchConditional %137 %139 %138 202 %139 = OpLabel 203 %140 = OpLoad %float %135 204 %141 = OpLoad %float %135 205 %142 = OpFMul %float %140 %141 206 OpStore %135 %142 207 OpBranch %138 208 %138 = OpLabel 209 OpBranch %131 210 %131 = OpLabel 211 %130 = OpIAdd %int %129 %int_1 212 OpBranch %128 213 %133 = OpLabel 214 %143 = OpLoad %v3float %c 215 %144 = OpExtInst %v3float %1 FAbs %143 216 %145 = OpExtInst %v3float %1 Normalize %144 217 %146 = OpCompositeExtract %float %145 0 218 %147 = OpCompositeExtract %float %145 1 219 %148 = OpCompositeExtract %float %145 2 220 %149 = OpCompositeConstruct %v4float %146 %147 %148 %float_1 221 OpStore %_GLF_color %149 222 OpReturn 223 OpFunctionEnd 224