yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
2f21fcce
main
1#version 130 2uniform vec4 bigColor ; 3uniform vec4 bigColor1_1 ; 4uniform vec4 bigColor1_2 ; 5uniform vec4 bigColor1_3 ; 6uniform vec4 bigColor2 ; 7uniform vec4 bigColor3 ; 8uniform vec4 bigColor4 ; 9uniform vec4 bigColor5 ; 10uniform vec4 bigColor6 ; 11uniform vec4 bigColor7 ; 12uniform vec4 bigColor8 ; 13 14varying vec4 BaseColor ; 15 16uniform float d ; 17uniform float d2 ; 18uniform float d3 ; 19uniform float d4 ; 20uniform float d5 ; 21uniform float d6 ; 22uniform float d7 ; 23uniform float d8 ; 24uniform float d9 ; 25uniform float d10 ; 26uniform float d11 ; 27uniform float d12 ; 28uniform float d13 ; 29uniform float d14 ; 30uniform float d15 ; 31uniform float d16 ; 32uniform float d17 ; 33uniform float d18 ; 34uniform float d19 ; 35uniform float d20 ; 36uniform float d21 ; 37uniform float d22 ; 38uniform float d23 ; 39uniform float d24 ; 40uniform float d25 ; 41uniform float d26 ; 42uniform float d27 ; 43uniform float d28 ; 44uniform float d29 ; 45uniform float d30 ; 46uniform float d31 ; 47uniform float d32 ; 48uniform float d33 ; 49uniform float d34 ; 50 51uniform int Count ; 52 53void main () 54{ 55vec4 color = BaseColor ; 56 57// Not a real loop 58while (true) { 59if (color .x < 0.33 ) { 60color += vec4 (0.33 ); 61break ; 62 } 63if (color .x < 0.66 ) { 64color += vec4 (0.66 ); 65break ; 66 } 67 68color += vec4 (0.33 ); 69break ; 70 } 71 72// While 73while (color .x < d ) { 74color += bigColor ; 75 } 76 77// While (latchy) 78while (color .z < d ) { 79color += bigColor1_1 ; 80if (color .w < d ) 81continue ; 82 83color += bigColor1_1 ; 84 } 85 86// While (constant) 87while (color .x < 42.0 ) { 88++ color ; 89 } 90 91// While (complicated-conditional) 92while (color .w < d2 && color .y < d3 ) { 93color += bigColor1_2 ; 94 } 95 96// While (multi-exit) 97while (color .z < d3 ) { 98color += bigColor1_3 ; 99if (color .y < d4 ) 100break ; 101color += bigColor1_3 ; 102 } 103 104// For (dynamic) 105for (int i = 0 ;i < Count ;++ i ) { 106color += bigColor2 ; 107 } 108 109// Do while 110do { 111color += bigColor3 ; 112 }while (color .x < d2 ); 113 114// For (static) 115for (int i = 0 ;i < 42 ;++ i ) { 116color .z += d3 ; 117 } 118 119// For (static) flow-control 120for (int i = 0 ;i < 100 ;++ i ) { 121if (color .z < 20.0 ) 122color .x ++ ; 123else 124color .y ++ ; 125if (color .w < 20.0 ) 126if (color .z > color .y ) 1270 ;// do nothing 128 } 129 130// For (static) flow-control with latch merge 131for (int i = 0 ;i < 120 ;++ i ) { 132if (color .z < 20.0 ) 133color .x ++ ; 134else 135color .y ++ ; 136 } 137 138// For (static) latchy 139for (int i = 0 ;i < 42 ;++ i ) { 140color .z += d3 ; 141if (color .x < d4 ) 142continue ; 143++ color .w ; 144 } 145 146// For (static) multi-exit 147for (int i = 0 ;i < 42 ;++ i ) { 148color .z += d3 ; 149if (color .x < d4 ) 150break ; 151++ color .w ; 152 } 153 154// Latchy 155do { 156color += bigColor4 ; 157if (color .x < d4 ) 158continue ; 159if (color .y < d4 ) 160color .y += d4 ; 161else 162color .x += d4 ; 163 }while (color .z < d4 ); 164 165// Do while flow control 166do { 167color += bigColor5 ; 168if (color .y < d5 ) 169color .y += d5 ; 170 }while (color .x < d5 ); 171 172// If then loop 173if (color .x < d6 ) { 174while (color .y < d6 ) 175color += bigColor6 ; 176 }else { 177while (color .z < d6 ) 178color .z += bigColor6 .z ; 179 } 180 181// If then multi-exit 182if (color .x < d6 ) { 183while (color .y < d6 ) { 184color += bigColor6 ; 185if (d7 < 1.0 ) 186break ; 187 } 188 189 }else { 190while (color .z < d6 ) 191color .z += bigColor6 .z ; 192 } 193 194 195// Multi-exit 196do { 197if (d7 < 0.0 ) 198break ; 199 200color += bigColor7 ; 201 202if (d7 < 1.0 ) { 203color .z ++ ; 204break ; 205 } 206 207color += BaseColor ; 208 209 }while (true); 210 211 212// Multi-exit2 213do { 214// invariant conditional break at the top of the loop. This could be a 215// situation where unswitching the loop has no real increases in code 216// size. 217if (d8 < 0.0 ) 218break ; 219 220color += bigColor7 ; 221 222if (d8 < 1.0 ) { 223color .z ++ ; 224if (d8 < 2.0 ) { 225color .y ++ ; 226 }else { 227color .x ++ ; 228 } 229break ; 230 } 231 232color += BaseColor ; 233 234 }while (color .z < d8 ); 235 236// Deep exit 237while (color .w < d9 ) { 238if (d9 > d8 ) { 239if (color .x <=d7 ) { 240if (color .z == 5.0 ) 241color .w ++ ; 242else 243break ; 244 } 245 } 246 247 } 248 249// No end loop-back. 250while (color .z < d10 ) { 251color .y ++ ; 252if (color .y < d11 ) { 253color .z ++ ; 254if (color .w < d12 ) 255color .w ++ ; 256else 257color .x ++ ; 258continue ; 259 } 260 261color ++ ; 262break ; 263 } 264 265// Multi-continue 266while (color .x < 10.0 ) { 267color += bigColor8 ; 268 269if (color .z < d8 ) 270if (color .w < d6 ) 271continue ; 272 273color .y += bigColor8 .x ; 274 } 275 276color ++ ; 277gl_FragColor = color ; 278 279// Early Return 280while (color .x < d14 ) { 281if (color .y < d15 ) { 282return ; 283 } 284else 285color ++ ; 286 } 287 288color ++ ; 289 290while (color .w < d16 ) { 291color .w ++ ; 292 } 293 294 295// While (complicated-conditional) 296while (color .w < d2 && color .y < d3 ) { 297color += bigColor1_2 ; 298if (color .z < d3 ) 299return ; 300 } 301 302 303do { 304if (color .y < d18 ) 305return ; 306color ++ ; 307 }while (color .x < d17 ); 308 309// Early Discard 310while (color .y < d16 ) { 311if (color .w < d16 ) { 312discard ; 313 }else 314color ++ ; 315 } 316 317color ++ ; 318 319gl_FragColor = color ; 320}