1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Vertex %main "main" %3 %sk_InstanceID %sk_VertexID %vcoord_Stage0 5OpName %sk_PerVertex "sk_PerVertex" 6OpMemberName %sk_PerVertex 0 "sk_Position" 7OpMemberName %sk_PerVertex 1 "sk_PointSize" 8OpName %sk_InstanceID "sk_InstanceID" 9OpName %sk_VertexID "sk_VertexID" 10OpName %vcoord_Stage0 "vcoord_Stage0" 11OpName %main "main" 12OpName %x "x" 13OpName %y "y" 14OpName %ileft "ileft" 15OpName %iright "iright" 16OpName %itop "itop" 17OpName %ibot "ibot" 18OpName %outset "outset" 19OpName %l "l" 20OpName %r "r" 21OpName %t "t" 22OpName %b "b" 23OpName %vertexpos "vertexpos" 24OpMemberDecorate %sk_PerVertex 0 BuiltIn Position 25OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize 26OpDecorate %sk_PerVertex Block 27OpDecorate %sk_InstanceID BuiltIn InstanceIndex 28OpDecorate %sk_VertexID BuiltIn VertexIndex 29OpDecorate %vcoord_Stage0 Location 1 30OpDecorate %vcoord_Stage0 NoPerspective 31%float = OpTypeFloat 32 32%v4float = OpTypeVector %float 4 33%sk_PerVertex = OpTypeStruct %v4float %float 34%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex 35%3 = OpVariable %_ptr_Output_sk_PerVertex Output 36%int = OpTypeInt 32 1 37%_ptr_Input_int = OpTypePointer Input %int 38%sk_InstanceID = OpVariable %_ptr_Input_int Input 39%sk_VertexID = OpVariable %_ptr_Input_int Input 40%v2float = OpTypeVector %float 2 41%_ptr_Output_v2float = OpTypePointer Output %v2float 42%vcoord_Stage0 = OpVariable %_ptr_Output_v2float Output 43%void = OpTypeVoid 44%16 = OpTypeFunction %void 45%_ptr_Function_int = OpTypePointer Function %int 46%int_200 = OpConstant %int 200 47%int_929 = OpConstant %int 929 48%int_17 = OpConstant %int 17 49%int_1 = OpConstant %int 1 50%int_1637 = OpConstant %int 1637 51%int_313 = OpConstant %int 313 52%int_1901 = OpConstant %int 1901 53%_ptr_Function_float = OpTypePointer Function %float 54%float_0_03125 = OpConstant %float 0.03125 55%int_0 = OpConstant %int 0 56%int_2 = OpConstant %int 2 57%bool = OpTypeBool 58%float_0_0625 = OpConstant %float 0.0625 59%_ptr_Function_v2float = OpTypePointer Function %v2float 60%int_n1 = OpConstant %int -1 61%_ptr_Output_float = OpTypePointer Output %float 62%float_0 = OpConstant %float 0 63%float_1 = OpConstant %float 1 64%_ptr_Output_v4float = OpTypePointer Output %v4float 65%main = OpFunction %void None %16 66%17 = OpLabel 67%x = OpVariable %_ptr_Function_int Function 68%y = OpVariable %_ptr_Function_int Function 69%ileft = OpVariable %_ptr_Function_int Function 70%iright = OpVariable %_ptr_Function_int Function 71%itop = OpVariable %_ptr_Function_int Function 72%ibot = OpVariable %_ptr_Function_int Function 73%outset = OpVariable %_ptr_Function_float Function 74%69 = OpVariable %_ptr_Function_float Function 75%l = OpVariable %_ptr_Function_float Function 76%r = OpVariable %_ptr_Function_float Function 77%t = OpVariable %_ptr_Function_float Function 78%b = OpVariable %_ptr_Function_float Function 79%vertexpos = OpVariable %_ptr_Function_v2float Function 80%109 = OpVariable %_ptr_Function_float Function 81%123 = OpVariable %_ptr_Function_float Function 82%20 = OpLoad %int %sk_InstanceID 83%22 = OpSMod %int %20 %int_200 84OpStore %x %22 85%24 = OpLoad %int %sk_InstanceID 86%25 = OpSDiv %int %24 %int_200 87OpStore %y %25 88%27 = OpLoad %int %sk_InstanceID 89%29 = OpIMul %int %27 %int_929 90%31 = OpSMod %int %29 %int_17 91OpStore %ileft %31 92%33 = OpLoad %int %ileft 93%35 = OpIAdd %int %33 %int_1 94%36 = OpLoad %int %sk_InstanceID 95%38 = OpIMul %int %36 %int_1637 96%39 = OpLoad %int %ileft 97%40 = OpISub %int %int_17 %39 98%41 = OpSMod %int %38 %40 99%42 = OpIAdd %int %35 %41 100OpStore %iright %42 101%44 = OpLoad %int %sk_InstanceID 102%46 = OpIMul %int %44 %int_313 103%47 = OpSMod %int %46 %int_17 104OpStore %itop %47 105%49 = OpLoad %int %itop 106%50 = OpIAdd %int %49 %int_1 107%51 = OpLoad %int %sk_InstanceID 108%53 = OpIMul %int %51 %int_1901 109%54 = OpLoad %int %itop 110%55 = OpISub %int %int_17 %54 111%56 = OpSMod %int %53 %55 112%57 = OpIAdd %int %50 %56 113OpStore %ibot %57 114OpStore %outset %float_0_03125 115%62 = OpLoad %int %x 116%63 = OpLoad %int %y 117%64 = OpIAdd %int %62 %63 118%66 = OpSMod %int %64 %int_2 119%67 = OpIEqual %bool %int_0 %66 120OpSelectionMerge %72 None 121OpBranchConditional %67 %70 %71 122%70 = OpLabel 123%74 = OpLoad %float %outset 124%73 = OpFNegate %float %74 125OpStore %69 %73 126OpBranch %72 127%71 = OpLabel 128%75 = OpLoad %float %outset 129OpStore %69 %75 130OpBranch %72 131%72 = OpLabel 132%76 = OpLoad %float %69 133OpStore %outset %76 134%78 = OpLoad %int %ileft 135%79 = OpConvertSToF %float %78 136%81 = OpFMul %float %79 %float_0_0625 137%82 = OpLoad %float %outset 138%83 = OpFSub %float %81 %82 139OpStore %l %83 140%85 = OpLoad %int %iright 141%86 = OpConvertSToF %float %85 142%87 = OpFMul %float %86 %float_0_0625 143%88 = OpLoad %float %outset 144%89 = OpFAdd %float %87 %88 145OpStore %r %89 146%91 = OpLoad %int %itop 147%92 = OpConvertSToF %float %91 148%93 = OpFMul %float %92 %float_0_0625 149%94 = OpLoad %float %outset 150%95 = OpFSub %float %93 %94 151OpStore %t %95 152%97 = OpLoad %int %ibot 153%98 = OpConvertSToF %float %97 154%99 = OpFMul %float %98 %float_0_0625 155%100 = OpLoad %float %outset 156%101 = OpFAdd %float %99 %100 157OpStore %b %101 158%104 = OpLoad %int %x 159%105 = OpConvertSToF %float %104 160%106 = OpLoad %int %sk_VertexID 161%107 = OpSMod %int %106 %int_2 162%108 = OpIEqual %bool %int_0 %107 163OpSelectionMerge %112 None 164OpBranchConditional %108 %110 %111 165%110 = OpLabel 166%113 = OpLoad %float %l 167OpStore %109 %113 168OpBranch %112 169%111 = OpLabel 170%114 = OpLoad %float %r 171OpStore %109 %114 172OpBranch %112 173%112 = OpLabel 174%115 = OpLoad %float %109 175%116 = OpFAdd %float %105 %115 176%117 = OpAccessChain %_ptr_Function_float %vertexpos %int_0 177OpStore %117 %116 178%118 = OpLoad %int %y 179%119 = OpConvertSToF %float %118 180%120 = OpLoad %int %sk_VertexID 181%121 = OpSDiv %int %120 %int_2 182%122 = OpIEqual %bool %int_0 %121 183OpSelectionMerge %126 None 184OpBranchConditional %122 %124 %125 185%124 = OpLabel 186%127 = OpLoad %float %t 187OpStore %123 %127 188OpBranch %126 189%125 = OpLabel 190%128 = OpLoad %float %b 191OpStore %123 %128 192OpBranch %126 193%126 = OpLabel 194%129 = OpLoad %float %123 195%130 = OpFAdd %float %119 %129 196%131 = OpAccessChain %_ptr_Function_float %vertexpos %int_1 197OpStore %131 %130 198%132 = OpLoad %int %sk_VertexID 199%133 = OpSMod %int %132 %int_2 200%134 = OpIEqual %bool %int_0 %133 201%135 = OpSelect %int %134 %int_n1 %int_1 202%137 = OpConvertSToF %float %135 203%138 = OpAccessChain %_ptr_Output_float %vcoord_Stage0 %int_0 204OpStore %138 %137 205%140 = OpLoad %int %sk_VertexID 206%141 = OpSDiv %int %140 %int_2 207%142 = OpIEqual %bool %int_0 %141 208%143 = OpSelect %int %142 %int_n1 %int_1 209%144 = OpConvertSToF %float %143 210%145 = OpAccessChain %_ptr_Output_float %vcoord_Stage0 %int_1 211OpStore %145 %144 212%146 = OpLoad %v2float %vertexpos 213%147 = OpCompositeExtract %float %146 0 214%148 = OpLoad %v2float %vertexpos 215%149 = OpCompositeExtract %float %148 1 216%152 = OpCompositeConstruct %v4float %147 %149 %float_0 %float_1 217%153 = OpAccessChain %_ptr_Output_v4float %3 %int_0 218OpStore %153 %152 219OpReturn 220OpFunctionEnd 221