1# WARNING: This file is auto-generated. Do NOT modify it manually, but rather 2# modify the generating script file. Otherwise changes will be lost! 3 4group arithmetic "Arithmetic operations" 5 6 group input_before_literal "Input before literal" 7 8 group add "Addition" 9 10 case int_to_float 11 version 320 es 12 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 13 values 14 { 15 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 16 output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 17 } 18 19 both "" 20 #version 320 es 21 precision highp float; 22 ${DECLARATIONS} 23 24 void main() 25 { 26 ${SETUP} 27 out0 = in0 + 2.0; 28 ${OUTPUT} 29 } 30 "" 31 end 32 case int_to_uint 33 version 320 es 34 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 35 values 36 { 37 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 38 output uint out0 = [ 4 | 3 | 3 | 5 | 7 ]; 39 } 40 41 both "" 42 #version 320 es 43 precision highp float; 44 ${DECLARATIONS} 45 46 void main() 47 { 48 ${SETUP} 49 out0 = in0 + 2; 50 ${OUTPUT} 51 } 52 "" 53 end 54 case int_to_vec2 55 version 320 es 56 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 57 values 58 { 59 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 60 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 61 } 62 63 both "" 64 #version 320 es 65 precision highp float; 66 ${DECLARATIONS} 67 68 void main() 69 { 70 ${SETUP} 71 out0 = in0 + vec2(1.0, 2.0); 72 ${OUTPUT} 73 } 74 "" 75 end 76 case int_to_vec3 77 version 320 es 78 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 79 values 80 { 81 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 82 output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 83 } 84 85 both "" 86 #version 320 es 87 precision highp float; 88 ${DECLARATIONS} 89 90 void main() 91 { 92 ${SETUP} 93 out0 = in0 + vec3(1.0, 2.0, 3.0); 94 ${OUTPUT} 95 } 96 "" 97 end 98 case int_to_vec4 99 version 320 es 100 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 101 values 102 { 103 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 104 output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 105 } 106 107 both "" 108 #version 320 es 109 precision highp float; 110 ${DECLARATIONS} 111 112 void main() 113 { 114 ${SETUP} 115 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 116 ${OUTPUT} 117 } 118 "" 119 end 120 case int_to_uvec2 121 version 320 es 122 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 123 values 124 { 125 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 126 output uvec2 out0 = [ uvec2(3, 4) | uvec2(2, 3) | uvec2(2, 3) | uvec2(4, 5) | uvec2(6, 7) ]; 127 } 128 129 both "" 130 #version 320 es 131 precision highp float; 132 ${DECLARATIONS} 133 134 void main() 135 { 136 ${SETUP} 137 out0 = in0 + uvec2(1, 2); 138 ${OUTPUT} 139 } 140 "" 141 end 142 case int_to_uvec3 143 version 320 es 144 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 145 values 146 { 147 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 148 output uvec3 out0 = [ uvec3(3, 4, 5) | uvec3(2, 3, 4) | uvec3(2, 3, 4) | uvec3(4, 5, 6) | uvec3(6, 7, 8) ]; 149 } 150 151 both "" 152 #version 320 es 153 precision highp float; 154 ${DECLARATIONS} 155 156 void main() 157 { 158 ${SETUP} 159 out0 = in0 + uvec3(1, 2, 3); 160 ${OUTPUT} 161 } 162 "" 163 end 164 case int_to_uvec4 165 version 320 es 166 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 167 values 168 { 169 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 170 output uvec4 out0 = [ uvec4(3, 4, 5, 6) | uvec4(2, 3, 4, 5) | uvec4(2, 3, 4, 5) | uvec4(4, 5, 6, 7) | uvec4(6, 7, 8, 9) ]; 171 } 172 173 both "" 174 #version 320 es 175 precision highp float; 176 ${DECLARATIONS} 177 178 void main() 179 { 180 ${SETUP} 181 out0 = in0 + uvec4(1, 2, 3, 4); 182 ${OUTPUT} 183 } 184 "" 185 end 186 case uint_to_float 187 version 320 es 188 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 189 values 190 { 191 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 192 output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 193 } 194 195 both "" 196 #version 320 es 197 precision highp float; 198 ${DECLARATIONS} 199 200 void main() 201 { 202 ${SETUP} 203 out0 = in0 + 2.0; 204 ${OUTPUT} 205 } 206 "" 207 end 208 case uint_to_vec2 209 version 320 es 210 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 211 values 212 { 213 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 214 output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 215 } 216 217 both "" 218 #version 320 es 219 precision highp float; 220 ${DECLARATIONS} 221 222 void main() 223 { 224 ${SETUP} 225 out0 = in0 + vec2(1.0, 2.0); 226 ${OUTPUT} 227 } 228 "" 229 end 230 case uint_to_vec3 231 version 320 es 232 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 233 values 234 { 235 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 236 output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 237 } 238 239 both "" 240 #version 320 es 241 precision highp float; 242 ${DECLARATIONS} 243 244 void main() 245 { 246 ${SETUP} 247 out0 = in0 + vec3(1.0, 2.0, 3.0); 248 ${OUTPUT} 249 } 250 "" 251 end 252 case uint_to_vec4 253 version 320 es 254 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 255 values 256 { 257 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 258 output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 259 } 260 261 both "" 262 #version 320 es 263 precision highp float; 264 ${DECLARATIONS} 265 266 void main() 267 { 268 ${SETUP} 269 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 270 ${OUTPUT} 271 } 272 "" 273 end 274 case ivec2_to_uvec2 275 version 320 es 276 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 277 values 278 { 279 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 280 output uvec2 out0 = [ uvec2(2, 4) | uvec2(3, 3) | uvec2(4, 9) ]; 281 } 282 283 both "" 284 #version 320 es 285 precision highp float; 286 ${DECLARATIONS} 287 288 void main() 289 { 290 ${SETUP} 291 out0 = in0 + uvec2(1, 2); 292 ${OUTPUT} 293 } 294 "" 295 end 296 case ivec2_to_vec2 297 version 320 es 298 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 299 values 300 { 301 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 302 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 303 } 304 305 both "" 306 #version 320 es 307 precision highp float; 308 ${DECLARATIONS} 309 310 void main() 311 { 312 ${SETUP} 313 out0 = in0 + vec2(1.0, 2.0); 314 ${OUTPUT} 315 } 316 "" 317 end 318 case uvec2_to_vec2 319 version 320 es 320 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 321 values 322 { 323 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 324 output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 325 } 326 327 both "" 328 #version 320 es 329 precision highp float; 330 ${DECLARATIONS} 331 332 void main() 333 { 334 ${SETUP} 335 out0 = in0 + vec2(1.0, 2.0); 336 ${OUTPUT} 337 } 338 "" 339 end 340 case ivec3_to_uvec3 341 version 320 es 342 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 343 values 344 { 345 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 346 output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(3, 3, 5) | uvec3(4, 9, 5) ]; 347 } 348 349 both "" 350 #version 320 es 351 precision highp float; 352 ${DECLARATIONS} 353 354 void main() 355 { 356 ${SETUP} 357 out0 = in0 + uvec3(1, 2, 3); 358 ${OUTPUT} 359 } 360 "" 361 end 362 case ivec3_to_vec3 363 version 320 es 364 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 365 values 366 { 367 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 368 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 369 } 370 371 both "" 372 #version 320 es 373 precision highp float; 374 ${DECLARATIONS} 375 376 void main() 377 { 378 ${SETUP} 379 out0 = in0 + vec3(1.0, 2.0, 3.0); 380 ${OUTPUT} 381 } 382 "" 383 end 384 case uvec3_to_vec3 385 version 320 es 386 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 387 values 388 { 389 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 390 output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 391 } 392 393 both "" 394 #version 320 es 395 precision highp float; 396 ${DECLARATIONS} 397 398 void main() 399 { 400 ${SETUP} 401 out0 = in0 + vec3(1.0, 2.0, 3.0); 402 ${OUTPUT} 403 } 404 "" 405 end 406 case ivec4_to_uvec4 407 version 320 es 408 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 409 values 410 { 411 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 412 output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(3, 3, 5, 10) | uvec4(4, 9, 5, 9) ]; 413 } 414 415 both "" 416 #version 320 es 417 precision highp float; 418 ${DECLARATIONS} 419 420 void main() 421 { 422 ${SETUP} 423 out0 = in0 + uvec4(1, 2, 3, 4); 424 ${OUTPUT} 425 } 426 "" 427 end 428 case ivec4_to_vec4 429 version 320 es 430 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 431 values 432 { 433 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 434 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 435 } 436 437 both "" 438 #version 320 es 439 precision highp float; 440 ${DECLARATIONS} 441 442 void main() 443 { 444 ${SETUP} 445 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 446 ${OUTPUT} 447 } 448 "" 449 end 450 case uvec4_to_vec4 451 version 320 es 452 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 453 values 454 { 455 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 456 output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 457 } 458 459 both "" 460 #version 320 es 461 precision highp float; 462 ${DECLARATIONS} 463 464 void main() 465 { 466 ${SETUP} 467 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 468 ${OUTPUT} 469 } 470 "" 471 end 472 473 end # add 474 group sub "Subtraction" 475 476 case int_to_float 477 version 320 es 478 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 479 values 480 { 481 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 482 output float out0 = [ 0.0 | -1.0 | -1.0 | 1.0 | 3.0 ]; 483 } 484 485 both "" 486 #version 320 es 487 precision highp float; 488 ${DECLARATIONS} 489 490 void main() 491 { 492 ${SETUP} 493 out0 = in0 - 2.0; 494 ${OUTPUT} 495 } 496 "" 497 end 498 case int_to_vec2 499 version 320 es 500 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 501 values 502 { 503 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 504 output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, -1.0) | vec2(0.0, -1.0) | vec2(2.0, 1.0) | vec2(4.0, 3.0) ]; 505 } 506 507 both "" 508 #version 320 es 509 precision highp float; 510 ${DECLARATIONS} 511 512 void main() 513 { 514 ${SETUP} 515 out0 = in0 - vec2(1.0, 2.0); 516 ${OUTPUT} 517 } 518 "" 519 end 520 case int_to_vec3 521 version 320 es 522 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 523 values 524 { 525 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 526 output vec3 out0 = [ vec3(1.0, 0.0, -1.0) | vec3(0.0, -1.0, -2.0) | vec3(0.0, -1.0, -2.0) | vec3(2.0, 1.0, 0.0) | vec3(4.0, 3.0, 2.0) ]; 527 } 528 529 both "" 530 #version 320 es 531 precision highp float; 532 ${DECLARATIONS} 533 534 void main() 535 { 536 ${SETUP} 537 out0 = in0 - vec3(1.0, 2.0, 3.0); 538 ${OUTPUT} 539 } 540 "" 541 end 542 case int_to_vec4 543 version 320 es 544 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 545 values 546 { 547 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 548 output vec4 out0 = [ vec4(1.0, 0.0, -1.0, -2.0) | vec4(0.0, -1.0, -2.0, -3.0) | vec4(0.0, -1.0, -2.0, -3.0) | vec4(2.0, 1.0, 0.0, -1.0) | vec4(4.0, 3.0, 2.0, 1.0) ]; 549 } 550 551 both "" 552 #version 320 es 553 precision highp float; 554 ${DECLARATIONS} 555 556 void main() 557 { 558 ${SETUP} 559 out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 560 ${OUTPUT} 561 } 562 "" 563 end 564 case uint_to_float 565 version 320 es 566 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 567 values 568 { 569 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 570 output float out0 = [ -1.0 | 1.0 | 2.0 | 5.0 | 9.0 ]; 571 } 572 573 both "" 574 #version 320 es 575 precision highp float; 576 ${DECLARATIONS} 577 578 void main() 579 { 580 ${SETUP} 581 out0 = in0 - 2.0; 582 ${OUTPUT} 583 } 584 "" 585 end 586 case uint_to_vec2 587 version 320 es 588 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 589 values 590 { 591 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 592 output vec2 out0 = [ vec2(0.0, -1.0) | vec2(2.0, 1.0) | vec2(3.0, 2.0) | vec2(6.0, 5.0) | vec2(10.0, 9.0) ]; 593 } 594 595 both "" 596 #version 320 es 597 precision highp float; 598 ${DECLARATIONS} 599 600 void main() 601 { 602 ${SETUP} 603 out0 = in0 - vec2(1.0, 2.0); 604 ${OUTPUT} 605 } 606 "" 607 end 608 case uint_to_vec3 609 version 320 es 610 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 611 values 612 { 613 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 614 output vec3 out0 = [ vec3(0.0, -1.0, -2.0) | vec3(2.0, 1.0, 0.0) | vec3(3.0, 2.0, 1.0) | vec3(6.0, 5.0, 4.0) | vec3(10.0, 9.0, 8.0) ]; 615 } 616 617 both "" 618 #version 320 es 619 precision highp float; 620 ${DECLARATIONS} 621 622 void main() 623 { 624 ${SETUP} 625 out0 = in0 - vec3(1.0, 2.0, 3.0); 626 ${OUTPUT} 627 } 628 "" 629 end 630 case uint_to_vec4 631 version 320 es 632 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 633 values 634 { 635 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 636 output vec4 out0 = [ vec4(0.0, -1.0, -2.0, -3.0) | vec4(2.0, 1.0, 0.0, -1.0) | vec4(3.0, 2.0, 1.0, 0.0) | vec4(6.0, 5.0, 4.0, 3.0) | vec4(10.0, 9.0, 8.0, 7.0) ]; 637 } 638 639 both "" 640 #version 320 es 641 precision highp float; 642 ${DECLARATIONS} 643 644 void main() 645 { 646 ${SETUP} 647 out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 648 ${OUTPUT} 649 } 650 "" 651 end 652 case ivec2_to_vec2 653 version 320 es 654 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 655 values 656 { 657 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 658 output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, -1.0) | vec2(2.0, 5.0) ]; 659 } 660 661 both "" 662 #version 320 es 663 precision highp float; 664 ${DECLARATIONS} 665 666 void main() 667 { 668 ${SETUP} 669 out0 = in0 - vec2(1.0, 2.0); 670 ${OUTPUT} 671 } 672 "" 673 end 674 case uvec2_to_vec2 675 version 320 es 676 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 677 values 678 { 679 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 680 output vec2 out0 = [ vec2(1.0, 1.0) | vec2(3.0, 4.0) | vec2(0.0, 11.0) ]; 681 } 682 683 both "" 684 #version 320 es 685 precision highp float; 686 ${DECLARATIONS} 687 688 void main() 689 { 690 ${SETUP} 691 out0 = in0 - vec2(1.0, 2.0); 692 ${OUTPUT} 693 } 694 "" 695 end 696 case ivec3_to_vec3 697 version 320 es 698 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 699 values 700 { 701 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 702 output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, -1.0, -1.0) | vec3(2.0, 5.0, -1.0) ]; 703 } 704 705 both "" 706 #version 320 es 707 precision highp float; 708 ${DECLARATIONS} 709 710 void main() 711 { 712 ${SETUP} 713 out0 = in0 - vec3(1.0, 2.0, 3.0); 714 ${OUTPUT} 715 } 716 "" 717 end 718 case uvec3_to_vec3 719 version 320 es 720 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 721 values 722 { 723 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 724 output vec3 out0 = [ vec3(1.0, 1.0, 2.0) | vec3(3.0, 4.0, -1.0) | vec3(0.0, 11.0, 4.0) ]; 725 } 726 727 both "" 728 #version 320 es 729 precision highp float; 730 ${DECLARATIONS} 731 732 void main() 733 { 734 ${SETUP} 735 out0 = in0 - vec3(1.0, 2.0, 3.0); 736 ${OUTPUT} 737 } 738 "" 739 end 740 case ivec4_to_vec4 741 version 320 es 742 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 743 values 744 { 745 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 746 output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, -1.0, -1.0, 2.0) | vec4(2.0, 5.0, -1.0, 1.0) ]; 747 } 748 749 both "" 750 #version 320 es 751 precision highp float; 752 ${DECLARATIONS} 753 754 void main() 755 { 756 ${SETUP} 757 out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 758 ${OUTPUT} 759 } 760 "" 761 end 762 case uvec4_to_vec4 763 version 320 es 764 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 765 values 766 { 767 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 768 output vec4 out0 = [ vec4(1.0, 1.0, 2.0, 4.0) | vec4(3.0, 4.0, -1.0, 5.0) | vec4(0.0, 11.0, 4.0, 0.0) ]; 769 } 770 771 both "" 772 #version 320 es 773 precision highp float; 774 ${DECLARATIONS} 775 776 void main() 777 { 778 ${SETUP} 779 out0 = in0 - vec4(1.0, 2.0, 3.0, 4.0); 780 ${OUTPUT} 781 } 782 "" 783 end 784 785 end # sub 786 group mul "Multiplication" 787 788 case int_to_float 789 version 320 es 790 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 791 values 792 { 793 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 794 output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 795 } 796 797 both "" 798 #version 320 es 799 precision highp float; 800 ${DECLARATIONS} 801 802 void main() 803 { 804 ${SETUP} 805 out0 = in0 * 2.0; 806 ${OUTPUT} 807 } 808 "" 809 end 810 case int_to_uint 811 version 320 es 812 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 813 values 814 { 815 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 816 output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 817 } 818 819 both "" 820 #version 320 es 821 precision highp float; 822 ${DECLARATIONS} 823 824 void main() 825 { 826 ${SETUP} 827 out0 = in0 * 2; 828 ${OUTPUT} 829 } 830 "" 831 end 832 case int_to_vec2 833 version 320 es 834 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 835 values 836 { 837 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 838 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(5.0, 10.0) ]; 839 } 840 841 both "" 842 #version 320 es 843 precision highp float; 844 ${DECLARATIONS} 845 846 void main() 847 { 848 ${SETUP} 849 out0 = in0 * vec2(1.0, 2.0); 850 ${OUTPUT} 851 } 852 "" 853 end 854 case int_to_vec3 855 version 320 es 856 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 857 values 858 { 859 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 860 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(5.0, 10.0, 15.0) ]; 861 } 862 863 both "" 864 #version 320 es 865 precision highp float; 866 ${DECLARATIONS} 867 868 void main() 869 { 870 ${SETUP} 871 out0 = in0 * vec3(1.0, 2.0, 3.0); 872 ${OUTPUT} 873 } 874 "" 875 end 876 case int_to_vec4 877 version 320 es 878 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 879 values 880 { 881 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 882 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(5.0, 10.0, 15.0, 20.0) ]; 883 } 884 885 both "" 886 #version 320 es 887 precision highp float; 888 ${DECLARATIONS} 889 890 void main() 891 { 892 ${SETUP} 893 out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 894 ${OUTPUT} 895 } 896 "" 897 end 898 case int_to_uvec2 899 version 320 es 900 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 901 values 902 { 903 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 904 output uvec2 out0 = [ uvec2(2, 4) | uvec2(1, 2) | uvec2(1, 2) | uvec2(3, 6) | uvec2(5, 10) ]; 905 } 906 907 both "" 908 #version 320 es 909 precision highp float; 910 ${DECLARATIONS} 911 912 void main() 913 { 914 ${SETUP} 915 out0 = in0 * uvec2(1, 2); 916 ${OUTPUT} 917 } 918 "" 919 end 920 case int_to_uvec3 921 version 320 es 922 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 923 values 924 { 925 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 926 output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(3, 6, 9) | uvec3(5, 10, 15) ]; 927 } 928 929 both "" 930 #version 320 es 931 precision highp float; 932 ${DECLARATIONS} 933 934 void main() 935 { 936 ${SETUP} 937 out0 = in0 * uvec3(1, 2, 3); 938 ${OUTPUT} 939 } 940 "" 941 end 942 case int_to_uvec4 943 version 320 es 944 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 945 values 946 { 947 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 948 output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(3, 6, 9, 12) | uvec4(5, 10, 15, 20) ]; 949 } 950 951 both "" 952 #version 320 es 953 precision highp float; 954 ${DECLARATIONS} 955 956 void main() 957 { 958 ${SETUP} 959 out0 = in0 * uvec4(1, 2, 3, 4); 960 ${OUTPUT} 961 } 962 "" 963 end 964 case uint_to_float 965 version 320 es 966 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 967 values 968 { 969 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 970 output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 971 } 972 973 both "" 974 #version 320 es 975 precision highp float; 976 ${DECLARATIONS} 977 978 void main() 979 { 980 ${SETUP} 981 out0 = in0 * 2.0; 982 ${OUTPUT} 983 } 984 "" 985 end 986 case uint_to_vec2 987 version 320 es 988 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 989 values 990 { 991 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 992 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(4.0, 8.0) | vec2(7.0, 14.0) | vec2(11.0, 22.0) ]; 993 } 994 995 both "" 996 #version 320 es 997 precision highp float; 998 ${DECLARATIONS} 999 1000 void main() 1001 { 1002 ${SETUP} 1003 out0 = in0 * vec2(1.0, 2.0); 1004 ${OUTPUT} 1005 } 1006 "" 1007 end 1008 case uint_to_vec3 1009 version 320 es 1010 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1011 values 1012 { 1013 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1014 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(4.0, 8.0, 12.0) | vec3(7.0, 14.0, 21.0) | vec3(11.0, 22.0, 33.0) ]; 1015 } 1016 1017 both "" 1018 #version 320 es 1019 precision highp float; 1020 ${DECLARATIONS} 1021 1022 void main() 1023 { 1024 ${SETUP} 1025 out0 = in0 * vec3(1.0, 2.0, 3.0); 1026 ${OUTPUT} 1027 } 1028 "" 1029 end 1030 case uint_to_vec4 1031 version 320 es 1032 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1033 values 1034 { 1035 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1036 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(4.0, 8.0, 12.0, 16.0) | vec4(7.0, 14.0, 21.0, 28.0) | vec4(11.0, 22.0, 33.0, 44.0) ]; 1037 } 1038 1039 both "" 1040 #version 320 es 1041 precision highp float; 1042 ${DECLARATIONS} 1043 1044 void main() 1045 { 1046 ${SETUP} 1047 out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1048 ${OUTPUT} 1049 } 1050 "" 1051 end 1052 case ivec2_to_uvec2 1053 version 320 es 1054 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1055 values 1056 { 1057 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1058 output uvec2 out0 = [ uvec2(1, 4) | uvec2(2, 2) | uvec2(3, 14) ]; 1059 } 1060 1061 both "" 1062 #version 320 es 1063 precision highp float; 1064 ${DECLARATIONS} 1065 1066 void main() 1067 { 1068 ${SETUP} 1069 out0 = in0 * uvec2(1, 2); 1070 ${OUTPUT} 1071 } 1072 "" 1073 end 1074 case ivec2_to_vec2 1075 version 320 es 1076 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1077 values 1078 { 1079 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1080 output vec2 out0 = [ vec2(1.0, 4.0) | vec2(2.0, 2.0) | vec2(3.0, 14.0) ]; 1081 } 1082 1083 both "" 1084 #version 320 es 1085 precision highp float; 1086 ${DECLARATIONS} 1087 1088 void main() 1089 { 1090 ${SETUP} 1091 out0 = in0 * vec2(1.0, 2.0); 1092 ${OUTPUT} 1093 } 1094 "" 1095 end 1096 case uvec2_to_vec2 1097 version 320 es 1098 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1099 values 1100 { 1101 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 1102 output vec2 out0 = [ vec2(2.0, 6.0) | vec2(4.0, 12.0) | vec2(1.0, 26.0) ]; 1103 } 1104 1105 both "" 1106 #version 320 es 1107 precision highp float; 1108 ${DECLARATIONS} 1109 1110 void main() 1111 { 1112 ${SETUP} 1113 out0 = in0 * vec2(1.0, 2.0); 1114 ${OUTPUT} 1115 } 1116 "" 1117 end 1118 case ivec3_to_uvec3 1119 version 320 es 1120 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1121 values 1122 { 1123 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1124 output uvec3 out0 = [ uvec3(1, 4, 9) | uvec3(2, 2, 6) | uvec3(3, 14, 6) ]; 1125 } 1126 1127 both "" 1128 #version 320 es 1129 precision highp float; 1130 ${DECLARATIONS} 1131 1132 void main() 1133 { 1134 ${SETUP} 1135 out0 = in0 * uvec3(1, 2, 3); 1136 ${OUTPUT} 1137 } 1138 "" 1139 end 1140 case ivec3_to_vec3 1141 version 320 es 1142 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1143 values 1144 { 1145 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1146 output vec3 out0 = [ vec3(1.0, 4.0, 9.0) | vec3(2.0, 2.0, 6.0) | vec3(3.0, 14.0, 6.0) ]; 1147 } 1148 1149 both "" 1150 #version 320 es 1151 precision highp float; 1152 ${DECLARATIONS} 1153 1154 void main() 1155 { 1156 ${SETUP} 1157 out0 = in0 * vec3(1.0, 2.0, 3.0); 1158 ${OUTPUT} 1159 } 1160 "" 1161 end 1162 case uvec3_to_vec3 1163 version 320 es 1164 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1165 values 1166 { 1167 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 1168 output vec3 out0 = [ vec3(2.0, 6.0, 15.0) | vec3(4.0, 12.0, 6.0) | vec3(1.0, 26.0, 21.0) ]; 1169 } 1170 1171 both "" 1172 #version 320 es 1173 precision highp float; 1174 ${DECLARATIONS} 1175 1176 void main() 1177 { 1178 ${SETUP} 1179 out0 = in0 * vec3(1.0, 2.0, 3.0); 1180 ${OUTPUT} 1181 } 1182 "" 1183 end 1184 case ivec4_to_uvec4 1185 version 320 es 1186 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1187 values 1188 { 1189 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1190 output uvec4 out0 = [ uvec4(1, 4, 9, 16) | uvec4(2, 2, 6, 24) | uvec4(3, 14, 6, 20) ]; 1191 } 1192 1193 both "" 1194 #version 320 es 1195 precision highp float; 1196 ${DECLARATIONS} 1197 1198 void main() 1199 { 1200 ${SETUP} 1201 out0 = in0 * uvec4(1, 2, 3, 4); 1202 ${OUTPUT} 1203 } 1204 "" 1205 end 1206 case ivec4_to_vec4 1207 version 320 es 1208 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1209 values 1210 { 1211 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1212 output vec4 out0 = [ vec4(1.0, 4.0, 9.0, 16.0) | vec4(2.0, 2.0, 6.0, 24.0) | vec4(3.0, 14.0, 6.0, 20.0) ]; 1213 } 1214 1215 both "" 1216 #version 320 es 1217 precision highp float; 1218 ${DECLARATIONS} 1219 1220 void main() 1221 { 1222 ${SETUP} 1223 out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1224 ${OUTPUT} 1225 } 1226 "" 1227 end 1228 case uvec4_to_vec4 1229 version 320 es 1230 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1231 values 1232 { 1233 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 1234 output vec4 out0 = [ vec4(2.0, 6.0, 15.0, 32.0) | vec4(4.0, 12.0, 6.0, 36.0) | vec4(1.0, 26.0, 21.0, 16.0) ]; 1235 } 1236 1237 both "" 1238 #version 320 es 1239 precision highp float; 1240 ${DECLARATIONS} 1241 1242 void main() 1243 { 1244 ${SETUP} 1245 out0 = in0 * vec4(1.0, 2.0, 3.0, 4.0); 1246 ${OUTPUT} 1247 } 1248 "" 1249 end 1250 1251 end # mul 1252 group div "Division" 1253 1254 case int_to_float 1255 version 320 es 1256 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1257 values 1258 { 1259 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1260 output float out0 = [ 1.0 | 0.5 | 0.5 | 1.5 | 2.5 ]; 1261 } 1262 1263 both "" 1264 #version 320 es 1265 precision highp float; 1266 ${DECLARATIONS} 1267 1268 void main() 1269 { 1270 ${SETUP} 1271 out0 = in0 / 2.0; 1272 ${OUTPUT} 1273 } 1274 "" 1275 end 1276 case int_to_uint 1277 version 320 es 1278 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1279 values 1280 { 1281 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1282 output uint out0 = [ 1 | 0 | 0 | 1 | 2 ]; 1283 } 1284 1285 both "" 1286 #version 320 es 1287 precision highp float; 1288 ${DECLARATIONS} 1289 1290 void main() 1291 { 1292 ${SETUP} 1293 out0 = in0 / 2; 1294 ${OUTPUT} 1295 } 1296 "" 1297 end 1298 case int_to_vec2 1299 version 320 es 1300 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1301 values 1302 { 1303 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1304 output vec2 out0 = [ vec2(2.0, 1.0) | vec2(1.0, 0.5) | vec2(1.0, 0.5) | vec2(3.0, 1.5) | vec2(5.0, 2.5) ]; 1305 } 1306 1307 both "" 1308 #version 320 es 1309 precision highp float; 1310 ${DECLARATIONS} 1311 1312 void main() 1313 { 1314 ${SETUP} 1315 out0 = in0 / vec2(1.0, 2.0); 1316 ${OUTPUT} 1317 } 1318 "" 1319 end 1320 case int_to_vec3 1321 version 320 es 1322 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1323 values 1324 { 1325 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1326 output vec3 out0 = [ vec3(2.0, 1.0, 0.666666666667) | vec3(1.0, 0.5, 0.333333333333) | vec3(1.0, 0.5, 0.333333333333) | vec3(3.0, 1.5, 1.0) | vec3(5.0, 2.5, 1.66666666667) ]; 1327 } 1328 1329 both "" 1330 #version 320 es 1331 precision highp float; 1332 ${DECLARATIONS} 1333 1334 void main() 1335 { 1336 ${SETUP} 1337 out0 = in0 / vec3(1.0, 2.0, 3.0); 1338 ${OUTPUT} 1339 } 1340 "" 1341 end 1342 case int_to_vec4 1343 version 320 es 1344 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1345 values 1346 { 1347 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1348 output vec4 out0 = [ vec4(2.0, 1.0, 0.666666666667, 0.5) | vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(3.0, 1.5, 1.0, 0.75) | vec4(5.0, 2.5, 1.66666666667, 1.25) ]; 1349 } 1350 1351 both "" 1352 #version 320 es 1353 precision highp float; 1354 ${DECLARATIONS} 1355 1356 void main() 1357 { 1358 ${SETUP} 1359 out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1360 ${OUTPUT} 1361 } 1362 "" 1363 end 1364 case int_to_uvec2 1365 version 320 es 1366 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1367 values 1368 { 1369 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1370 output uvec2 out0 = [ uvec2(2, 1) | uvec2(1, 0) | uvec2(1, 0) | uvec2(3, 1) | uvec2(5, 2) ]; 1371 } 1372 1373 both "" 1374 #version 320 es 1375 precision highp float; 1376 ${DECLARATIONS} 1377 1378 void main() 1379 { 1380 ${SETUP} 1381 out0 = in0 / uvec2(1, 2); 1382 ${OUTPUT} 1383 } 1384 "" 1385 end 1386 case int_to_uvec3 1387 version 320 es 1388 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1389 values 1390 { 1391 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1392 output uvec3 out0 = [ uvec3(2, 1, 0) | uvec3(1, 0, 0) | uvec3(1, 0, 0) | uvec3(3, 1, 1) | uvec3(5, 2, 1) ]; 1393 } 1394 1395 both "" 1396 #version 320 es 1397 precision highp float; 1398 ${DECLARATIONS} 1399 1400 void main() 1401 { 1402 ${SETUP} 1403 out0 = in0 / uvec3(1, 2, 3); 1404 ${OUTPUT} 1405 } 1406 "" 1407 end 1408 case int_to_uvec4 1409 version 320 es 1410 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1411 values 1412 { 1413 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1414 output uvec4 out0 = [ uvec4(2, 1, 0, 0) | uvec4(1, 0, 0, 0) | uvec4(1, 0, 0, 0) | uvec4(3, 1, 1, 0) | uvec4(5, 2, 1, 1) ]; 1415 } 1416 1417 both "" 1418 #version 320 es 1419 precision highp float; 1420 ${DECLARATIONS} 1421 1422 void main() 1423 { 1424 ${SETUP} 1425 out0 = in0 / uvec4(1, 2, 3, 4); 1426 ${OUTPUT} 1427 } 1428 "" 1429 end 1430 case uint_to_float 1431 version 320 es 1432 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1433 values 1434 { 1435 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1436 output float out0 = [ 0.5 | 1.5 | 2.0 | 3.5 | 5.5 ]; 1437 } 1438 1439 both "" 1440 #version 320 es 1441 precision highp float; 1442 ${DECLARATIONS} 1443 1444 void main() 1445 { 1446 ${SETUP} 1447 out0 = in0 / 2.0; 1448 ${OUTPUT} 1449 } 1450 "" 1451 end 1452 case uint_to_vec2 1453 version 320 es 1454 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1455 values 1456 { 1457 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1458 output vec2 out0 = [ vec2(1.0, 0.5) | vec2(3.0, 1.5) | vec2(4.0, 2.0) | vec2(7.0, 3.5) | vec2(11.0, 5.5) ]; 1459 } 1460 1461 both "" 1462 #version 320 es 1463 precision highp float; 1464 ${DECLARATIONS} 1465 1466 void main() 1467 { 1468 ${SETUP} 1469 out0 = in0 / vec2(1.0, 2.0); 1470 ${OUTPUT} 1471 } 1472 "" 1473 end 1474 case uint_to_vec3 1475 version 320 es 1476 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1477 values 1478 { 1479 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1480 output vec3 out0 = [ vec3(1.0, 0.5, 0.333333333333) | vec3(3.0, 1.5, 1.0) | vec3(4.0, 2.0, 1.33333333333) | vec3(7.0, 3.5, 2.33333333333) | vec3(11.0, 5.5, 3.66666666667) ]; 1481 } 1482 1483 both "" 1484 #version 320 es 1485 precision highp float; 1486 ${DECLARATIONS} 1487 1488 void main() 1489 { 1490 ${SETUP} 1491 out0 = in0 / vec3(1.0, 2.0, 3.0); 1492 ${OUTPUT} 1493 } 1494 "" 1495 end 1496 case uint_to_vec4 1497 version 320 es 1498 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1499 values 1500 { 1501 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1502 output vec4 out0 = [ vec4(1.0, 0.5, 0.333333333333, 0.25) | vec4(3.0, 1.5, 1.0, 0.75) | vec4(4.0, 2.0, 1.33333333333, 1.0) | vec4(7.0, 3.5, 2.33333333333, 1.75) | vec4(11.0, 5.5, 3.66666666667, 2.75) ]; 1503 } 1504 1505 both "" 1506 #version 320 es 1507 precision highp float; 1508 ${DECLARATIONS} 1509 1510 void main() 1511 { 1512 ${SETUP} 1513 out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1514 ${OUTPUT} 1515 } 1516 "" 1517 end 1518 case ivec2_to_uvec2 1519 version 320 es 1520 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1521 values 1522 { 1523 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1524 output uvec2 out0 = [ uvec2(1, 1) | uvec2(2, 0) | uvec2(3, 3) ]; 1525 } 1526 1527 both "" 1528 #version 320 es 1529 precision highp float; 1530 ${DECLARATIONS} 1531 1532 void main() 1533 { 1534 ${SETUP} 1535 out0 = in0 / uvec2(1, 2); 1536 ${OUTPUT} 1537 } 1538 "" 1539 end 1540 case ivec2_to_vec2 1541 version 320 es 1542 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1543 values 1544 { 1545 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1546 output vec2 out0 = [ vec2(1.0, 1.0) | vec2(2.0, 0.5) | vec2(3.0, 3.5) ]; 1547 } 1548 1549 both "" 1550 #version 320 es 1551 precision highp float; 1552 ${DECLARATIONS} 1553 1554 void main() 1555 { 1556 ${SETUP} 1557 out0 = in0 / vec2(1.0, 2.0); 1558 ${OUTPUT} 1559 } 1560 "" 1561 end 1562 case uvec2_to_vec2 1563 version 320 es 1564 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1565 values 1566 { 1567 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 1568 output vec2 out0 = [ vec2(2.0, 1.5) | vec2(4.0, 3.0) | vec2(1.0, 6.5) ]; 1569 } 1570 1571 both "" 1572 #version 320 es 1573 precision highp float; 1574 ${DECLARATIONS} 1575 1576 void main() 1577 { 1578 ${SETUP} 1579 out0 = in0 / vec2(1.0, 2.0); 1580 ${OUTPUT} 1581 } 1582 "" 1583 end 1584 case ivec3_to_uvec3 1585 version 320 es 1586 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1587 values 1588 { 1589 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1590 output uvec3 out0 = [ uvec3(1, 1, 1) | uvec3(2, 0, 0) | uvec3(3, 3, 0) ]; 1591 } 1592 1593 both "" 1594 #version 320 es 1595 precision highp float; 1596 ${DECLARATIONS} 1597 1598 void main() 1599 { 1600 ${SETUP} 1601 out0 = in0 / uvec3(1, 2, 3); 1602 ${OUTPUT} 1603 } 1604 "" 1605 end 1606 case ivec3_to_vec3 1607 version 320 es 1608 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1609 values 1610 { 1611 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 1612 output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(2.0, 0.5, 0.666666666667) | vec3(3.0, 3.5, 0.666666666667) ]; 1613 } 1614 1615 both "" 1616 #version 320 es 1617 precision highp float; 1618 ${DECLARATIONS} 1619 1620 void main() 1621 { 1622 ${SETUP} 1623 out0 = in0 / vec3(1.0, 2.0, 3.0); 1624 ${OUTPUT} 1625 } 1626 "" 1627 end 1628 case uvec3_to_vec3 1629 version 320 es 1630 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1631 values 1632 { 1633 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 1634 output vec3 out0 = [ vec3(2.0, 1.5, 1.66666666667) | vec3(4.0, 3.0, 0.666666666667) | vec3(1.0, 6.5, 2.33333333333) ]; 1635 } 1636 1637 both "" 1638 #version 320 es 1639 precision highp float; 1640 ${DECLARATIONS} 1641 1642 void main() 1643 { 1644 ${SETUP} 1645 out0 = in0 / vec3(1.0, 2.0, 3.0); 1646 ${OUTPUT} 1647 } 1648 "" 1649 end 1650 case ivec4_to_uvec4 1651 version 320 es 1652 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1653 values 1654 { 1655 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1656 output uvec4 out0 = [ uvec4(1, 1, 1, 1) | uvec4(2, 0, 0, 1) | uvec4(3, 3, 0, 1) ]; 1657 } 1658 1659 both "" 1660 #version 320 es 1661 precision highp float; 1662 ${DECLARATIONS} 1663 1664 void main() 1665 { 1666 ${SETUP} 1667 out0 = in0 / uvec4(1, 2, 3, 4); 1668 ${OUTPUT} 1669 } 1670 "" 1671 end 1672 case ivec4_to_vec4 1673 version 320 es 1674 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1675 values 1676 { 1677 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 1678 output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 0.5, 0.666666666667, 1.5) | vec4(3.0, 3.5, 0.666666666667, 1.25) ]; 1679 } 1680 1681 both "" 1682 #version 320 es 1683 precision highp float; 1684 ${DECLARATIONS} 1685 1686 void main() 1687 { 1688 ${SETUP} 1689 out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1690 ${OUTPUT} 1691 } 1692 "" 1693 end 1694 case uvec4_to_vec4 1695 version 320 es 1696 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1697 values 1698 { 1699 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 1700 output vec4 out0 = [ vec4(2.0, 1.5, 1.66666666667, 2.0) | vec4(4.0, 3.0, 0.666666666667, 2.25) | vec4(1.0, 6.5, 2.33333333333, 1.0) ]; 1701 } 1702 1703 both "" 1704 #version 320 es 1705 precision highp float; 1706 ${DECLARATIONS} 1707 1708 void main() 1709 { 1710 ${SETUP} 1711 out0 = in0 / vec4(1.0, 2.0, 3.0, 4.0); 1712 ${OUTPUT} 1713 } 1714 "" 1715 end 1716 1717 end # div 1718 1719 end # input_before_literal 1720 group literal_before_input "Literal before input" 1721 1722 group add "Addition" 1723 1724 case int_to_float 1725 version 320 es 1726 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1727 values 1728 { 1729 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1730 output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 1731 } 1732 1733 both "" 1734 #version 320 es 1735 precision highp float; 1736 ${DECLARATIONS} 1737 1738 void main() 1739 { 1740 ${SETUP} 1741 out0 = 2.0 + in0; 1742 ${OUTPUT} 1743 } 1744 "" 1745 end 1746 case int_to_uint 1747 version 320 es 1748 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1749 values 1750 { 1751 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1752 output uint out0 = [ 4 | 3 | 3 | 5 | 7 ]; 1753 } 1754 1755 both "" 1756 #version 320 es 1757 precision highp float; 1758 ${DECLARATIONS} 1759 1760 void main() 1761 { 1762 ${SETUP} 1763 out0 = 2 + in0; 1764 ${OUTPUT} 1765 } 1766 "" 1767 end 1768 case int_to_vec2 1769 version 320 es 1770 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1771 values 1772 { 1773 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1774 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 1775 } 1776 1777 both "" 1778 #version 320 es 1779 precision highp float; 1780 ${DECLARATIONS} 1781 1782 void main() 1783 { 1784 ${SETUP} 1785 out0 = vec2(1.0, 2.0) + in0; 1786 ${OUTPUT} 1787 } 1788 "" 1789 end 1790 case int_to_vec3 1791 version 320 es 1792 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1793 values 1794 { 1795 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1796 output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 1797 } 1798 1799 both "" 1800 #version 320 es 1801 precision highp float; 1802 ${DECLARATIONS} 1803 1804 void main() 1805 { 1806 ${SETUP} 1807 out0 = vec3(1.0, 2.0, 3.0) + in0; 1808 ${OUTPUT} 1809 } 1810 "" 1811 end 1812 case int_to_vec4 1813 version 320 es 1814 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1815 values 1816 { 1817 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1818 output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 1819 } 1820 1821 both "" 1822 #version 320 es 1823 precision highp float; 1824 ${DECLARATIONS} 1825 1826 void main() 1827 { 1828 ${SETUP} 1829 out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 1830 ${OUTPUT} 1831 } 1832 "" 1833 end 1834 case int_to_uvec2 1835 version 320 es 1836 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1837 values 1838 { 1839 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1840 output uvec2 out0 = [ uvec2(3, 4) | uvec2(2, 3) | uvec2(2, 3) | uvec2(4, 5) | uvec2(6, 7) ]; 1841 } 1842 1843 both "" 1844 #version 320 es 1845 precision highp float; 1846 ${DECLARATIONS} 1847 1848 void main() 1849 { 1850 ${SETUP} 1851 out0 = uvec2(1, 2) + in0; 1852 ${OUTPUT} 1853 } 1854 "" 1855 end 1856 case int_to_uvec3 1857 version 320 es 1858 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1859 values 1860 { 1861 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1862 output uvec3 out0 = [ uvec3(3, 4, 5) | uvec3(2, 3, 4) | uvec3(2, 3, 4) | uvec3(4, 5, 6) | uvec3(6, 7, 8) ]; 1863 } 1864 1865 both "" 1866 #version 320 es 1867 precision highp float; 1868 ${DECLARATIONS} 1869 1870 void main() 1871 { 1872 ${SETUP} 1873 out0 = uvec3(1, 2, 3) + in0; 1874 ${OUTPUT} 1875 } 1876 "" 1877 end 1878 case int_to_uvec4 1879 version 320 es 1880 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1881 values 1882 { 1883 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 1884 output uvec4 out0 = [ uvec4(3, 4, 5, 6) | uvec4(2, 3, 4, 5) | uvec4(2, 3, 4, 5) | uvec4(4, 5, 6, 7) | uvec4(6, 7, 8, 9) ]; 1885 } 1886 1887 both "" 1888 #version 320 es 1889 precision highp float; 1890 ${DECLARATIONS} 1891 1892 void main() 1893 { 1894 ${SETUP} 1895 out0 = uvec4(1, 2, 3, 4) + in0; 1896 ${OUTPUT} 1897 } 1898 "" 1899 end 1900 case uint_to_float 1901 version 320 es 1902 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1903 values 1904 { 1905 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1906 output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 1907 } 1908 1909 both "" 1910 #version 320 es 1911 precision highp float; 1912 ${DECLARATIONS} 1913 1914 void main() 1915 { 1916 ${SETUP} 1917 out0 = 2.0 + in0; 1918 ${OUTPUT} 1919 } 1920 "" 1921 end 1922 case uint_to_vec2 1923 version 320 es 1924 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1925 values 1926 { 1927 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1928 output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 1929 } 1930 1931 both "" 1932 #version 320 es 1933 precision highp float; 1934 ${DECLARATIONS} 1935 1936 void main() 1937 { 1938 ${SETUP} 1939 out0 = vec2(1.0, 2.0) + in0; 1940 ${OUTPUT} 1941 } 1942 "" 1943 end 1944 case uint_to_vec3 1945 version 320 es 1946 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1947 values 1948 { 1949 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1950 output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 1951 } 1952 1953 both "" 1954 #version 320 es 1955 precision highp float; 1956 ${DECLARATIONS} 1957 1958 void main() 1959 { 1960 ${SETUP} 1961 out0 = vec3(1.0, 2.0, 3.0) + in0; 1962 ${OUTPUT} 1963 } 1964 "" 1965 end 1966 case uint_to_vec4 1967 version 320 es 1968 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1969 values 1970 { 1971 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 1972 output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 1973 } 1974 1975 both "" 1976 #version 320 es 1977 precision highp float; 1978 ${DECLARATIONS} 1979 1980 void main() 1981 { 1982 ${SETUP} 1983 out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 1984 ${OUTPUT} 1985 } 1986 "" 1987 end 1988 case ivec2_to_uvec2 1989 version 320 es 1990 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 1991 values 1992 { 1993 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 1994 output uvec2 out0 = [ uvec2(2, 4) | uvec2(3, 3) | uvec2(4, 9) ]; 1995 } 1996 1997 both "" 1998 #version 320 es 1999 precision highp float; 2000 ${DECLARATIONS} 2001 2002 void main() 2003 { 2004 ${SETUP} 2005 out0 = uvec2(1, 2) + in0; 2006 ${OUTPUT} 2007 } 2008 "" 2009 end 2010 case ivec2_to_vec2 2011 version 320 es 2012 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2013 values 2014 { 2015 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2016 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 2017 } 2018 2019 both "" 2020 #version 320 es 2021 precision highp float; 2022 ${DECLARATIONS} 2023 2024 void main() 2025 { 2026 ${SETUP} 2027 out0 = vec2(1.0, 2.0) + in0; 2028 ${OUTPUT} 2029 } 2030 "" 2031 end 2032 case uvec2_to_vec2 2033 version 320 es 2034 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2035 values 2036 { 2037 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2038 output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 2039 } 2040 2041 both "" 2042 #version 320 es 2043 precision highp float; 2044 ${DECLARATIONS} 2045 2046 void main() 2047 { 2048 ${SETUP} 2049 out0 = vec2(1.0, 2.0) + in0; 2050 ${OUTPUT} 2051 } 2052 "" 2053 end 2054 case ivec3_to_uvec3 2055 version 320 es 2056 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2057 values 2058 { 2059 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2060 output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(3, 3, 5) | uvec3(4, 9, 5) ]; 2061 } 2062 2063 both "" 2064 #version 320 es 2065 precision highp float; 2066 ${DECLARATIONS} 2067 2068 void main() 2069 { 2070 ${SETUP} 2071 out0 = uvec3(1, 2, 3) + in0; 2072 ${OUTPUT} 2073 } 2074 "" 2075 end 2076 case ivec3_to_vec3 2077 version 320 es 2078 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2079 values 2080 { 2081 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2082 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 2083 } 2084 2085 both "" 2086 #version 320 es 2087 precision highp float; 2088 ${DECLARATIONS} 2089 2090 void main() 2091 { 2092 ${SETUP} 2093 out0 = vec3(1.0, 2.0, 3.0) + in0; 2094 ${OUTPUT} 2095 } 2096 "" 2097 end 2098 case uvec3_to_vec3 2099 version 320 es 2100 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2101 values 2102 { 2103 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2104 output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 2105 } 2106 2107 both "" 2108 #version 320 es 2109 precision highp float; 2110 ${DECLARATIONS} 2111 2112 void main() 2113 { 2114 ${SETUP} 2115 out0 = vec3(1.0, 2.0, 3.0) + in0; 2116 ${OUTPUT} 2117 } 2118 "" 2119 end 2120 case ivec4_to_uvec4 2121 version 320 es 2122 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2123 values 2124 { 2125 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2126 output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(3, 3, 5, 10) | uvec4(4, 9, 5, 9) ]; 2127 } 2128 2129 both "" 2130 #version 320 es 2131 precision highp float; 2132 ${DECLARATIONS} 2133 2134 void main() 2135 { 2136 ${SETUP} 2137 out0 = uvec4(1, 2, 3, 4) + in0; 2138 ${OUTPUT} 2139 } 2140 "" 2141 end 2142 case ivec4_to_vec4 2143 version 320 es 2144 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2145 values 2146 { 2147 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2148 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 2149 } 2150 2151 both "" 2152 #version 320 es 2153 precision highp float; 2154 ${DECLARATIONS} 2155 2156 void main() 2157 { 2158 ${SETUP} 2159 out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 2160 ${OUTPUT} 2161 } 2162 "" 2163 end 2164 case uvec4_to_vec4 2165 version 320 es 2166 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2167 values 2168 { 2169 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2170 output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 2171 } 2172 2173 both "" 2174 #version 320 es 2175 precision highp float; 2176 ${DECLARATIONS} 2177 2178 void main() 2179 { 2180 ${SETUP} 2181 out0 = vec4(1.0, 2.0, 3.0, 4.0) + in0; 2182 ${OUTPUT} 2183 } 2184 "" 2185 end 2186 2187 end # add 2188 group sub "Subtraction" 2189 2190 case int_to_float 2191 version 320 es 2192 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2193 values 2194 { 2195 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2196 output float out0 = [ 0.0 | 1.0 | 1.0 | -1.0 | -3.0 ]; 2197 } 2198 2199 both "" 2200 #version 320 es 2201 precision highp float; 2202 ${DECLARATIONS} 2203 2204 void main() 2205 { 2206 ${SETUP} 2207 out0 = 2.0 - in0; 2208 ${OUTPUT} 2209 } 2210 "" 2211 end 2212 case int_to_vec2 2213 version 320 es 2214 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2215 values 2216 { 2217 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2218 output vec2 out0 = [ vec2(-1.0, 0.0) | vec2(0.0, 1.0) | vec2(0.0, 1.0) | vec2(-2.0, -1.0) | vec2(-4.0, -3.0) ]; 2219 } 2220 2221 both "" 2222 #version 320 es 2223 precision highp float; 2224 ${DECLARATIONS} 2225 2226 void main() 2227 { 2228 ${SETUP} 2229 out0 = vec2(1.0, 2.0) - in0; 2230 ${OUTPUT} 2231 } 2232 "" 2233 end 2234 case int_to_vec3 2235 version 320 es 2236 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2237 values 2238 { 2239 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2240 output vec3 out0 = [ vec3(-1.0, 0.0, 1.0) | vec3(0.0, 1.0, 2.0) | vec3(0.0, 1.0, 2.0) | vec3(-2.0, -1.0, 0.0) | vec3(-4.0, -3.0, -2.0) ]; 2241 } 2242 2243 both "" 2244 #version 320 es 2245 precision highp float; 2246 ${DECLARATIONS} 2247 2248 void main() 2249 { 2250 ${SETUP} 2251 out0 = vec3(1.0, 2.0, 3.0) - in0; 2252 ${OUTPUT} 2253 } 2254 "" 2255 end 2256 case int_to_vec4 2257 version 320 es 2258 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2259 values 2260 { 2261 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2262 output vec4 out0 = [ vec4(-1.0, 0.0, 1.0, 2.0) | vec4(0.0, 1.0, 2.0, 3.0) | vec4(0.0, 1.0, 2.0, 3.0) | vec4(-2.0, -1.0, 0.0, 1.0) | vec4(-4.0, -3.0, -2.0, -1.0) ]; 2263 } 2264 2265 both "" 2266 #version 320 es 2267 precision highp float; 2268 ${DECLARATIONS} 2269 2270 void main() 2271 { 2272 ${SETUP} 2273 out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2274 ${OUTPUT} 2275 } 2276 "" 2277 end 2278 case uint_to_float 2279 version 320 es 2280 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2281 values 2282 { 2283 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2284 output float out0 = [ 1.0 | -1.0 | -2.0 | -5.0 | -9.0 ]; 2285 } 2286 2287 both "" 2288 #version 320 es 2289 precision highp float; 2290 ${DECLARATIONS} 2291 2292 void main() 2293 { 2294 ${SETUP} 2295 out0 = 2.0 - in0; 2296 ${OUTPUT} 2297 } 2298 "" 2299 end 2300 case uint_to_vec2 2301 version 320 es 2302 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2303 values 2304 { 2305 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2306 output vec2 out0 = [ vec2(0.0, 1.0) | vec2(-2.0, -1.0) | vec2(-3.0, -2.0) | vec2(-6.0, -5.0) | vec2(-10.0, -9.0) ]; 2307 } 2308 2309 both "" 2310 #version 320 es 2311 precision highp float; 2312 ${DECLARATIONS} 2313 2314 void main() 2315 { 2316 ${SETUP} 2317 out0 = vec2(1.0, 2.0) - in0; 2318 ${OUTPUT} 2319 } 2320 "" 2321 end 2322 case uint_to_vec3 2323 version 320 es 2324 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2325 values 2326 { 2327 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2328 output vec3 out0 = [ vec3(0.0, 1.0, 2.0) | vec3(-2.0, -1.0, 0.0) | vec3(-3.0, -2.0, -1.0) | vec3(-6.0, -5.0, -4.0) | vec3(-10.0, -9.0, -8.0) ]; 2329 } 2330 2331 both "" 2332 #version 320 es 2333 precision highp float; 2334 ${DECLARATIONS} 2335 2336 void main() 2337 { 2338 ${SETUP} 2339 out0 = vec3(1.0, 2.0, 3.0) - in0; 2340 ${OUTPUT} 2341 } 2342 "" 2343 end 2344 case uint_to_vec4 2345 version 320 es 2346 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2347 values 2348 { 2349 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2350 output vec4 out0 = [ vec4(0.0, 1.0, 2.0, 3.0) | vec4(-2.0, -1.0, 0.0, 1.0) | vec4(-3.0, -2.0, -1.0, 0.0) | vec4(-6.0, -5.0, -4.0, -3.0) | vec4(-10.0, -9.0, -8.0, -7.0) ]; 2351 } 2352 2353 both "" 2354 #version 320 es 2355 precision highp float; 2356 ${DECLARATIONS} 2357 2358 void main() 2359 { 2360 ${SETUP} 2361 out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2362 ${OUTPUT} 2363 } 2364 "" 2365 end 2366 case ivec2_to_vec2 2367 version 320 es 2368 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2369 values 2370 { 2371 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2372 output vec2 out0 = [ vec2(0.0, 0.0) | vec2(-1.0, 1.0) | vec2(-2.0, -5.0) ]; 2373 } 2374 2375 both "" 2376 #version 320 es 2377 precision highp float; 2378 ${DECLARATIONS} 2379 2380 void main() 2381 { 2382 ${SETUP} 2383 out0 = vec2(1.0, 2.0) - in0; 2384 ${OUTPUT} 2385 } 2386 "" 2387 end 2388 case uvec2_to_vec2 2389 version 320 es 2390 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2391 values 2392 { 2393 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2394 output vec2 out0 = [ vec2(-1.0, -1.0) | vec2(-3.0, -4.0) | vec2(0.0, -11.0) ]; 2395 } 2396 2397 both "" 2398 #version 320 es 2399 precision highp float; 2400 ${DECLARATIONS} 2401 2402 void main() 2403 { 2404 ${SETUP} 2405 out0 = vec2(1.0, 2.0) - in0; 2406 ${OUTPUT} 2407 } 2408 "" 2409 end 2410 case ivec3_to_vec3 2411 version 320 es 2412 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2413 values 2414 { 2415 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2416 output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(-1.0, 1.0, 1.0) | vec3(-2.0, -5.0, 1.0) ]; 2417 } 2418 2419 both "" 2420 #version 320 es 2421 precision highp float; 2422 ${DECLARATIONS} 2423 2424 void main() 2425 { 2426 ${SETUP} 2427 out0 = vec3(1.0, 2.0, 3.0) - in0; 2428 ${OUTPUT} 2429 } 2430 "" 2431 end 2432 case uvec3_to_vec3 2433 version 320 es 2434 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2435 values 2436 { 2437 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2438 output vec3 out0 = [ vec3(-1.0, -1.0, -2.0) | vec3(-3.0, -4.0, 1.0) | vec3(0.0, -11.0, -4.0) ]; 2439 } 2440 2441 both "" 2442 #version 320 es 2443 precision highp float; 2444 ${DECLARATIONS} 2445 2446 void main() 2447 { 2448 ${SETUP} 2449 out0 = vec3(1.0, 2.0, 3.0) - in0; 2450 ${OUTPUT} 2451 } 2452 "" 2453 end 2454 case ivec4_to_vec4 2455 version 320 es 2456 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2457 values 2458 { 2459 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2460 output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(-1.0, 1.0, 1.0, -2.0) | vec4(-2.0, -5.0, 1.0, -1.0) ]; 2461 } 2462 2463 both "" 2464 #version 320 es 2465 precision highp float; 2466 ${DECLARATIONS} 2467 2468 void main() 2469 { 2470 ${SETUP} 2471 out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2472 ${OUTPUT} 2473 } 2474 "" 2475 end 2476 case uvec4_to_vec4 2477 version 320 es 2478 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2479 values 2480 { 2481 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2482 output vec4 out0 = [ vec4(-1.0, -1.0, -2.0, -4.0) | vec4(-3.0, -4.0, 1.0, -5.0) | vec4(0.0, -11.0, -4.0, 0.0) ]; 2483 } 2484 2485 both "" 2486 #version 320 es 2487 precision highp float; 2488 ${DECLARATIONS} 2489 2490 void main() 2491 { 2492 ${SETUP} 2493 out0 = vec4(1.0, 2.0, 3.0, 4.0) - in0; 2494 ${OUTPUT} 2495 } 2496 "" 2497 end 2498 2499 end # sub 2500 group mul "Multiplication" 2501 2502 case int_to_float 2503 version 320 es 2504 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2505 values 2506 { 2507 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2508 output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 2509 } 2510 2511 both "" 2512 #version 320 es 2513 precision highp float; 2514 ${DECLARATIONS} 2515 2516 void main() 2517 { 2518 ${SETUP} 2519 out0 = 2.0 * in0; 2520 ${OUTPUT} 2521 } 2522 "" 2523 end 2524 case int_to_uint 2525 version 320 es 2526 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2527 values 2528 { 2529 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2530 output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 2531 } 2532 2533 both "" 2534 #version 320 es 2535 precision highp float; 2536 ${DECLARATIONS} 2537 2538 void main() 2539 { 2540 ${SETUP} 2541 out0 = 2 * in0; 2542 ${OUTPUT} 2543 } 2544 "" 2545 end 2546 case int_to_vec2 2547 version 320 es 2548 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2549 values 2550 { 2551 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2552 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(5.0, 10.0) ]; 2553 } 2554 2555 both "" 2556 #version 320 es 2557 precision highp float; 2558 ${DECLARATIONS} 2559 2560 void main() 2561 { 2562 ${SETUP} 2563 out0 = vec2(1.0, 2.0) * in0; 2564 ${OUTPUT} 2565 } 2566 "" 2567 end 2568 case int_to_vec3 2569 version 320 es 2570 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2571 values 2572 { 2573 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2574 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(5.0, 10.0, 15.0) ]; 2575 } 2576 2577 both "" 2578 #version 320 es 2579 precision highp float; 2580 ${DECLARATIONS} 2581 2582 void main() 2583 { 2584 ${SETUP} 2585 out0 = vec3(1.0, 2.0, 3.0) * in0; 2586 ${OUTPUT} 2587 } 2588 "" 2589 end 2590 case int_to_vec4 2591 version 320 es 2592 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2593 values 2594 { 2595 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2596 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(5.0, 10.0, 15.0, 20.0) ]; 2597 } 2598 2599 both "" 2600 #version 320 es 2601 precision highp float; 2602 ${DECLARATIONS} 2603 2604 void main() 2605 { 2606 ${SETUP} 2607 out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2608 ${OUTPUT} 2609 } 2610 "" 2611 end 2612 case int_to_uvec2 2613 version 320 es 2614 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2615 values 2616 { 2617 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2618 output uvec2 out0 = [ uvec2(2, 4) | uvec2(1, 2) | uvec2(1, 2) | uvec2(3, 6) | uvec2(5, 10) ]; 2619 } 2620 2621 both "" 2622 #version 320 es 2623 precision highp float; 2624 ${DECLARATIONS} 2625 2626 void main() 2627 { 2628 ${SETUP} 2629 out0 = uvec2(1, 2) * in0; 2630 ${OUTPUT} 2631 } 2632 "" 2633 end 2634 case int_to_uvec3 2635 version 320 es 2636 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2637 values 2638 { 2639 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2640 output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(3, 6, 9) | uvec3(5, 10, 15) ]; 2641 } 2642 2643 both "" 2644 #version 320 es 2645 precision highp float; 2646 ${DECLARATIONS} 2647 2648 void main() 2649 { 2650 ${SETUP} 2651 out0 = uvec3(1, 2, 3) * in0; 2652 ${OUTPUT} 2653 } 2654 "" 2655 end 2656 case int_to_uvec4 2657 version 320 es 2658 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2659 values 2660 { 2661 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2662 output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(3, 6, 9, 12) | uvec4(5, 10, 15, 20) ]; 2663 } 2664 2665 both "" 2666 #version 320 es 2667 precision highp float; 2668 ${DECLARATIONS} 2669 2670 void main() 2671 { 2672 ${SETUP} 2673 out0 = uvec4(1, 2, 3, 4) * in0; 2674 ${OUTPUT} 2675 } 2676 "" 2677 end 2678 case uint_to_float 2679 version 320 es 2680 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2681 values 2682 { 2683 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2684 output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 2685 } 2686 2687 both "" 2688 #version 320 es 2689 precision highp float; 2690 ${DECLARATIONS} 2691 2692 void main() 2693 { 2694 ${SETUP} 2695 out0 = 2.0 * in0; 2696 ${OUTPUT} 2697 } 2698 "" 2699 end 2700 case uint_to_vec2 2701 version 320 es 2702 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2703 values 2704 { 2705 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2706 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(3.0, 6.0) | vec2(4.0, 8.0) | vec2(7.0, 14.0) | vec2(11.0, 22.0) ]; 2707 } 2708 2709 both "" 2710 #version 320 es 2711 precision highp float; 2712 ${DECLARATIONS} 2713 2714 void main() 2715 { 2716 ${SETUP} 2717 out0 = vec2(1.0, 2.0) * in0; 2718 ${OUTPUT} 2719 } 2720 "" 2721 end 2722 case uint_to_vec3 2723 version 320 es 2724 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2725 values 2726 { 2727 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2728 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(3.0, 6.0, 9.0) | vec3(4.0, 8.0, 12.0) | vec3(7.0, 14.0, 21.0) | vec3(11.0, 22.0, 33.0) ]; 2729 } 2730 2731 both "" 2732 #version 320 es 2733 precision highp float; 2734 ${DECLARATIONS} 2735 2736 void main() 2737 { 2738 ${SETUP} 2739 out0 = vec3(1.0, 2.0, 3.0) * in0; 2740 ${OUTPUT} 2741 } 2742 "" 2743 end 2744 case uint_to_vec4 2745 version 320 es 2746 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2747 values 2748 { 2749 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 2750 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(3.0, 6.0, 9.0, 12.0) | vec4(4.0, 8.0, 12.0, 16.0) | vec4(7.0, 14.0, 21.0, 28.0) | vec4(11.0, 22.0, 33.0, 44.0) ]; 2751 } 2752 2753 both "" 2754 #version 320 es 2755 precision highp float; 2756 ${DECLARATIONS} 2757 2758 void main() 2759 { 2760 ${SETUP} 2761 out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2762 ${OUTPUT} 2763 } 2764 "" 2765 end 2766 case ivec2_to_uvec2 2767 version 320 es 2768 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2769 values 2770 { 2771 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2772 output uvec2 out0 = [ uvec2(1, 4) | uvec2(2, 2) | uvec2(3, 14) ]; 2773 } 2774 2775 both "" 2776 #version 320 es 2777 precision highp float; 2778 ${DECLARATIONS} 2779 2780 void main() 2781 { 2782 ${SETUP} 2783 out0 = uvec2(1, 2) * in0; 2784 ${OUTPUT} 2785 } 2786 "" 2787 end 2788 case ivec2_to_vec2 2789 version 320 es 2790 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2791 values 2792 { 2793 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 2794 output vec2 out0 = [ vec2(1.0, 4.0) | vec2(2.0, 2.0) | vec2(3.0, 14.0) ]; 2795 } 2796 2797 both "" 2798 #version 320 es 2799 precision highp float; 2800 ${DECLARATIONS} 2801 2802 void main() 2803 { 2804 ${SETUP} 2805 out0 = vec2(1.0, 2.0) * in0; 2806 ${OUTPUT} 2807 } 2808 "" 2809 end 2810 case uvec2_to_vec2 2811 version 320 es 2812 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2813 values 2814 { 2815 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 2816 output vec2 out0 = [ vec2(2.0, 6.0) | vec2(4.0, 12.0) | vec2(1.0, 26.0) ]; 2817 } 2818 2819 both "" 2820 #version 320 es 2821 precision highp float; 2822 ${DECLARATIONS} 2823 2824 void main() 2825 { 2826 ${SETUP} 2827 out0 = vec2(1.0, 2.0) * in0; 2828 ${OUTPUT} 2829 } 2830 "" 2831 end 2832 case ivec3_to_uvec3 2833 version 320 es 2834 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2835 values 2836 { 2837 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2838 output uvec3 out0 = [ uvec3(1, 4, 9) | uvec3(2, 2, 6) | uvec3(3, 14, 6) ]; 2839 } 2840 2841 both "" 2842 #version 320 es 2843 precision highp float; 2844 ${DECLARATIONS} 2845 2846 void main() 2847 { 2848 ${SETUP} 2849 out0 = uvec3(1, 2, 3) * in0; 2850 ${OUTPUT} 2851 } 2852 "" 2853 end 2854 case ivec3_to_vec3 2855 version 320 es 2856 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2857 values 2858 { 2859 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 2860 output vec3 out0 = [ vec3(1.0, 4.0, 9.0) | vec3(2.0, 2.0, 6.0) | vec3(3.0, 14.0, 6.0) ]; 2861 } 2862 2863 both "" 2864 #version 320 es 2865 precision highp float; 2866 ${DECLARATIONS} 2867 2868 void main() 2869 { 2870 ${SETUP} 2871 out0 = vec3(1.0, 2.0, 3.0) * in0; 2872 ${OUTPUT} 2873 } 2874 "" 2875 end 2876 case uvec3_to_vec3 2877 version 320 es 2878 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2879 values 2880 { 2881 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 2882 output vec3 out0 = [ vec3(2.0, 6.0, 15.0) | vec3(4.0, 12.0, 6.0) | vec3(1.0, 26.0, 21.0) ]; 2883 } 2884 2885 both "" 2886 #version 320 es 2887 precision highp float; 2888 ${DECLARATIONS} 2889 2890 void main() 2891 { 2892 ${SETUP} 2893 out0 = vec3(1.0, 2.0, 3.0) * in0; 2894 ${OUTPUT} 2895 } 2896 "" 2897 end 2898 case ivec4_to_uvec4 2899 version 320 es 2900 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2901 values 2902 { 2903 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2904 output uvec4 out0 = [ uvec4(1, 4, 9, 16) | uvec4(2, 2, 6, 24) | uvec4(3, 14, 6, 20) ]; 2905 } 2906 2907 both "" 2908 #version 320 es 2909 precision highp float; 2910 ${DECLARATIONS} 2911 2912 void main() 2913 { 2914 ${SETUP} 2915 out0 = uvec4(1, 2, 3, 4) * in0; 2916 ${OUTPUT} 2917 } 2918 "" 2919 end 2920 case ivec4_to_vec4 2921 version 320 es 2922 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2923 values 2924 { 2925 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 2926 output vec4 out0 = [ vec4(1.0, 4.0, 9.0, 16.0) | vec4(2.0, 2.0, 6.0, 24.0) | vec4(3.0, 14.0, 6.0, 20.0) ]; 2927 } 2928 2929 both "" 2930 #version 320 es 2931 precision highp float; 2932 ${DECLARATIONS} 2933 2934 void main() 2935 { 2936 ${SETUP} 2937 out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2938 ${OUTPUT} 2939 } 2940 "" 2941 end 2942 case uvec4_to_vec4 2943 version 320 es 2944 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2945 values 2946 { 2947 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 2948 output vec4 out0 = [ vec4(2.0, 6.0, 15.0, 32.0) | vec4(4.0, 12.0, 6.0, 36.0) | vec4(1.0, 26.0, 21.0, 16.0) ]; 2949 } 2950 2951 both "" 2952 #version 320 es 2953 precision highp float; 2954 ${DECLARATIONS} 2955 2956 void main() 2957 { 2958 ${SETUP} 2959 out0 = vec4(1.0, 2.0, 3.0, 4.0) * in0; 2960 ${OUTPUT} 2961 } 2962 "" 2963 end 2964 2965 end # mul 2966 group div "Division" 2967 2968 case int_to_float 2969 version 320 es 2970 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2971 values 2972 { 2973 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2974 output float out0 = [ 1.0 | 2.0 | 2.0 | 0.666666666667 | 0.4 ]; 2975 } 2976 2977 both "" 2978 #version 320 es 2979 precision highp float; 2980 ${DECLARATIONS} 2981 2982 void main() 2983 { 2984 ${SETUP} 2985 out0 = 2.0 / in0; 2986 ${OUTPUT} 2987 } 2988 "" 2989 end 2990 case int_to_uint 2991 version 320 es 2992 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 2993 values 2994 { 2995 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 2996 output uint out0 = [ 1 | 2 | 2 | 0 | 0 ]; 2997 } 2998 2999 both "" 3000 #version 320 es 3001 precision highp float; 3002 ${DECLARATIONS} 3003 3004 void main() 3005 { 3006 ${SETUP} 3007 out0 = 2 / in0; 3008 ${OUTPUT} 3009 } 3010 "" 3011 end 3012 case int_to_vec2 3013 version 320 es 3014 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3015 values 3016 { 3017 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3018 output vec2 out0 = [ vec2(0.5, 1.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(0.333333333333, 0.666666666667) | vec2(0.2, 0.4) ]; 3019 } 3020 3021 both "" 3022 #version 320 es 3023 precision highp float; 3024 ${DECLARATIONS} 3025 3026 void main() 3027 { 3028 ${SETUP} 3029 out0 = vec2(1.0, 2.0) / in0; 3030 ${OUTPUT} 3031 } 3032 "" 3033 end 3034 case int_to_vec3 3035 version 320 es 3036 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3037 values 3038 { 3039 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3040 output vec3 out0 = [ vec3(0.5, 1.0, 1.5) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(0.333333333333, 0.666666666667, 1.0) | vec3(0.2, 0.4, 0.6) ]; 3041 } 3042 3043 both "" 3044 #version 320 es 3045 precision highp float; 3046 ${DECLARATIONS} 3047 3048 void main() 3049 { 3050 ${SETUP} 3051 out0 = vec3(1.0, 2.0, 3.0) / in0; 3052 ${OUTPUT} 3053 } 3054 "" 3055 end 3056 case int_to_vec4 3057 version 320 es 3058 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3059 values 3060 { 3061 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3062 output vec4 out0 = [ vec4(0.5, 1.0, 1.5, 2.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(0.333333333333, 0.666666666667, 1.0, 1.33333333333) | vec4(0.2, 0.4, 0.6, 0.8) ]; 3063 } 3064 3065 both "" 3066 #version 320 es 3067 precision highp float; 3068 ${DECLARATIONS} 3069 3070 void main() 3071 { 3072 ${SETUP} 3073 out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3074 ${OUTPUT} 3075 } 3076 "" 3077 end 3078 case int_to_uvec2 3079 version 320 es 3080 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3081 values 3082 { 3083 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3084 output uvec2 out0 = [ uvec2(0, 1) | uvec2(1, 2) | uvec2(1, 2) | uvec2(0, 0) | uvec2(0, 0) ]; 3085 } 3086 3087 both "" 3088 #version 320 es 3089 precision highp float; 3090 ${DECLARATIONS} 3091 3092 void main() 3093 { 3094 ${SETUP} 3095 out0 = uvec2(1, 2) / in0; 3096 ${OUTPUT} 3097 } 3098 "" 3099 end 3100 case int_to_uvec3 3101 version 320 es 3102 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3103 values 3104 { 3105 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3106 output uvec3 out0 = [ uvec3(0, 1, 1) | uvec3(1, 2, 3) | uvec3(1, 2, 3) | uvec3(0, 0, 1) | uvec3(0, 0, 0) ]; 3107 } 3108 3109 both "" 3110 #version 320 es 3111 precision highp float; 3112 ${DECLARATIONS} 3113 3114 void main() 3115 { 3116 ${SETUP} 3117 out0 = uvec3(1, 2, 3) / in0; 3118 ${OUTPUT} 3119 } 3120 "" 3121 end 3122 case int_to_uvec4 3123 version 320 es 3124 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3125 values 3126 { 3127 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3128 output uvec4 out0 = [ uvec4(0, 1, 1, 2) | uvec4(1, 2, 3, 4) | uvec4(1, 2, 3, 4) | uvec4(0, 0, 1, 1) | uvec4(0, 0, 0, 0) ]; 3129 } 3130 3131 both "" 3132 #version 320 es 3133 precision highp float; 3134 ${DECLARATIONS} 3135 3136 void main() 3137 { 3138 ${SETUP} 3139 out0 = uvec4(1, 2, 3, 4) / in0; 3140 ${OUTPUT} 3141 } 3142 "" 3143 end 3144 case uint_to_float 3145 version 320 es 3146 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3147 values 3148 { 3149 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3150 output float out0 = [ 2.0 | 0.666666666667 | 0.5 | 0.285714285714 | 0.181818181818 ]; 3151 } 3152 3153 both "" 3154 #version 320 es 3155 precision highp float; 3156 ${DECLARATIONS} 3157 3158 void main() 3159 { 3160 ${SETUP} 3161 out0 = 2.0 / in0; 3162 ${OUTPUT} 3163 } 3164 "" 3165 end 3166 case uint_to_vec2 3167 version 320 es 3168 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3169 values 3170 { 3171 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3172 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(0.333333333333, 0.666666666667) | vec2(0.25, 0.5) | vec2(0.142857142857, 0.285714285714) | vec2(0.0909090909091, 0.181818181818) ]; 3173 } 3174 3175 both "" 3176 #version 320 es 3177 precision highp float; 3178 ${DECLARATIONS} 3179 3180 void main() 3181 { 3182 ${SETUP} 3183 out0 = vec2(1.0, 2.0) / in0; 3184 ${OUTPUT} 3185 } 3186 "" 3187 end 3188 case uint_to_vec3 3189 version 320 es 3190 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3191 values 3192 { 3193 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3194 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(0.333333333333, 0.666666666667, 1.0) | vec3(0.25, 0.5, 0.75) | vec3(0.142857142857, 0.285714285714, 0.428571428571) | vec3(0.0909090909091, 0.181818181818, 0.272727272727) ]; 3195 } 3196 3197 both "" 3198 #version 320 es 3199 precision highp float; 3200 ${DECLARATIONS} 3201 3202 void main() 3203 { 3204 ${SETUP} 3205 out0 = vec3(1.0, 2.0, 3.0) / in0; 3206 ${OUTPUT} 3207 } 3208 "" 3209 end 3210 case uint_to_vec4 3211 version 320 es 3212 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3213 values 3214 { 3215 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3216 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(0.333333333333, 0.666666666667, 1.0, 1.33333333333) | vec4(0.25, 0.5, 0.75, 1.0) | vec4(0.142857142857, 0.285714285714, 0.428571428571, 0.571428571429) | vec4(0.0909090909091, 0.181818181818, 0.272727272727, 0.363636363636) ]; 3217 } 3218 3219 both "" 3220 #version 320 es 3221 precision highp float; 3222 ${DECLARATIONS} 3223 3224 void main() 3225 { 3226 ${SETUP} 3227 out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3228 ${OUTPUT} 3229 } 3230 "" 3231 end 3232 case ivec2_to_uvec2 3233 version 320 es 3234 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3235 values 3236 { 3237 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3238 output uvec2 out0 = [ uvec2(1, 1) | uvec2(0, 2) | uvec2(0, 0) ]; 3239 } 3240 3241 both "" 3242 #version 320 es 3243 precision highp float; 3244 ${DECLARATIONS} 3245 3246 void main() 3247 { 3248 ${SETUP} 3249 out0 = uvec2(1, 2) / in0; 3250 ${OUTPUT} 3251 } 3252 "" 3253 end 3254 case ivec2_to_vec2 3255 version 320 es 3256 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3257 values 3258 { 3259 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3260 output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.5, 2.0) | vec2(0.333333333333, 0.285714285714) ]; 3261 } 3262 3263 both "" 3264 #version 320 es 3265 precision highp float; 3266 ${DECLARATIONS} 3267 3268 void main() 3269 { 3270 ${SETUP} 3271 out0 = vec2(1.0, 2.0) / in0; 3272 ${OUTPUT} 3273 } 3274 "" 3275 end 3276 case uvec2_to_vec2 3277 version 320 es 3278 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3279 values 3280 { 3281 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3282 output vec2 out0 = [ vec2(0.5, 0.666666666667) | vec2(0.25, 0.333333333333) | vec2(1.0, 0.153846153846) ]; 3283 } 3284 3285 both "" 3286 #version 320 es 3287 precision highp float; 3288 ${DECLARATIONS} 3289 3290 void main() 3291 { 3292 ${SETUP} 3293 out0 = vec2(1.0, 2.0) / in0; 3294 ${OUTPUT} 3295 } 3296 "" 3297 end 3298 case ivec3_to_uvec3 3299 version 320 es 3300 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3301 values 3302 { 3303 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3304 output uvec3 out0 = [ uvec3(1, 1, 1) | uvec3(0, 2, 1) | uvec3(0, 0, 1) ]; 3305 } 3306 3307 both "" 3308 #version 320 es 3309 precision highp float; 3310 ${DECLARATIONS} 3311 3312 void main() 3313 { 3314 ${SETUP} 3315 out0 = uvec3(1, 2, 3) / in0; 3316 ${OUTPUT} 3317 } 3318 "" 3319 end 3320 case ivec3_to_vec3 3321 version 320 es 3322 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3323 values 3324 { 3325 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3326 output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.5, 2.0, 1.5) | vec3(0.333333333333, 0.285714285714, 1.5) ]; 3327 } 3328 3329 both "" 3330 #version 320 es 3331 precision highp float; 3332 ${DECLARATIONS} 3333 3334 void main() 3335 { 3336 ${SETUP} 3337 out0 = vec3(1.0, 2.0, 3.0) / in0; 3338 ${OUTPUT} 3339 } 3340 "" 3341 end 3342 case uvec3_to_vec3 3343 version 320 es 3344 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3345 values 3346 { 3347 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3348 output vec3 out0 = [ vec3(0.5, 0.666666666667, 0.6) | vec3(0.25, 0.333333333333, 1.5) | vec3(1.0, 0.153846153846, 0.428571428571) ]; 3349 } 3350 3351 both "" 3352 #version 320 es 3353 precision highp float; 3354 ${DECLARATIONS} 3355 3356 void main() 3357 { 3358 ${SETUP} 3359 out0 = vec3(1.0, 2.0, 3.0) / in0; 3360 ${OUTPUT} 3361 } 3362 "" 3363 end 3364 case ivec4_to_uvec4 3365 version 320 es 3366 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3367 values 3368 { 3369 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3370 output uvec4 out0 = [ uvec4(1, 1, 1, 1) | uvec4(0, 2, 1, 0) | uvec4(0, 0, 1, 0) ]; 3371 } 3372 3373 both "" 3374 #version 320 es 3375 precision highp float; 3376 ${DECLARATIONS} 3377 3378 void main() 3379 { 3380 ${SETUP} 3381 out0 = uvec4(1, 2, 3, 4) / in0; 3382 ${OUTPUT} 3383 } 3384 "" 3385 end 3386 case ivec4_to_vec4 3387 version 320 es 3388 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3389 values 3390 { 3391 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3392 output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.5, 2.0, 1.5, 0.666666666667) | vec4(0.333333333333, 0.285714285714, 1.5, 0.8) ]; 3393 } 3394 3395 both "" 3396 #version 320 es 3397 precision highp float; 3398 ${DECLARATIONS} 3399 3400 void main() 3401 { 3402 ${SETUP} 3403 out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3404 ${OUTPUT} 3405 } 3406 "" 3407 end 3408 case uvec4_to_vec4 3409 version 320 es 3410 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3411 values 3412 { 3413 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3414 output vec4 out0 = [ vec4(0.5, 0.666666666667, 0.6, 0.5) | vec4(0.25, 0.333333333333, 1.5, 0.444444444444) | vec4(1.0, 0.153846153846, 0.428571428571, 1.0) ]; 3415 } 3416 3417 both "" 3418 #version 320 es 3419 precision highp float; 3420 ${DECLARATIONS} 3421 3422 void main() 3423 { 3424 ${SETUP} 3425 out0 = vec4(1.0, 2.0, 3.0, 4.0) / in0; 3426 ${OUTPUT} 3427 } 3428 "" 3429 end 3430 3431 end # div 3432 3433 end # literal_before_input 3434 3435end # arithmetic 3436group comparisons "Comparisons" 3437 3438 group input_before_literal "Input before literal" 3439 3440 group equal "Equal" 3441 3442 case int_to_float 3443 version 320 es 3444 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3445 values 3446 { 3447 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3448 output bool out0 = [ true | false | false | false | false ]; 3449 } 3450 3451 both "" 3452 #version 320 es 3453 precision highp float; 3454 ${DECLARATIONS} 3455 3456 void main() 3457 { 3458 ${SETUP} 3459 out0 = in0 == 2.0; 3460 ${OUTPUT} 3461 } 3462 "" 3463 end 3464 case int_to_uint 3465 version 320 es 3466 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3467 values 3468 { 3469 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3470 output bool out0 = [ true | false | false | false | false ]; 3471 } 3472 3473 both "" 3474 #version 320 es 3475 precision highp float; 3476 ${DECLARATIONS} 3477 3478 void main() 3479 { 3480 ${SETUP} 3481 out0 = in0 == 2; 3482 ${OUTPUT} 3483 } 3484 "" 3485 end 3486 case uint_to_float 3487 version 320 es 3488 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3489 values 3490 { 3491 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3492 output bool out0 = [ false | false | false | false | false ]; 3493 } 3494 3495 both "" 3496 #version 320 es 3497 precision highp float; 3498 ${DECLARATIONS} 3499 3500 void main() 3501 { 3502 ${SETUP} 3503 out0 = in0 == 2.0; 3504 ${OUTPUT} 3505 } 3506 "" 3507 end 3508 case ivec2_to_uvec2 3509 version 320 es 3510 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3511 values 3512 { 3513 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3514 output bool out0 = [ true | false | false ]; 3515 } 3516 3517 both "" 3518 #version 320 es 3519 precision highp float; 3520 ${DECLARATIONS} 3521 3522 void main() 3523 { 3524 ${SETUP} 3525 out0 = in0 == uvec2(1, 2); 3526 ${OUTPUT} 3527 } 3528 "" 3529 end 3530 case ivec2_to_vec2 3531 version 320 es 3532 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3533 values 3534 { 3535 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3536 output bool out0 = [ true | false | false ]; 3537 } 3538 3539 both "" 3540 #version 320 es 3541 precision highp float; 3542 ${DECLARATIONS} 3543 3544 void main() 3545 { 3546 ${SETUP} 3547 out0 = in0 == vec2(1.0, 2.0); 3548 ${OUTPUT} 3549 } 3550 "" 3551 end 3552 case uvec2_to_vec2 3553 version 320 es 3554 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3555 values 3556 { 3557 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3558 output bool out0 = [ false | false | false ]; 3559 } 3560 3561 both "" 3562 #version 320 es 3563 precision highp float; 3564 ${DECLARATIONS} 3565 3566 void main() 3567 { 3568 ${SETUP} 3569 out0 = in0 == vec2(1.0, 2.0); 3570 ${OUTPUT} 3571 } 3572 "" 3573 end 3574 case ivec3_to_uvec3 3575 version 320 es 3576 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3577 values 3578 { 3579 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3580 output bool out0 = [ true | false | false ]; 3581 } 3582 3583 both "" 3584 #version 320 es 3585 precision highp float; 3586 ${DECLARATIONS} 3587 3588 void main() 3589 { 3590 ${SETUP} 3591 out0 = in0 == uvec3(1, 2, 3); 3592 ${OUTPUT} 3593 } 3594 "" 3595 end 3596 case ivec3_to_vec3 3597 version 320 es 3598 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3599 values 3600 { 3601 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3602 output bool out0 = [ true | false | false ]; 3603 } 3604 3605 both "" 3606 #version 320 es 3607 precision highp float; 3608 ${DECLARATIONS} 3609 3610 void main() 3611 { 3612 ${SETUP} 3613 out0 = in0 == vec3(1.0, 2.0, 3.0); 3614 ${OUTPUT} 3615 } 3616 "" 3617 end 3618 case uvec3_to_vec3 3619 version 320 es 3620 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3621 values 3622 { 3623 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3624 output bool out0 = [ false | false | false ]; 3625 } 3626 3627 both "" 3628 #version 320 es 3629 precision highp float; 3630 ${DECLARATIONS} 3631 3632 void main() 3633 { 3634 ${SETUP} 3635 out0 = in0 == vec3(1.0, 2.0, 3.0); 3636 ${OUTPUT} 3637 } 3638 "" 3639 end 3640 case ivec4_to_uvec4 3641 version 320 es 3642 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3643 values 3644 { 3645 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3646 output bool out0 = [ true | false | false ]; 3647 } 3648 3649 both "" 3650 #version 320 es 3651 precision highp float; 3652 ${DECLARATIONS} 3653 3654 void main() 3655 { 3656 ${SETUP} 3657 out0 = in0 == uvec4(1, 2, 3, 4); 3658 ${OUTPUT} 3659 } 3660 "" 3661 end 3662 case ivec4_to_vec4 3663 version 320 es 3664 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3665 values 3666 { 3667 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3668 output bool out0 = [ true | false | false ]; 3669 } 3670 3671 both "" 3672 #version 320 es 3673 precision highp float; 3674 ${DECLARATIONS} 3675 3676 void main() 3677 { 3678 ${SETUP} 3679 out0 = in0 == vec4(1.0, 2.0, 3.0, 4.0); 3680 ${OUTPUT} 3681 } 3682 "" 3683 end 3684 case uvec4_to_vec4 3685 version 320 es 3686 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3687 values 3688 { 3689 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3690 output bool out0 = [ false | false | false ]; 3691 } 3692 3693 both "" 3694 #version 320 es 3695 precision highp float; 3696 ${DECLARATIONS} 3697 3698 void main() 3699 { 3700 ${SETUP} 3701 out0 = in0 == vec4(1.0, 2.0, 3.0, 4.0); 3702 ${OUTPUT} 3703 } 3704 "" 3705 end 3706 3707 end # equal 3708 group not_equal "Not equal" 3709 3710 case int_to_float 3711 version 320 es 3712 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3713 values 3714 { 3715 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3716 output bool out0 = [ false | true | true | true | true ]; 3717 } 3718 3719 both "" 3720 #version 320 es 3721 precision highp float; 3722 ${DECLARATIONS} 3723 3724 void main() 3725 { 3726 ${SETUP} 3727 out0 = in0 != 2.0; 3728 ${OUTPUT} 3729 } 3730 "" 3731 end 3732 case int_to_uint 3733 version 320 es 3734 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3735 values 3736 { 3737 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3738 output bool out0 = [ false | true | true | true | true ]; 3739 } 3740 3741 both "" 3742 #version 320 es 3743 precision highp float; 3744 ${DECLARATIONS} 3745 3746 void main() 3747 { 3748 ${SETUP} 3749 out0 = in0 != 2; 3750 ${OUTPUT} 3751 } 3752 "" 3753 end 3754 case uint_to_float 3755 version 320 es 3756 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3757 values 3758 { 3759 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 3760 output bool out0 = [ true | true | true | true | true ]; 3761 } 3762 3763 both "" 3764 #version 320 es 3765 precision highp float; 3766 ${DECLARATIONS} 3767 3768 void main() 3769 { 3770 ${SETUP} 3771 out0 = in0 != 2.0; 3772 ${OUTPUT} 3773 } 3774 "" 3775 end 3776 case ivec2_to_uvec2 3777 version 320 es 3778 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3779 values 3780 { 3781 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3782 output bool out0 = [ false | true | true ]; 3783 } 3784 3785 both "" 3786 #version 320 es 3787 precision highp float; 3788 ${DECLARATIONS} 3789 3790 void main() 3791 { 3792 ${SETUP} 3793 out0 = in0 != uvec2(1, 2); 3794 ${OUTPUT} 3795 } 3796 "" 3797 end 3798 case ivec2_to_vec2 3799 version 320 es 3800 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3801 values 3802 { 3803 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 3804 output bool out0 = [ false | true | true ]; 3805 } 3806 3807 both "" 3808 #version 320 es 3809 precision highp float; 3810 ${DECLARATIONS} 3811 3812 void main() 3813 { 3814 ${SETUP} 3815 out0 = in0 != vec2(1.0, 2.0); 3816 ${OUTPUT} 3817 } 3818 "" 3819 end 3820 case uvec2_to_vec2 3821 version 320 es 3822 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3823 values 3824 { 3825 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 3826 output bool out0 = [ true | true | true ]; 3827 } 3828 3829 both "" 3830 #version 320 es 3831 precision highp float; 3832 ${DECLARATIONS} 3833 3834 void main() 3835 { 3836 ${SETUP} 3837 out0 = in0 != vec2(1.0, 2.0); 3838 ${OUTPUT} 3839 } 3840 "" 3841 end 3842 case ivec3_to_uvec3 3843 version 320 es 3844 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3845 values 3846 { 3847 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3848 output bool out0 = [ false | true | true ]; 3849 } 3850 3851 both "" 3852 #version 320 es 3853 precision highp float; 3854 ${DECLARATIONS} 3855 3856 void main() 3857 { 3858 ${SETUP} 3859 out0 = in0 != uvec3(1, 2, 3); 3860 ${OUTPUT} 3861 } 3862 "" 3863 end 3864 case ivec3_to_vec3 3865 version 320 es 3866 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3867 values 3868 { 3869 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 3870 output bool out0 = [ false | true | true ]; 3871 } 3872 3873 both "" 3874 #version 320 es 3875 precision highp float; 3876 ${DECLARATIONS} 3877 3878 void main() 3879 { 3880 ${SETUP} 3881 out0 = in0 != vec3(1.0, 2.0, 3.0); 3882 ${OUTPUT} 3883 } 3884 "" 3885 end 3886 case uvec3_to_vec3 3887 version 320 es 3888 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3889 values 3890 { 3891 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 3892 output bool out0 = [ true | true | true ]; 3893 } 3894 3895 both "" 3896 #version 320 es 3897 precision highp float; 3898 ${DECLARATIONS} 3899 3900 void main() 3901 { 3902 ${SETUP} 3903 out0 = in0 != vec3(1.0, 2.0, 3.0); 3904 ${OUTPUT} 3905 } 3906 "" 3907 end 3908 case ivec4_to_uvec4 3909 version 320 es 3910 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3911 values 3912 { 3913 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3914 output bool out0 = [ false | true | true ]; 3915 } 3916 3917 both "" 3918 #version 320 es 3919 precision highp float; 3920 ${DECLARATIONS} 3921 3922 void main() 3923 { 3924 ${SETUP} 3925 out0 = in0 != uvec4(1, 2, 3, 4); 3926 ${OUTPUT} 3927 } 3928 "" 3929 end 3930 case ivec4_to_vec4 3931 version 320 es 3932 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3933 values 3934 { 3935 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 3936 output bool out0 = [ false | true | true ]; 3937 } 3938 3939 both "" 3940 #version 320 es 3941 precision highp float; 3942 ${DECLARATIONS} 3943 3944 void main() 3945 { 3946 ${SETUP} 3947 out0 = in0 != vec4(1.0, 2.0, 3.0, 4.0); 3948 ${OUTPUT} 3949 } 3950 "" 3951 end 3952 case uvec4_to_vec4 3953 version 320 es 3954 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3955 values 3956 { 3957 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 3958 output bool out0 = [ true | true | true ]; 3959 } 3960 3961 both "" 3962 #version 320 es 3963 precision highp float; 3964 ${DECLARATIONS} 3965 3966 void main() 3967 { 3968 ${SETUP} 3969 out0 = in0 != vec4(1.0, 2.0, 3.0, 4.0); 3970 ${OUTPUT} 3971 } 3972 "" 3973 end 3974 3975 end # not_equal 3976 group less "Less than" 3977 3978 case int_to_float 3979 version 320 es 3980 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 3981 values 3982 { 3983 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 3984 output bool out0 = [ false | true | true | false | false ]; 3985 } 3986 3987 both "" 3988 #version 320 es 3989 precision highp float; 3990 ${DECLARATIONS} 3991 3992 void main() 3993 { 3994 ${SETUP} 3995 out0 = in0 < 2.0; 3996 ${OUTPUT} 3997 } 3998 "" 3999 end 4000 case int_to_uint 4001 version 320 es 4002 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4003 values 4004 { 4005 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4006 output bool out0 = [ false | true | true | false | false ]; 4007 } 4008 4009 both "" 4010 #version 320 es 4011 precision highp float; 4012 ${DECLARATIONS} 4013 4014 void main() 4015 { 4016 ${SETUP} 4017 out0 = in0 < 2; 4018 ${OUTPUT} 4019 } 4020 "" 4021 end 4022 case uint_to_float 4023 version 320 es 4024 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4025 values 4026 { 4027 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4028 output bool out0 = [ true | false | false | false | false ]; 4029 } 4030 4031 both "" 4032 #version 320 es 4033 precision highp float; 4034 ${DECLARATIONS} 4035 4036 void main() 4037 { 4038 ${SETUP} 4039 out0 = in0 < 2.0; 4040 ${OUTPUT} 4041 } 4042 "" 4043 end 4044 4045 end # less 4046 group greater "Greater than" 4047 4048 case int_to_float 4049 version 320 es 4050 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4051 values 4052 { 4053 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4054 output bool out0 = [ false | false | false | true | true ]; 4055 } 4056 4057 both "" 4058 #version 320 es 4059 precision highp float; 4060 ${DECLARATIONS} 4061 4062 void main() 4063 { 4064 ${SETUP} 4065 out0 = in0 > 2.0; 4066 ${OUTPUT} 4067 } 4068 "" 4069 end 4070 case int_to_uint 4071 version 320 es 4072 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4073 values 4074 { 4075 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4076 output bool out0 = [ false | false | false | true | true ]; 4077 } 4078 4079 both "" 4080 #version 320 es 4081 precision highp float; 4082 ${DECLARATIONS} 4083 4084 void main() 4085 { 4086 ${SETUP} 4087 out0 = in0 > 2; 4088 ${OUTPUT} 4089 } 4090 "" 4091 end 4092 case uint_to_float 4093 version 320 es 4094 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4095 values 4096 { 4097 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4098 output bool out0 = [ false | true | true | true | true ]; 4099 } 4100 4101 both "" 4102 #version 320 es 4103 precision highp float; 4104 ${DECLARATIONS} 4105 4106 void main() 4107 { 4108 ${SETUP} 4109 out0 = in0 > 2.0; 4110 ${OUTPUT} 4111 } 4112 "" 4113 end 4114 4115 end # greater 4116 group less_or_equal "Less than or equal" 4117 4118 case int_to_float 4119 version 320 es 4120 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4121 values 4122 { 4123 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4124 output bool out0 = [ true | true | true | false | false ]; 4125 } 4126 4127 both "" 4128 #version 320 es 4129 precision highp float; 4130 ${DECLARATIONS} 4131 4132 void main() 4133 { 4134 ${SETUP} 4135 out0 = in0 <= 2.0; 4136 ${OUTPUT} 4137 } 4138 "" 4139 end 4140 case int_to_uint 4141 version 320 es 4142 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4143 values 4144 { 4145 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4146 output bool out0 = [ true | true | true | false | false ]; 4147 } 4148 4149 both "" 4150 #version 320 es 4151 precision highp float; 4152 ${DECLARATIONS} 4153 4154 void main() 4155 { 4156 ${SETUP} 4157 out0 = in0 <= 2; 4158 ${OUTPUT} 4159 } 4160 "" 4161 end 4162 case uint_to_float 4163 version 320 es 4164 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4165 values 4166 { 4167 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4168 output bool out0 = [ true | false | false | false | false ]; 4169 } 4170 4171 both "" 4172 #version 320 es 4173 precision highp float; 4174 ${DECLARATIONS} 4175 4176 void main() 4177 { 4178 ${SETUP} 4179 out0 = in0 <= 2.0; 4180 ${OUTPUT} 4181 } 4182 "" 4183 end 4184 4185 end # less_or_equal 4186 group greater_or_equal "Greater than or equal" 4187 4188 case int_to_float 4189 version 320 es 4190 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4191 values 4192 { 4193 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4194 output bool out0 = [ true | false | false | true | true ]; 4195 } 4196 4197 both "" 4198 #version 320 es 4199 precision highp float; 4200 ${DECLARATIONS} 4201 4202 void main() 4203 { 4204 ${SETUP} 4205 out0 = in0 >= 2.0; 4206 ${OUTPUT} 4207 } 4208 "" 4209 end 4210 case int_to_uint 4211 version 320 es 4212 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4213 values 4214 { 4215 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4216 output bool out0 = [ true | false | false | true | true ]; 4217 } 4218 4219 both "" 4220 #version 320 es 4221 precision highp float; 4222 ${DECLARATIONS} 4223 4224 void main() 4225 { 4226 ${SETUP} 4227 out0 = in0 >= 2; 4228 ${OUTPUT} 4229 } 4230 "" 4231 end 4232 case uint_to_float 4233 version 320 es 4234 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4235 values 4236 { 4237 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4238 output bool out0 = [ false | true | true | true | true ]; 4239 } 4240 4241 both "" 4242 #version 320 es 4243 precision highp float; 4244 ${DECLARATIONS} 4245 4246 void main() 4247 { 4248 ${SETUP} 4249 out0 = in0 >= 2.0; 4250 ${OUTPUT} 4251 } 4252 "" 4253 end 4254 4255 end # greater_or_equal 4256 4257 end # input_before_literal 4258 group literal_before_input "Literal before input" 4259 4260 group equal "Equal" 4261 4262 case int_to_float 4263 version 320 es 4264 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4265 values 4266 { 4267 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4268 output bool out0 = [ true | false | false | false | false ]; 4269 } 4270 4271 both "" 4272 #version 320 es 4273 precision highp float; 4274 ${DECLARATIONS} 4275 4276 void main() 4277 { 4278 ${SETUP} 4279 out0 = 2.0 == in0; 4280 ${OUTPUT} 4281 } 4282 "" 4283 end 4284 case int_to_uint 4285 version 320 es 4286 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4287 values 4288 { 4289 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4290 output bool out0 = [ true | false | false | false | false ]; 4291 } 4292 4293 both "" 4294 #version 320 es 4295 precision highp float; 4296 ${DECLARATIONS} 4297 4298 void main() 4299 { 4300 ${SETUP} 4301 out0 = 2 == in0; 4302 ${OUTPUT} 4303 } 4304 "" 4305 end 4306 case uint_to_float 4307 version 320 es 4308 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4309 values 4310 { 4311 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4312 output bool out0 = [ false | false | false | false | false ]; 4313 } 4314 4315 both "" 4316 #version 320 es 4317 precision highp float; 4318 ${DECLARATIONS} 4319 4320 void main() 4321 { 4322 ${SETUP} 4323 out0 = 2.0 == in0; 4324 ${OUTPUT} 4325 } 4326 "" 4327 end 4328 case ivec2_to_uvec2 4329 version 320 es 4330 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4331 values 4332 { 4333 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4334 output bool out0 = [ true | false | false ]; 4335 } 4336 4337 both "" 4338 #version 320 es 4339 precision highp float; 4340 ${DECLARATIONS} 4341 4342 void main() 4343 { 4344 ${SETUP} 4345 out0 = uvec2(1, 2) == in0; 4346 ${OUTPUT} 4347 } 4348 "" 4349 end 4350 case ivec2_to_vec2 4351 version 320 es 4352 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4353 values 4354 { 4355 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4356 output bool out0 = [ true | false | false ]; 4357 } 4358 4359 both "" 4360 #version 320 es 4361 precision highp float; 4362 ${DECLARATIONS} 4363 4364 void main() 4365 { 4366 ${SETUP} 4367 out0 = vec2(1.0, 2.0) == in0; 4368 ${OUTPUT} 4369 } 4370 "" 4371 end 4372 case uvec2_to_vec2 4373 version 320 es 4374 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4375 values 4376 { 4377 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 4378 output bool out0 = [ false | false | false ]; 4379 } 4380 4381 both "" 4382 #version 320 es 4383 precision highp float; 4384 ${DECLARATIONS} 4385 4386 void main() 4387 { 4388 ${SETUP} 4389 out0 = vec2(1.0, 2.0) == in0; 4390 ${OUTPUT} 4391 } 4392 "" 4393 end 4394 case ivec3_to_uvec3 4395 version 320 es 4396 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4397 values 4398 { 4399 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4400 output bool out0 = [ true | false | false ]; 4401 } 4402 4403 both "" 4404 #version 320 es 4405 precision highp float; 4406 ${DECLARATIONS} 4407 4408 void main() 4409 { 4410 ${SETUP} 4411 out0 = uvec3(1, 2, 3) == in0; 4412 ${OUTPUT} 4413 } 4414 "" 4415 end 4416 case ivec3_to_vec3 4417 version 320 es 4418 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4419 values 4420 { 4421 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4422 output bool out0 = [ true | false | false ]; 4423 } 4424 4425 both "" 4426 #version 320 es 4427 precision highp float; 4428 ${DECLARATIONS} 4429 4430 void main() 4431 { 4432 ${SETUP} 4433 out0 = vec3(1.0, 2.0, 3.0) == in0; 4434 ${OUTPUT} 4435 } 4436 "" 4437 end 4438 case uvec3_to_vec3 4439 version 320 es 4440 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4441 values 4442 { 4443 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 4444 output bool out0 = [ false | false | false ]; 4445 } 4446 4447 both "" 4448 #version 320 es 4449 precision highp float; 4450 ${DECLARATIONS} 4451 4452 void main() 4453 { 4454 ${SETUP} 4455 out0 = vec3(1.0, 2.0, 3.0) == in0; 4456 ${OUTPUT} 4457 } 4458 "" 4459 end 4460 case ivec4_to_uvec4 4461 version 320 es 4462 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4463 values 4464 { 4465 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4466 output bool out0 = [ true | false | false ]; 4467 } 4468 4469 both "" 4470 #version 320 es 4471 precision highp float; 4472 ${DECLARATIONS} 4473 4474 void main() 4475 { 4476 ${SETUP} 4477 out0 = uvec4(1, 2, 3, 4) == in0; 4478 ${OUTPUT} 4479 } 4480 "" 4481 end 4482 case ivec4_to_vec4 4483 version 320 es 4484 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4485 values 4486 { 4487 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4488 output bool out0 = [ true | false | false ]; 4489 } 4490 4491 both "" 4492 #version 320 es 4493 precision highp float; 4494 ${DECLARATIONS} 4495 4496 void main() 4497 { 4498 ${SETUP} 4499 out0 = vec4(1.0, 2.0, 3.0, 4.0) == in0; 4500 ${OUTPUT} 4501 } 4502 "" 4503 end 4504 case uvec4_to_vec4 4505 version 320 es 4506 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4507 values 4508 { 4509 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 4510 output bool out0 = [ false | false | false ]; 4511 } 4512 4513 both "" 4514 #version 320 es 4515 precision highp float; 4516 ${DECLARATIONS} 4517 4518 void main() 4519 { 4520 ${SETUP} 4521 out0 = vec4(1.0, 2.0, 3.0, 4.0) == in0; 4522 ${OUTPUT} 4523 } 4524 "" 4525 end 4526 4527 end # equal 4528 group not_equal "Not equal" 4529 4530 case int_to_float 4531 version 320 es 4532 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4533 values 4534 { 4535 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4536 output bool out0 = [ false | true | true | true | true ]; 4537 } 4538 4539 both "" 4540 #version 320 es 4541 precision highp float; 4542 ${DECLARATIONS} 4543 4544 void main() 4545 { 4546 ${SETUP} 4547 out0 = 2.0 != in0; 4548 ${OUTPUT} 4549 } 4550 "" 4551 end 4552 case int_to_uint 4553 version 320 es 4554 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4555 values 4556 { 4557 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4558 output bool out0 = [ false | true | true | true | true ]; 4559 } 4560 4561 both "" 4562 #version 320 es 4563 precision highp float; 4564 ${DECLARATIONS} 4565 4566 void main() 4567 { 4568 ${SETUP} 4569 out0 = 2 != in0; 4570 ${OUTPUT} 4571 } 4572 "" 4573 end 4574 case uint_to_float 4575 version 320 es 4576 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4577 values 4578 { 4579 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4580 output bool out0 = [ true | true | true | true | true ]; 4581 } 4582 4583 both "" 4584 #version 320 es 4585 precision highp float; 4586 ${DECLARATIONS} 4587 4588 void main() 4589 { 4590 ${SETUP} 4591 out0 = 2.0 != in0; 4592 ${OUTPUT} 4593 } 4594 "" 4595 end 4596 case ivec2_to_uvec2 4597 version 320 es 4598 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4599 values 4600 { 4601 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4602 output bool out0 = [ false | true | true ]; 4603 } 4604 4605 both "" 4606 #version 320 es 4607 precision highp float; 4608 ${DECLARATIONS} 4609 4610 void main() 4611 { 4612 ${SETUP} 4613 out0 = uvec2(1, 2) != in0; 4614 ${OUTPUT} 4615 } 4616 "" 4617 end 4618 case ivec2_to_vec2 4619 version 320 es 4620 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4621 values 4622 { 4623 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 4624 output bool out0 = [ false | true | true ]; 4625 } 4626 4627 both "" 4628 #version 320 es 4629 precision highp float; 4630 ${DECLARATIONS} 4631 4632 void main() 4633 { 4634 ${SETUP} 4635 out0 = vec2(1.0, 2.0) != in0; 4636 ${OUTPUT} 4637 } 4638 "" 4639 end 4640 case uvec2_to_vec2 4641 version 320 es 4642 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4643 values 4644 { 4645 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 4646 output bool out0 = [ true | true | true ]; 4647 } 4648 4649 both "" 4650 #version 320 es 4651 precision highp float; 4652 ${DECLARATIONS} 4653 4654 void main() 4655 { 4656 ${SETUP} 4657 out0 = vec2(1.0, 2.0) != in0; 4658 ${OUTPUT} 4659 } 4660 "" 4661 end 4662 case ivec3_to_uvec3 4663 version 320 es 4664 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4665 values 4666 { 4667 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4668 output bool out0 = [ false | true | true ]; 4669 } 4670 4671 both "" 4672 #version 320 es 4673 precision highp float; 4674 ${DECLARATIONS} 4675 4676 void main() 4677 { 4678 ${SETUP} 4679 out0 = uvec3(1, 2, 3) != in0; 4680 ${OUTPUT} 4681 } 4682 "" 4683 end 4684 case ivec3_to_vec3 4685 version 320 es 4686 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4687 values 4688 { 4689 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 4690 output bool out0 = [ false | true | true ]; 4691 } 4692 4693 both "" 4694 #version 320 es 4695 precision highp float; 4696 ${DECLARATIONS} 4697 4698 void main() 4699 { 4700 ${SETUP} 4701 out0 = vec3(1.0, 2.0, 3.0) != in0; 4702 ${OUTPUT} 4703 } 4704 "" 4705 end 4706 case uvec3_to_vec3 4707 version 320 es 4708 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4709 values 4710 { 4711 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 4712 output bool out0 = [ true | true | true ]; 4713 } 4714 4715 both "" 4716 #version 320 es 4717 precision highp float; 4718 ${DECLARATIONS} 4719 4720 void main() 4721 { 4722 ${SETUP} 4723 out0 = vec3(1.0, 2.0, 3.0) != in0; 4724 ${OUTPUT} 4725 } 4726 "" 4727 end 4728 case ivec4_to_uvec4 4729 version 320 es 4730 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4731 values 4732 { 4733 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4734 output bool out0 = [ false | true | true ]; 4735 } 4736 4737 both "" 4738 #version 320 es 4739 precision highp float; 4740 ${DECLARATIONS} 4741 4742 void main() 4743 { 4744 ${SETUP} 4745 out0 = uvec4(1, 2, 3, 4) != in0; 4746 ${OUTPUT} 4747 } 4748 "" 4749 end 4750 case ivec4_to_vec4 4751 version 320 es 4752 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4753 values 4754 { 4755 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 4756 output bool out0 = [ false | true | true ]; 4757 } 4758 4759 both "" 4760 #version 320 es 4761 precision highp float; 4762 ${DECLARATIONS} 4763 4764 void main() 4765 { 4766 ${SETUP} 4767 out0 = vec4(1.0, 2.0, 3.0, 4.0) != in0; 4768 ${OUTPUT} 4769 } 4770 "" 4771 end 4772 case uvec4_to_vec4 4773 version 320 es 4774 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4775 values 4776 { 4777 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 4778 output bool out0 = [ true | true | true ]; 4779 } 4780 4781 both "" 4782 #version 320 es 4783 precision highp float; 4784 ${DECLARATIONS} 4785 4786 void main() 4787 { 4788 ${SETUP} 4789 out0 = vec4(1.0, 2.0, 3.0, 4.0) != in0; 4790 ${OUTPUT} 4791 } 4792 "" 4793 end 4794 4795 end # not_equal 4796 group less "Less than" 4797 4798 case int_to_float 4799 version 320 es 4800 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4801 values 4802 { 4803 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4804 output bool out0 = [ false | false | false | true | true ]; 4805 } 4806 4807 both "" 4808 #version 320 es 4809 precision highp float; 4810 ${DECLARATIONS} 4811 4812 void main() 4813 { 4814 ${SETUP} 4815 out0 = 2.0 < in0; 4816 ${OUTPUT} 4817 } 4818 "" 4819 end 4820 case int_to_uint 4821 version 320 es 4822 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4823 values 4824 { 4825 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4826 output bool out0 = [ false | false | false | true | true ]; 4827 } 4828 4829 both "" 4830 #version 320 es 4831 precision highp float; 4832 ${DECLARATIONS} 4833 4834 void main() 4835 { 4836 ${SETUP} 4837 out0 = 2 < in0; 4838 ${OUTPUT} 4839 } 4840 "" 4841 end 4842 case uint_to_float 4843 version 320 es 4844 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4845 values 4846 { 4847 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4848 output bool out0 = [ false | true | true | true | true ]; 4849 } 4850 4851 both "" 4852 #version 320 es 4853 precision highp float; 4854 ${DECLARATIONS} 4855 4856 void main() 4857 { 4858 ${SETUP} 4859 out0 = 2.0 < in0; 4860 ${OUTPUT} 4861 } 4862 "" 4863 end 4864 4865 end # less 4866 group greater "Greater than" 4867 4868 case int_to_float 4869 version 320 es 4870 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4871 values 4872 { 4873 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4874 output bool out0 = [ false | true | true | false | false ]; 4875 } 4876 4877 both "" 4878 #version 320 es 4879 precision highp float; 4880 ${DECLARATIONS} 4881 4882 void main() 4883 { 4884 ${SETUP} 4885 out0 = 2.0 > in0; 4886 ${OUTPUT} 4887 } 4888 "" 4889 end 4890 case int_to_uint 4891 version 320 es 4892 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4893 values 4894 { 4895 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4896 output bool out0 = [ false | true | true | false | false ]; 4897 } 4898 4899 both "" 4900 #version 320 es 4901 precision highp float; 4902 ${DECLARATIONS} 4903 4904 void main() 4905 { 4906 ${SETUP} 4907 out0 = 2 > in0; 4908 ${OUTPUT} 4909 } 4910 "" 4911 end 4912 case uint_to_float 4913 version 320 es 4914 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4915 values 4916 { 4917 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4918 output bool out0 = [ true | false | false | false | false ]; 4919 } 4920 4921 both "" 4922 #version 320 es 4923 precision highp float; 4924 ${DECLARATIONS} 4925 4926 void main() 4927 { 4928 ${SETUP} 4929 out0 = 2.0 > in0; 4930 ${OUTPUT} 4931 } 4932 "" 4933 end 4934 4935 end # greater 4936 group less_or_equal "Less than or equal" 4937 4938 case int_to_float 4939 version 320 es 4940 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4941 values 4942 { 4943 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4944 output bool out0 = [ true | false | false | true | true ]; 4945 } 4946 4947 both "" 4948 #version 320 es 4949 precision highp float; 4950 ${DECLARATIONS} 4951 4952 void main() 4953 { 4954 ${SETUP} 4955 out0 = 2.0 <= in0; 4956 ${OUTPUT} 4957 } 4958 "" 4959 end 4960 case int_to_uint 4961 version 320 es 4962 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4963 values 4964 { 4965 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 4966 output bool out0 = [ true | false | false | true | true ]; 4967 } 4968 4969 both "" 4970 #version 320 es 4971 precision highp float; 4972 ${DECLARATIONS} 4973 4974 void main() 4975 { 4976 ${SETUP} 4977 out0 = 2 <= in0; 4978 ${OUTPUT} 4979 } 4980 "" 4981 end 4982 case uint_to_float 4983 version 320 es 4984 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 4985 values 4986 { 4987 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 4988 output bool out0 = [ false | true | true | true | true ]; 4989 } 4990 4991 both "" 4992 #version 320 es 4993 precision highp float; 4994 ${DECLARATIONS} 4995 4996 void main() 4997 { 4998 ${SETUP} 4999 out0 = 2.0 <= in0; 5000 ${OUTPUT} 5001 } 5002 "" 5003 end 5004 5005 end # less_or_equal 5006 group greater_or_equal "Greater than or equal" 5007 5008 case int_to_float 5009 version 320 es 5010 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5011 values 5012 { 5013 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5014 output bool out0 = [ true | true | true | false | false ]; 5015 } 5016 5017 both "" 5018 #version 320 es 5019 precision highp float; 5020 ${DECLARATIONS} 5021 5022 void main() 5023 { 5024 ${SETUP} 5025 out0 = 2.0 >= in0; 5026 ${OUTPUT} 5027 } 5028 "" 5029 end 5030 case int_to_uint 5031 version 320 es 5032 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5033 values 5034 { 5035 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5036 output bool out0 = [ true | true | true | false | false ]; 5037 } 5038 5039 both "" 5040 #version 320 es 5041 precision highp float; 5042 ${DECLARATIONS} 5043 5044 void main() 5045 { 5046 ${SETUP} 5047 out0 = 2 >= in0; 5048 ${OUTPUT} 5049 } 5050 "" 5051 end 5052 case uint_to_float 5053 version 320 es 5054 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5055 values 5056 { 5057 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5058 output bool out0 = [ true | false | false | false | false ]; 5059 } 5060 5061 both "" 5062 #version 320 es 5063 precision highp float; 5064 ${DECLARATIONS} 5065 5066 void main() 5067 { 5068 ${SETUP} 5069 out0 = 2.0 >= in0; 5070 ${OUTPUT} 5071 } 5072 "" 5073 end 5074 5075 end # greater_or_equal 5076 5077 end # literal_before_input 5078 5079end # comparisons 5080group array_subscripts "Array subscripts" 5081 5082 group input_before_subscript "Input before subscript" 5083 5084 case int_to_float 5085 version 320 es 5086 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5087 values 5088 { 5089 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5090 output float out0 = [ 3.0 | 2.0 | 2.0 | 4.0 | 6.0 ]; 5091 } 5092 5093 both "" 5094 #version 320 es 5095 precision highp float; 5096 ${DECLARATIONS} 5097 5098 void main() 5099 { 5100 ${SETUP} 5101 float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5102 out0 = in0 + x[1]; 5103 ${OUTPUT} 5104 } 5105 "" 5106 end 5107 case int_to_uint 5108 version 320 es 5109 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5110 values 5111 { 5112 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5113 output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 5114 } 5115 5116 both "" 5117 #version 320 es 5118 precision highp float; 5119 ${DECLARATIONS} 5120 5121 void main() 5122 { 5123 ${SETUP} 5124 uint[] x = uint[] (1, 3, 4, 7, 11); 5125 out0 = in0 + x[1]; 5126 ${OUTPUT} 5127 } 5128 "" 5129 end 5130 case int_to_vec2 5131 version 320 es 5132 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5133 values 5134 { 5135 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5136 output vec2 out0 = [ vec2(4.0, 3.0) | vec2(3.0, 2.0) | vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(7.0, 6.0) ]; 5137 } 5138 5139 both "" 5140 #version 320 es 5141 precision highp float; 5142 ${DECLARATIONS} 5143 5144 void main() 5145 { 5146 ${SETUP} 5147 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5148 out0 = in0 + x[1]; 5149 ${OUTPUT} 5150 } 5151 "" 5152 end 5153 case int_to_vec3 5154 version 320 es 5155 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5156 values 5157 { 5158 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5159 output vec3 out0 = [ vec3(4.0, 3.0, 4.0) | vec3(3.0, 2.0, 3.0) | vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(7.0, 6.0, 7.0) ]; 5160 } 5161 5162 both "" 5163 #version 320 es 5164 precision highp float; 5165 ${DECLARATIONS} 5166 5167 void main() 5168 { 5169 ${SETUP} 5170 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5171 out0 = in0 + x[1]; 5172 ${OUTPUT} 5173 } 5174 "" 5175 end 5176 case int_to_vec4 5177 version 320 es 5178 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5179 values 5180 { 5181 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5182 output vec4 out0 = [ vec4(4.0, 3.0, 4.0, 8.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(7.0, 6.0, 7.0, 11.0) ]; 5183 } 5184 5185 both "" 5186 #version 320 es 5187 precision highp float; 5188 ${DECLARATIONS} 5189 5190 void main() 5191 { 5192 ${SETUP} 5193 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5194 out0 = in0 + x[1]; 5195 ${OUTPUT} 5196 } 5197 "" 5198 end 5199 case int_to_uvec2 5200 version 320 es 5201 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5202 values 5203 { 5204 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5205 output uvec2 out0 = [ uvec2(6, 8) | uvec2(5, 7) | uvec2(5, 7) | uvec2(7, 9) | uvec2(9, 11) ]; 5206 } 5207 5208 both "" 5209 #version 320 es 5210 precision highp float; 5211 ${DECLARATIONS} 5212 5213 void main() 5214 { 5215 ${SETUP} 5216 uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5217 out0 = in0 + x[1]; 5218 ${OUTPUT} 5219 } 5220 "" 5221 end 5222 case int_to_uvec3 5223 version 320 es 5224 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5225 values 5226 { 5227 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5228 output uvec3 out0 = [ uvec3(6, 8, 4) | uvec3(5, 7, 3) | uvec3(5, 7, 3) | uvec3(7, 9, 5) | uvec3(9, 11, 7) ]; 5229 } 5230 5231 both "" 5232 #version 320 es 5233 precision highp float; 5234 ${DECLARATIONS} 5235 5236 void main() 5237 { 5238 ${SETUP} 5239 uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5240 out0 = in0 + x[1]; 5241 ${OUTPUT} 5242 } 5243 "" 5244 end 5245 case int_to_uvec4 5246 version 320 es 5247 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5248 values 5249 { 5250 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5251 output uvec4 out0 = [ uvec4(6, 8, 4, 11) | uvec4(5, 7, 3, 10) | uvec4(5, 7, 3, 10) | uvec4(7, 9, 5, 12) | uvec4(9, 11, 7, 14) ]; 5252 } 5253 5254 both "" 5255 #version 320 es 5256 precision highp float; 5257 ${DECLARATIONS} 5258 5259 void main() 5260 { 5261 ${SETUP} 5262 uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5263 out0 = in0 + x[1]; 5264 ${OUTPUT} 5265 } 5266 "" 5267 end 5268 case uint_to_float 5269 version 320 es 5270 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5271 values 5272 { 5273 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5274 output float out0 = [ 2.0 | 4.0 | 5.0 | 8.0 | 12.0 ]; 5275 } 5276 5277 both "" 5278 #version 320 es 5279 precision highp float; 5280 ${DECLARATIONS} 5281 5282 void main() 5283 { 5284 ${SETUP} 5285 float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5286 out0 = in0 + x[1]; 5287 ${OUTPUT} 5288 } 5289 "" 5290 end 5291 case uint_to_vec2 5292 version 320 es 5293 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5294 values 5295 { 5296 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5297 output vec2 out0 = [ vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(6.0, 5.0) | vec2(9.0, 8.0) | vec2(13.0, 12.0) ]; 5298 } 5299 5300 both "" 5301 #version 320 es 5302 precision highp float; 5303 ${DECLARATIONS} 5304 5305 void main() 5306 { 5307 ${SETUP} 5308 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5309 out0 = in0 + x[1]; 5310 ${OUTPUT} 5311 } 5312 "" 5313 end 5314 case uint_to_vec3 5315 version 320 es 5316 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5317 values 5318 { 5319 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5320 output vec3 out0 = [ vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(6.0, 5.0, 6.0) | vec3(9.0, 8.0, 9.0) | vec3(13.0, 12.0, 13.0) ]; 5321 } 5322 5323 both "" 5324 #version 320 es 5325 precision highp float; 5326 ${DECLARATIONS} 5327 5328 void main() 5329 { 5330 ${SETUP} 5331 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5332 out0 = in0 + x[1]; 5333 ${OUTPUT} 5334 } 5335 "" 5336 end 5337 case uint_to_vec4 5338 version 320 es 5339 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5340 values 5341 { 5342 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5343 output vec4 out0 = [ vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(6.0, 5.0, 6.0, 10.0) | vec4(9.0, 8.0, 9.0, 13.0) | vec4(13.0, 12.0, 13.0, 17.0) ]; 5344 } 5345 5346 both "" 5347 #version 320 es 5348 precision highp float; 5349 ${DECLARATIONS} 5350 5351 void main() 5352 { 5353 ${SETUP} 5354 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5355 out0 = in0 + x[1]; 5356 ${OUTPUT} 5357 } 5358 "" 5359 end 5360 case ivec2_to_uvec2 5361 version 320 es 5362 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5363 values 5364 { 5365 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5366 output uvec2 out0 = [ uvec2(5, 8) | uvec2(6, 7) | uvec2(7, 13) ]; 5367 } 5368 5369 both "" 5370 #version 320 es 5371 precision highp float; 5372 ${DECLARATIONS} 5373 5374 void main() 5375 { 5376 ${SETUP} 5377 uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5378 out0 = in0 + x[1]; 5379 ${OUTPUT} 5380 } 5381 "" 5382 end 5383 case ivec2_to_vec2 5384 version 320 es 5385 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5386 values 5387 { 5388 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5389 output vec2 out0 = [ vec2(3.0, 3.0) | vec2(4.0, 2.0) | vec2(5.0, 8.0) ]; 5390 } 5391 5392 both "" 5393 #version 320 es 5394 precision highp float; 5395 ${DECLARATIONS} 5396 5397 void main() 5398 { 5399 ${SETUP} 5400 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5401 out0 = in0 + x[1]; 5402 ${OUTPUT} 5403 } 5404 "" 5405 end 5406 case uvec2_to_vec2 5407 version 320 es 5408 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5409 values 5410 { 5411 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 5412 output vec2 out0 = [ vec2(4.0, 4.0) | vec2(6.0, 7.0) | vec2(3.0, 14.0) ]; 5413 } 5414 5415 both "" 5416 #version 320 es 5417 precision highp float; 5418 ${DECLARATIONS} 5419 5420 void main() 5421 { 5422 ${SETUP} 5423 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5424 out0 = in0 + x[1]; 5425 ${OUTPUT} 5426 } 5427 "" 5428 end 5429 case ivec3_to_uvec3 5430 version 320 es 5431 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5432 values 5433 { 5434 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5435 output uvec3 out0 = [ uvec3(5, 8, 5) | uvec3(6, 7, 4) | uvec3(7, 13, 4) ]; 5436 } 5437 5438 both "" 5439 #version 320 es 5440 precision highp float; 5441 ${DECLARATIONS} 5442 5443 void main() 5444 { 5445 ${SETUP} 5446 uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5447 out0 = in0 + x[1]; 5448 ${OUTPUT} 5449 } 5450 "" 5451 end 5452 case ivec3_to_vec3 5453 version 320 es 5454 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5455 values 5456 { 5457 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5458 output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(4.0, 2.0, 4.0) | vec3(5.0, 8.0, 4.0) ]; 5459 } 5460 5461 both "" 5462 #version 320 es 5463 precision highp float; 5464 ${DECLARATIONS} 5465 5466 void main() 5467 { 5468 ${SETUP} 5469 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5470 out0 = in0 + x[1]; 5471 ${OUTPUT} 5472 } 5473 "" 5474 end 5475 case uvec3_to_vec3 5476 version 320 es 5477 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5478 values 5479 { 5480 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 5481 output vec3 out0 = [ vec3(4.0, 4.0, 7.0) | vec3(6.0, 7.0, 4.0) | vec3(3.0, 14.0, 9.0) ]; 5482 } 5483 5484 both "" 5485 #version 320 es 5486 precision highp float; 5487 ${DECLARATIONS} 5488 5489 void main() 5490 { 5491 ${SETUP} 5492 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5493 out0 = in0 + x[1]; 5494 ${OUTPUT} 5495 } 5496 "" 5497 end 5498 case ivec4_to_uvec4 5499 version 320 es 5500 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5501 values 5502 { 5503 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5504 output uvec4 out0 = [ uvec4(5, 8, 5, 13) | uvec4(6, 7, 4, 15) | uvec4(7, 13, 4, 14) ]; 5505 } 5506 5507 both "" 5508 #version 320 es 5509 precision highp float; 5510 ${DECLARATIONS} 5511 5512 void main() 5513 { 5514 ${SETUP} 5515 uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5516 out0 = in0 + x[1]; 5517 ${OUTPUT} 5518 } 5519 "" 5520 end 5521 case ivec4_to_vec4 5522 version 320 es 5523 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5524 values 5525 { 5526 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5527 output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(5.0, 8.0, 4.0, 11.0) ]; 5528 } 5529 5530 both "" 5531 #version 320 es 5532 precision highp float; 5533 ${DECLARATIONS} 5534 5535 void main() 5536 { 5537 ${SETUP} 5538 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5539 out0 = in0 + x[1]; 5540 ${OUTPUT} 5541 } 5542 "" 5543 end 5544 case uvec4_to_vec4 5545 version 320 es 5546 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5547 values 5548 { 5549 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 5550 output vec4 out0 = [ vec4(4.0, 4.0, 7.0, 14.0) | vec4(6.0, 7.0, 4.0, 15.0) | vec4(3.0, 14.0, 9.0, 10.0) ]; 5551 } 5552 5553 both "" 5554 #version 320 es 5555 precision highp float; 5556 ${DECLARATIONS} 5557 5558 void main() 5559 { 5560 ${SETUP} 5561 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5562 out0 = in0 + x[1]; 5563 ${OUTPUT} 5564 } 5565 "" 5566 end 5567 5568 end # input_before_subscript 5569 group subscript_before_input "Subscript before input" 5570 5571 case int_to_float 5572 version 320 es 5573 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5574 values 5575 { 5576 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5577 output float out0 = [ 3.0 | 2.0 | 2.0 | 4.0 | 6.0 ]; 5578 } 5579 5580 both "" 5581 #version 320 es 5582 precision highp float; 5583 ${DECLARATIONS} 5584 5585 void main() 5586 { 5587 ${SETUP} 5588 float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5589 out0 = x[1] + in0; 5590 ${OUTPUT} 5591 } 5592 "" 5593 end 5594 case int_to_uint 5595 version 320 es 5596 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5597 values 5598 { 5599 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5600 output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 5601 } 5602 5603 both "" 5604 #version 320 es 5605 precision highp float; 5606 ${DECLARATIONS} 5607 5608 void main() 5609 { 5610 ${SETUP} 5611 uint[] x = uint[] (1, 3, 4, 7, 11); 5612 out0 = x[1] + in0; 5613 ${OUTPUT} 5614 } 5615 "" 5616 end 5617 case int_to_vec2 5618 version 320 es 5619 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5620 values 5621 { 5622 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5623 output vec2 out0 = [ vec2(4.0, 3.0) | vec2(3.0, 2.0) | vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(7.0, 6.0) ]; 5624 } 5625 5626 both "" 5627 #version 320 es 5628 precision highp float; 5629 ${DECLARATIONS} 5630 5631 void main() 5632 { 5633 ${SETUP} 5634 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5635 out0 = x[1] + in0; 5636 ${OUTPUT} 5637 } 5638 "" 5639 end 5640 case int_to_vec3 5641 version 320 es 5642 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5643 values 5644 { 5645 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5646 output vec3 out0 = [ vec3(4.0, 3.0, 4.0) | vec3(3.0, 2.0, 3.0) | vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(7.0, 6.0, 7.0) ]; 5647 } 5648 5649 both "" 5650 #version 320 es 5651 precision highp float; 5652 ${DECLARATIONS} 5653 5654 void main() 5655 { 5656 ${SETUP} 5657 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5658 out0 = x[1] + in0; 5659 ${OUTPUT} 5660 } 5661 "" 5662 end 5663 case int_to_vec4 5664 version 320 es 5665 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5666 values 5667 { 5668 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5669 output vec4 out0 = [ vec4(4.0, 3.0, 4.0, 8.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(7.0, 6.0, 7.0, 11.0) ]; 5670 } 5671 5672 both "" 5673 #version 320 es 5674 precision highp float; 5675 ${DECLARATIONS} 5676 5677 void main() 5678 { 5679 ${SETUP} 5680 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5681 out0 = x[1] + in0; 5682 ${OUTPUT} 5683 } 5684 "" 5685 end 5686 case int_to_uvec2 5687 version 320 es 5688 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5689 values 5690 { 5691 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5692 output uvec2 out0 = [ uvec2(6, 8) | uvec2(5, 7) | uvec2(5, 7) | uvec2(7, 9) | uvec2(9, 11) ]; 5693 } 5694 5695 both "" 5696 #version 320 es 5697 precision highp float; 5698 ${DECLARATIONS} 5699 5700 void main() 5701 { 5702 ${SETUP} 5703 uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5704 out0 = x[1] + in0; 5705 ${OUTPUT} 5706 } 5707 "" 5708 end 5709 case int_to_uvec3 5710 version 320 es 5711 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5712 values 5713 { 5714 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5715 output uvec3 out0 = [ uvec3(6, 8, 4) | uvec3(5, 7, 3) | uvec3(5, 7, 3) | uvec3(7, 9, 5) | uvec3(9, 11, 7) ]; 5716 } 5717 5718 both "" 5719 #version 320 es 5720 precision highp float; 5721 ${DECLARATIONS} 5722 5723 void main() 5724 { 5725 ${SETUP} 5726 uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5727 out0 = x[1] + in0; 5728 ${OUTPUT} 5729 } 5730 "" 5731 end 5732 case int_to_uvec4 5733 version 320 es 5734 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5735 values 5736 { 5737 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 5738 output uvec4 out0 = [ uvec4(6, 8, 4, 11) | uvec4(5, 7, 3, 10) | uvec4(5, 7, 3, 10) | uvec4(7, 9, 5, 12) | uvec4(9, 11, 7, 14) ]; 5739 } 5740 5741 both "" 5742 #version 320 es 5743 precision highp float; 5744 ${DECLARATIONS} 5745 5746 void main() 5747 { 5748 ${SETUP} 5749 uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 5750 out0 = x[1] + in0; 5751 ${OUTPUT} 5752 } 5753 "" 5754 end 5755 case uint_to_float 5756 version 320 es 5757 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5758 values 5759 { 5760 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5761 output float out0 = [ 2.0 | 4.0 | 5.0 | 8.0 | 12.0 ]; 5762 } 5763 5764 both "" 5765 #version 320 es 5766 precision highp float; 5767 ${DECLARATIONS} 5768 5769 void main() 5770 { 5771 ${SETUP} 5772 float[] x = float[] (2.0, 1.0, 1.0, 3.0, 5.0); 5773 out0 = x[1] + in0; 5774 ${OUTPUT} 5775 } 5776 "" 5777 end 5778 case uint_to_vec2 5779 version 320 es 5780 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5781 values 5782 { 5783 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5784 output vec2 out0 = [ vec2(3.0, 2.0) | vec2(5.0, 4.0) | vec2(6.0, 5.0) | vec2(9.0, 8.0) | vec2(13.0, 12.0) ]; 5785 } 5786 5787 both "" 5788 #version 320 es 5789 precision highp float; 5790 ${DECLARATIONS} 5791 5792 void main() 5793 { 5794 ${SETUP} 5795 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5796 out0 = x[1] + in0; 5797 ${OUTPUT} 5798 } 5799 "" 5800 end 5801 case uint_to_vec3 5802 version 320 es 5803 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5804 values 5805 { 5806 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5807 output vec3 out0 = [ vec3(3.0, 2.0, 3.0) | vec3(5.0, 4.0, 5.0) | vec3(6.0, 5.0, 6.0) | vec3(9.0, 8.0, 9.0) | vec3(13.0, 12.0, 13.0) ]; 5808 } 5809 5810 both "" 5811 #version 320 es 5812 precision highp float; 5813 ${DECLARATIONS} 5814 5815 void main() 5816 { 5817 ${SETUP} 5818 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5819 out0 = x[1] + in0; 5820 ${OUTPUT} 5821 } 5822 "" 5823 end 5824 case uint_to_vec4 5825 version 320 es 5826 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5827 values 5828 { 5829 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 5830 output vec4 out0 = [ vec4(3.0, 2.0, 3.0, 7.0) | vec4(5.0, 4.0, 5.0, 9.0) | vec4(6.0, 5.0, 6.0, 10.0) | vec4(9.0, 8.0, 9.0, 13.0) | vec4(13.0, 12.0, 13.0, 17.0) ]; 5831 } 5832 5833 both "" 5834 #version 320 es 5835 precision highp float; 5836 ${DECLARATIONS} 5837 5838 void main() 5839 { 5840 ${SETUP} 5841 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 5842 out0 = x[1] + in0; 5843 ${OUTPUT} 5844 } 5845 "" 5846 end 5847 case ivec2_to_uvec2 5848 version 320 es 5849 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5850 values 5851 { 5852 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5853 output uvec2 out0 = [ uvec2(5, 8) | uvec2(6, 7) | uvec2(7, 13) ]; 5854 } 5855 5856 both "" 5857 #version 320 es 5858 precision highp float; 5859 ${DECLARATIONS} 5860 5861 void main() 5862 { 5863 ${SETUP} 5864 uvec2[] x = uvec2[] (uvec2(2, 3), uvec2(4, 6), uvec2(1, 13)); 5865 out0 = x[1] + in0; 5866 ${OUTPUT} 5867 } 5868 "" 5869 end 5870 case ivec2_to_vec2 5871 version 320 es 5872 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5873 values 5874 { 5875 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 5876 output vec2 out0 = [ vec2(3.0, 3.0) | vec2(4.0, 2.0) | vec2(5.0, 8.0) ]; 5877 } 5878 5879 both "" 5880 #version 320 es 5881 precision highp float; 5882 ${DECLARATIONS} 5883 5884 void main() 5885 { 5886 ${SETUP} 5887 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5888 out0 = x[1] + in0; 5889 ${OUTPUT} 5890 } 5891 "" 5892 end 5893 case uvec2_to_vec2 5894 version 320 es 5895 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5896 values 5897 { 5898 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 5899 output vec2 out0 = [ vec2(4.0, 4.0) | vec2(6.0, 7.0) | vec2(3.0, 14.0) ]; 5900 } 5901 5902 both "" 5903 #version 320 es 5904 precision highp float; 5905 ${DECLARATIONS} 5906 5907 void main() 5908 { 5909 ${SETUP} 5910 vec2[] x = vec2[] (vec2(1.0, 2.0), vec2(2.0, 1.0), vec2(3.0, 7.0)); 5911 out0 = x[1] + in0; 5912 ${OUTPUT} 5913 } 5914 "" 5915 end 5916 case ivec3_to_uvec3 5917 version 320 es 5918 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5919 values 5920 { 5921 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5922 output uvec3 out0 = [ uvec3(5, 8, 5) | uvec3(6, 7, 4) | uvec3(7, 13, 4) ]; 5923 } 5924 5925 both "" 5926 #version 320 es 5927 precision highp float; 5928 ${DECLARATIONS} 5929 5930 void main() 5931 { 5932 ${SETUP} 5933 uvec3[] x = uvec3[] (uvec3(2, 3, 5), uvec3(4, 6, 2), uvec3(1, 13, 7)); 5934 out0 = x[1] + in0; 5935 ${OUTPUT} 5936 } 5937 "" 5938 end 5939 case ivec3_to_vec3 5940 version 320 es 5941 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5942 values 5943 { 5944 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 5945 output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(4.0, 2.0, 4.0) | vec3(5.0, 8.0, 4.0) ]; 5946 } 5947 5948 both "" 5949 #version 320 es 5950 precision highp float; 5951 ${DECLARATIONS} 5952 5953 void main() 5954 { 5955 ${SETUP} 5956 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5957 out0 = x[1] + in0; 5958 ${OUTPUT} 5959 } 5960 "" 5961 end 5962 case uvec3_to_vec3 5963 version 320 es 5964 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5965 values 5966 { 5967 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 5968 output vec3 out0 = [ vec3(4.0, 4.0, 7.0) | vec3(6.0, 7.0, 4.0) | vec3(3.0, 14.0, 9.0) ]; 5969 } 5970 5971 both "" 5972 #version 320 es 5973 precision highp float; 5974 ${DECLARATIONS} 5975 5976 void main() 5977 { 5978 ${SETUP} 5979 vec3[] x = vec3[] (vec3(1.0, 2.0, 3.0), vec3(2.0, 1.0, 2.0), vec3(3.0, 7.0, 2.0)); 5980 out0 = x[1] + in0; 5981 ${OUTPUT} 5982 } 5983 "" 5984 end 5985 case ivec4_to_uvec4 5986 version 320 es 5987 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 5988 values 5989 { 5990 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 5991 output uvec4 out0 = [ uvec4(5, 8, 5, 13) | uvec4(6, 7, 4, 15) | uvec4(7, 13, 4, 14) ]; 5992 } 5993 5994 both "" 5995 #version 320 es 5996 precision highp float; 5997 ${DECLARATIONS} 5998 5999 void main() 6000 { 6001 ${SETUP} 6002 uvec4[] x = uvec4[] (uvec4(2, 3, 5, 8), uvec4(4, 6, 2, 9), uvec4(1, 13, 7, 4)); 6003 out0 = x[1] + in0; 6004 ${OUTPUT} 6005 } 6006 "" 6007 end 6008 case ivec4_to_vec4 6009 version 320 es 6010 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6011 values 6012 { 6013 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6014 output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(5.0, 8.0, 4.0, 11.0) ]; 6015 } 6016 6017 both "" 6018 #version 320 es 6019 precision highp float; 6020 ${DECLARATIONS} 6021 6022 void main() 6023 { 6024 ${SETUP} 6025 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 6026 out0 = x[1] + in0; 6027 ${OUTPUT} 6028 } 6029 "" 6030 end 6031 case uvec4_to_vec4 6032 version 320 es 6033 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6034 values 6035 { 6036 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6037 output vec4 out0 = [ vec4(4.0, 4.0, 7.0, 14.0) | vec4(6.0, 7.0, 4.0, 15.0) | vec4(3.0, 14.0, 9.0, 10.0) ]; 6038 } 6039 6040 both "" 6041 #version 320 es 6042 precision highp float; 6043 ${DECLARATIONS} 6044 6045 void main() 6046 { 6047 ${SETUP} 6048 vec4[] x = vec4[] (vec4(1.0, 2.0, 3.0, 4.0), vec4(2.0, 1.0, 2.0, 6.0), vec4(3.0, 7.0, 2.0, 5.0)); 6049 out0 = x[1] + in0; 6050 ${OUTPUT} 6051 } 6052 "" 6053 end 6054 6055 end # subscript_before_input 6056 6057end # array_subscripts 6058group functions "Function calls" 6059 6060 case int_to_float 6061 version 320 es 6062 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6063 values 6064 { 6065 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6066 output float out0 = [ 4.0 | 2.0 | 2.0 | 6.0 | 10.0 ]; 6067 } 6068 6069 both "" 6070 #version 320 es 6071 precision highp float; 6072 ${DECLARATIONS} 6073 6074 float func (float a) 6075 { 6076 return a * float(2); 6077 } 6078 6079 void main() 6080 { 6081 ${SETUP} 6082 out0 = func(in0); 6083 ${OUTPUT} 6084 } 6085 "" 6086 end 6087 case int_to_uint 6088 version 320 es 6089 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6090 values 6091 { 6092 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6093 output uint out0 = [ 4 | 2 | 2 | 6 | 10 ]; 6094 } 6095 6096 both "" 6097 #version 320 es 6098 precision highp float; 6099 ${DECLARATIONS} 6100 6101 uint func (uint a) 6102 { 6103 return a * uint(2); 6104 } 6105 6106 void main() 6107 { 6108 ${SETUP} 6109 out0 = func(in0); 6110 ${OUTPUT} 6111 } 6112 "" 6113 end 6114 case uint_to_float 6115 version 320 es 6116 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6117 values 6118 { 6119 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6120 output float out0 = [ 2.0 | 6.0 | 8.0 | 14.0 | 22.0 ]; 6121 } 6122 6123 both "" 6124 #version 320 es 6125 precision highp float; 6126 ${DECLARATIONS} 6127 6128 float func (float a) 6129 { 6130 return a * float(2); 6131 } 6132 6133 void main() 6134 { 6135 ${SETUP} 6136 out0 = func(in0); 6137 ${OUTPUT} 6138 } 6139 "" 6140 end 6141 case ivec2_to_uvec2 6142 version 320 es 6143 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6144 values 6145 { 6146 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6147 output uvec2 out0 = [ uvec2(2, 4) | uvec2(4, 2) | uvec2(6, 14) ]; 6148 } 6149 6150 both "" 6151 #version 320 es 6152 precision highp float; 6153 ${DECLARATIONS} 6154 6155 uvec2 func (uvec2 a) 6156 { 6157 return a * uvec2(2); 6158 } 6159 6160 void main() 6161 { 6162 ${SETUP} 6163 out0 = func(in0); 6164 ${OUTPUT} 6165 } 6166 "" 6167 end 6168 case ivec2_to_vec2 6169 version 320 es 6170 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6171 values 6172 { 6173 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6174 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(4.0, 2.0) | vec2(6.0, 14.0) ]; 6175 } 6176 6177 both "" 6178 #version 320 es 6179 precision highp float; 6180 ${DECLARATIONS} 6181 6182 vec2 func (vec2 a) 6183 { 6184 return a * vec2(2); 6185 } 6186 6187 void main() 6188 { 6189 ${SETUP} 6190 out0 = func(in0); 6191 ${OUTPUT} 6192 } 6193 "" 6194 end 6195 case uvec2_to_vec2 6196 version 320 es 6197 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6198 values 6199 { 6200 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 6201 output vec2 out0 = [ vec2(4.0, 6.0) | vec2(8.0, 12.0) | vec2(2.0, 26.0) ]; 6202 } 6203 6204 both "" 6205 #version 320 es 6206 precision highp float; 6207 ${DECLARATIONS} 6208 6209 vec2 func (vec2 a) 6210 { 6211 return a * vec2(2); 6212 } 6213 6214 void main() 6215 { 6216 ${SETUP} 6217 out0 = func(in0); 6218 ${OUTPUT} 6219 } 6220 "" 6221 end 6222 case ivec3_to_uvec3 6223 version 320 es 6224 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6225 values 6226 { 6227 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6228 output uvec3 out0 = [ uvec3(2, 4, 6) | uvec3(4, 2, 4) | uvec3(6, 14, 4) ]; 6229 } 6230 6231 both "" 6232 #version 320 es 6233 precision highp float; 6234 ${DECLARATIONS} 6235 6236 uvec3 func (uvec3 a) 6237 { 6238 return a * uvec3(2); 6239 } 6240 6241 void main() 6242 { 6243 ${SETUP} 6244 out0 = func(in0); 6245 ${OUTPUT} 6246 } 6247 "" 6248 end 6249 case ivec3_to_vec3 6250 version 320 es 6251 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6252 values 6253 { 6254 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6255 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(4.0, 2.0, 4.0) | vec3(6.0, 14.0, 4.0) ]; 6256 } 6257 6258 both "" 6259 #version 320 es 6260 precision highp float; 6261 ${DECLARATIONS} 6262 6263 vec3 func (vec3 a) 6264 { 6265 return a * vec3(2); 6266 } 6267 6268 void main() 6269 { 6270 ${SETUP} 6271 out0 = func(in0); 6272 ${OUTPUT} 6273 } 6274 "" 6275 end 6276 case uvec3_to_vec3 6277 version 320 es 6278 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6279 values 6280 { 6281 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 6282 output vec3 out0 = [ vec3(4.0, 6.0, 10.0) | vec3(8.0, 12.0, 4.0) | vec3(2.0, 26.0, 14.0) ]; 6283 } 6284 6285 both "" 6286 #version 320 es 6287 precision highp float; 6288 ${DECLARATIONS} 6289 6290 vec3 func (vec3 a) 6291 { 6292 return a * vec3(2); 6293 } 6294 6295 void main() 6296 { 6297 ${SETUP} 6298 out0 = func(in0); 6299 ${OUTPUT} 6300 } 6301 "" 6302 end 6303 case ivec4_to_uvec4 6304 version 320 es 6305 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6306 values 6307 { 6308 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6309 output uvec4 out0 = [ uvec4(2, 4, 6, 8) | uvec4(4, 2, 4, 12) | uvec4(6, 14, 4, 10) ]; 6310 } 6311 6312 both "" 6313 #version 320 es 6314 precision highp float; 6315 ${DECLARATIONS} 6316 6317 uvec4 func (uvec4 a) 6318 { 6319 return a * uvec4(2); 6320 } 6321 6322 void main() 6323 { 6324 ${SETUP} 6325 out0 = func(in0); 6326 ${OUTPUT} 6327 } 6328 "" 6329 end 6330 case ivec4_to_vec4 6331 version 320 es 6332 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6333 values 6334 { 6335 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6336 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(4.0, 2.0, 4.0, 12.0) | vec4(6.0, 14.0, 4.0, 10.0) ]; 6337 } 6338 6339 both "" 6340 #version 320 es 6341 precision highp float; 6342 ${DECLARATIONS} 6343 6344 vec4 func (vec4 a) 6345 { 6346 return a * vec4(2); 6347 } 6348 6349 void main() 6350 { 6351 ${SETUP} 6352 out0 = func(in0); 6353 ${OUTPUT} 6354 } 6355 "" 6356 end 6357 case uvec4_to_vec4 6358 version 320 es 6359 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6360 values 6361 { 6362 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6363 output vec4 out0 = [ vec4(4.0, 6.0, 10.0, 16.0) | vec4(8.0, 12.0, 4.0, 18.0) | vec4(2.0, 26.0, 14.0, 8.0) ]; 6364 } 6365 6366 both "" 6367 #version 320 es 6368 precision highp float; 6369 ${DECLARATIONS} 6370 6371 vec4 func (vec4 a) 6372 { 6373 return a * vec4(2); 6374 } 6375 6376 void main() 6377 { 6378 ${SETUP} 6379 out0 = func(in0); 6380 ${OUTPUT} 6381 } 6382 "" 6383 end 6384 6385end # functions 6386group struct_fields "Struct field selectors" 6387 6388 group input_before_field "Input before field" 6389 6390 case int_to_float 6391 version 320 es 6392 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6393 values 6394 { 6395 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6396 output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 6397 } 6398 6399 both "" 6400 #version 320 es 6401 precision highp float; 6402 ${DECLARATIONS} 6403 6404 void main() 6405 { 6406 ${SETUP} 6407 struct { 6408 float val; 6409 } x; 6410 6411 x.val = 2.0; 6412 6413 out0 = in0 + x.val; 6414 ${OUTPUT} 6415 } 6416 "" 6417 end 6418 case int_to_uint 6419 version 320 es 6420 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6421 values 6422 { 6423 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6424 output uint out0 = [ 3 | 2 | 2 | 4 | 6 ]; 6425 } 6426 6427 both "" 6428 #version 320 es 6429 precision highp float; 6430 ${DECLARATIONS} 6431 6432 void main() 6433 { 6434 ${SETUP} 6435 struct { 6436 uint val; 6437 } x; 6438 6439 x.val = 1; 6440 6441 out0 = in0 + x.val; 6442 ${OUTPUT} 6443 } 6444 "" 6445 end 6446 case int_to_vec2 6447 version 320 es 6448 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6449 values 6450 { 6451 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6452 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 6453 } 6454 6455 both "" 6456 #version 320 es 6457 precision highp float; 6458 ${DECLARATIONS} 6459 6460 void main() 6461 { 6462 ${SETUP} 6463 struct { 6464 vec2 val; 6465 } x; 6466 6467 x.val = vec2(1.0, 2.0); 6468 6469 out0 = in0 + x.val; 6470 ${OUTPUT} 6471 } 6472 "" 6473 end 6474 case int_to_vec3 6475 version 320 es 6476 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6477 values 6478 { 6479 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6480 output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 6481 } 6482 6483 both "" 6484 #version 320 es 6485 precision highp float; 6486 ${DECLARATIONS} 6487 6488 void main() 6489 { 6490 ${SETUP} 6491 struct { 6492 vec3 val; 6493 } x; 6494 6495 x.val = vec3(1.0, 2.0, 3.0); 6496 6497 out0 = in0 + x.val; 6498 ${OUTPUT} 6499 } 6500 "" 6501 end 6502 case int_to_vec4 6503 version 320 es 6504 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6505 values 6506 { 6507 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6508 output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 6509 } 6510 6511 both "" 6512 #version 320 es 6513 precision highp float; 6514 ${DECLARATIONS} 6515 6516 void main() 6517 { 6518 ${SETUP} 6519 struct { 6520 vec4 val; 6521 } x; 6522 6523 x.val = vec4(1.0, 2.0, 3.0, 4.0); 6524 6525 out0 = in0 + x.val; 6526 ${OUTPUT} 6527 } 6528 "" 6529 end 6530 case int_to_uvec2 6531 version 320 es 6532 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6533 values 6534 { 6535 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6536 output uvec2 out0 = [ uvec2(4, 5) | uvec2(3, 4) | uvec2(3, 4) | uvec2(5, 6) | uvec2(7, 8) ]; 6537 } 6538 6539 both "" 6540 #version 320 es 6541 precision highp float; 6542 ${DECLARATIONS} 6543 6544 void main() 6545 { 6546 ${SETUP} 6547 struct { 6548 uvec2 val; 6549 } x; 6550 6551 x.val = uvec2(2, 3); 6552 6553 out0 = in0 + x.val; 6554 ${OUTPUT} 6555 } 6556 "" 6557 end 6558 case int_to_uvec3 6559 version 320 es 6560 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6561 values 6562 { 6563 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6564 output uvec3 out0 = [ uvec3(4, 5, 7) | uvec3(3, 4, 6) | uvec3(3, 4, 6) | uvec3(5, 6, 8) | uvec3(7, 8, 10) ]; 6565 } 6566 6567 both "" 6568 #version 320 es 6569 precision highp float; 6570 ${DECLARATIONS} 6571 6572 void main() 6573 { 6574 ${SETUP} 6575 struct { 6576 uvec3 val; 6577 } x; 6578 6579 x.val = uvec3(2, 3, 5); 6580 6581 out0 = in0 + x.val; 6582 ${OUTPUT} 6583 } 6584 "" 6585 end 6586 case int_to_uvec4 6587 version 320 es 6588 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6589 values 6590 { 6591 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6592 output uvec4 out0 = [ uvec4(4, 5, 7, 10) | uvec4(3, 4, 6, 9) | uvec4(3, 4, 6, 9) | uvec4(5, 6, 8, 11) | uvec4(7, 8, 10, 13) ]; 6593 } 6594 6595 both "" 6596 #version 320 es 6597 precision highp float; 6598 ${DECLARATIONS} 6599 6600 void main() 6601 { 6602 ${SETUP} 6603 struct { 6604 uvec4 val; 6605 } x; 6606 6607 x.val = uvec4(2, 3, 5, 8); 6608 6609 out0 = in0 + x.val; 6610 ${OUTPUT} 6611 } 6612 "" 6613 end 6614 case uint_to_float 6615 version 320 es 6616 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6617 values 6618 { 6619 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6620 output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 6621 } 6622 6623 both "" 6624 #version 320 es 6625 precision highp float; 6626 ${DECLARATIONS} 6627 6628 void main() 6629 { 6630 ${SETUP} 6631 struct { 6632 float val; 6633 } x; 6634 6635 x.val = 2.0; 6636 6637 out0 = in0 + x.val; 6638 ${OUTPUT} 6639 } 6640 "" 6641 end 6642 case uint_to_vec2 6643 version 320 es 6644 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6645 values 6646 { 6647 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6648 output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 6649 } 6650 6651 both "" 6652 #version 320 es 6653 precision highp float; 6654 ${DECLARATIONS} 6655 6656 void main() 6657 { 6658 ${SETUP} 6659 struct { 6660 vec2 val; 6661 } x; 6662 6663 x.val = vec2(1.0, 2.0); 6664 6665 out0 = in0 + x.val; 6666 ${OUTPUT} 6667 } 6668 "" 6669 end 6670 case uint_to_vec3 6671 version 320 es 6672 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6673 values 6674 { 6675 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6676 output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 6677 } 6678 6679 both "" 6680 #version 320 es 6681 precision highp float; 6682 ${DECLARATIONS} 6683 6684 void main() 6685 { 6686 ${SETUP} 6687 struct { 6688 vec3 val; 6689 } x; 6690 6691 x.val = vec3(1.0, 2.0, 3.0); 6692 6693 out0 = in0 + x.val; 6694 ${OUTPUT} 6695 } 6696 "" 6697 end 6698 case uint_to_vec4 6699 version 320 es 6700 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6701 values 6702 { 6703 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 6704 output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 6705 } 6706 6707 both "" 6708 #version 320 es 6709 precision highp float; 6710 ${DECLARATIONS} 6711 6712 void main() 6713 { 6714 ${SETUP} 6715 struct { 6716 vec4 val; 6717 } x; 6718 6719 x.val = vec4(1.0, 2.0, 3.0, 4.0); 6720 6721 out0 = in0 + x.val; 6722 ${OUTPUT} 6723 } 6724 "" 6725 end 6726 case ivec2_to_uvec2 6727 version 320 es 6728 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6729 values 6730 { 6731 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6732 output uvec2 out0 = [ uvec2(3, 5) | uvec2(4, 4) | uvec2(5, 10) ]; 6733 } 6734 6735 both "" 6736 #version 320 es 6737 precision highp float; 6738 ${DECLARATIONS} 6739 6740 void main() 6741 { 6742 ${SETUP} 6743 struct { 6744 uvec2 val; 6745 } x; 6746 6747 x.val = uvec2(2, 3); 6748 6749 out0 = in0 + x.val; 6750 ${OUTPUT} 6751 } 6752 "" 6753 end 6754 case ivec2_to_vec2 6755 version 320 es 6756 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6757 values 6758 { 6759 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 6760 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 6761 } 6762 6763 both "" 6764 #version 320 es 6765 precision highp float; 6766 ${DECLARATIONS} 6767 6768 void main() 6769 { 6770 ${SETUP} 6771 struct { 6772 vec2 val; 6773 } x; 6774 6775 x.val = vec2(1.0, 2.0); 6776 6777 out0 = in0 + x.val; 6778 ${OUTPUT} 6779 } 6780 "" 6781 end 6782 case uvec2_to_vec2 6783 version 320 es 6784 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6785 values 6786 { 6787 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 6788 output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 6789 } 6790 6791 both "" 6792 #version 320 es 6793 precision highp float; 6794 ${DECLARATIONS} 6795 6796 void main() 6797 { 6798 ${SETUP} 6799 struct { 6800 vec2 val; 6801 } x; 6802 6803 x.val = vec2(1.0, 2.0); 6804 6805 out0 = in0 + x.val; 6806 ${OUTPUT} 6807 } 6808 "" 6809 end 6810 case ivec3_to_uvec3 6811 version 320 es 6812 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6813 values 6814 { 6815 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6816 output uvec3 out0 = [ uvec3(3, 5, 8) | uvec3(4, 4, 7) | uvec3(5, 10, 7) ]; 6817 } 6818 6819 both "" 6820 #version 320 es 6821 precision highp float; 6822 ${DECLARATIONS} 6823 6824 void main() 6825 { 6826 ${SETUP} 6827 struct { 6828 uvec3 val; 6829 } x; 6830 6831 x.val = uvec3(2, 3, 5); 6832 6833 out0 = in0 + x.val; 6834 ${OUTPUT} 6835 } 6836 "" 6837 end 6838 case ivec3_to_vec3 6839 version 320 es 6840 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6841 values 6842 { 6843 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 6844 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 6845 } 6846 6847 both "" 6848 #version 320 es 6849 precision highp float; 6850 ${DECLARATIONS} 6851 6852 void main() 6853 { 6854 ${SETUP} 6855 struct { 6856 vec3 val; 6857 } x; 6858 6859 x.val = vec3(1.0, 2.0, 3.0); 6860 6861 out0 = in0 + x.val; 6862 ${OUTPUT} 6863 } 6864 "" 6865 end 6866 case uvec3_to_vec3 6867 version 320 es 6868 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6869 values 6870 { 6871 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 6872 output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 6873 } 6874 6875 both "" 6876 #version 320 es 6877 precision highp float; 6878 ${DECLARATIONS} 6879 6880 void main() 6881 { 6882 ${SETUP} 6883 struct { 6884 vec3 val; 6885 } x; 6886 6887 x.val = vec3(1.0, 2.0, 3.0); 6888 6889 out0 = in0 + x.val; 6890 ${OUTPUT} 6891 } 6892 "" 6893 end 6894 case ivec4_to_uvec4 6895 version 320 es 6896 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6897 values 6898 { 6899 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6900 output uvec4 out0 = [ uvec4(3, 5, 8, 12) | uvec4(4, 4, 7, 14) | uvec4(5, 10, 7, 13) ]; 6901 } 6902 6903 both "" 6904 #version 320 es 6905 precision highp float; 6906 ${DECLARATIONS} 6907 6908 void main() 6909 { 6910 ${SETUP} 6911 struct { 6912 uvec4 val; 6913 } x; 6914 6915 x.val = uvec4(2, 3, 5, 8); 6916 6917 out0 = in0 + x.val; 6918 ${OUTPUT} 6919 } 6920 "" 6921 end 6922 case ivec4_to_vec4 6923 version 320 es 6924 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6925 values 6926 { 6927 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 6928 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 6929 } 6930 6931 both "" 6932 #version 320 es 6933 precision highp float; 6934 ${DECLARATIONS} 6935 6936 void main() 6937 { 6938 ${SETUP} 6939 struct { 6940 vec4 val; 6941 } x; 6942 6943 x.val = vec4(1.0, 2.0, 3.0, 4.0); 6944 6945 out0 = in0 + x.val; 6946 ${OUTPUT} 6947 } 6948 "" 6949 end 6950 case uvec4_to_vec4 6951 version 320 es 6952 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6953 values 6954 { 6955 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 6956 output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 6957 } 6958 6959 both "" 6960 #version 320 es 6961 precision highp float; 6962 ${DECLARATIONS} 6963 6964 void main() 6965 { 6966 ${SETUP} 6967 struct { 6968 vec4 val; 6969 } x; 6970 6971 x.val = vec4(1.0, 2.0, 3.0, 4.0); 6972 6973 out0 = in0 + x.val; 6974 ${OUTPUT} 6975 } 6976 "" 6977 end 6978 6979 end # input_before_field 6980 group field_before_input "Field before input" 6981 6982 case int_to_float 6983 version 320 es 6984 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 6985 values 6986 { 6987 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 6988 output float out0 = [ 4.0 | 3.0 | 3.0 | 5.0 | 7.0 ]; 6989 } 6990 6991 both "" 6992 #version 320 es 6993 precision highp float; 6994 ${DECLARATIONS} 6995 6996 void main() 6997 { 6998 ${SETUP} 6999 struct { 7000 float val; 7001 } x; 7002 7003 x.val = 2.0; 7004 7005 out0 = x.val + in0; 7006 ${OUTPUT} 7007 } 7008 "" 7009 end 7010 case int_to_uint 7011 version 320 es 7012 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7013 values 7014 { 7015 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7016 output uint out0 = [ 3 | 2 | 2 | 4 | 6 ]; 7017 } 7018 7019 both "" 7020 #version 320 es 7021 precision highp float; 7022 ${DECLARATIONS} 7023 7024 void main() 7025 { 7026 ${SETUP} 7027 struct { 7028 uint val; 7029 } x; 7030 7031 x.val = 1; 7032 7033 out0 = x.val + in0; 7034 ${OUTPUT} 7035 } 7036 "" 7037 end 7038 case int_to_vec2 7039 version 320 es 7040 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7041 values 7042 { 7043 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7044 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(2.0, 3.0) | vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(6.0, 7.0) ]; 7045 } 7046 7047 both "" 7048 #version 320 es 7049 precision highp float; 7050 ${DECLARATIONS} 7051 7052 void main() 7053 { 7054 ${SETUP} 7055 struct { 7056 vec2 val; 7057 } x; 7058 7059 x.val = vec2(1.0, 2.0); 7060 7061 out0 = x.val + in0; 7062 ${OUTPUT} 7063 } 7064 "" 7065 end 7066 case int_to_vec3 7067 version 320 es 7068 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7069 values 7070 { 7071 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7072 output vec3 out0 = [ vec3(3.0, 4.0, 5.0) | vec3(2.0, 3.0, 4.0) | vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(6.0, 7.0, 8.0) ]; 7073 } 7074 7075 both "" 7076 #version 320 es 7077 precision highp float; 7078 ${DECLARATIONS} 7079 7080 void main() 7081 { 7082 ${SETUP} 7083 struct { 7084 vec3 val; 7085 } x; 7086 7087 x.val = vec3(1.0, 2.0, 3.0); 7088 7089 out0 = x.val + in0; 7090 ${OUTPUT} 7091 } 7092 "" 7093 end 7094 case int_to_vec4 7095 version 320 es 7096 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7097 values 7098 { 7099 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7100 output vec4 out0 = [ vec4(3.0, 4.0, 5.0, 6.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(6.0, 7.0, 8.0, 9.0) ]; 7101 } 7102 7103 both "" 7104 #version 320 es 7105 precision highp float; 7106 ${DECLARATIONS} 7107 7108 void main() 7109 { 7110 ${SETUP} 7111 struct { 7112 vec4 val; 7113 } x; 7114 7115 x.val = vec4(1.0, 2.0, 3.0, 4.0); 7116 7117 out0 = x.val + in0; 7118 ${OUTPUT} 7119 } 7120 "" 7121 end 7122 case int_to_uvec2 7123 version 320 es 7124 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7125 values 7126 { 7127 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7128 output uvec2 out0 = [ uvec2(4, 5) | uvec2(3, 4) | uvec2(3, 4) | uvec2(5, 6) | uvec2(7, 8) ]; 7129 } 7130 7131 both "" 7132 #version 320 es 7133 precision highp float; 7134 ${DECLARATIONS} 7135 7136 void main() 7137 { 7138 ${SETUP} 7139 struct { 7140 uvec2 val; 7141 } x; 7142 7143 x.val = uvec2(2, 3); 7144 7145 out0 = x.val + in0; 7146 ${OUTPUT} 7147 } 7148 "" 7149 end 7150 case int_to_uvec3 7151 version 320 es 7152 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7153 values 7154 { 7155 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7156 output uvec3 out0 = [ uvec3(4, 5, 7) | uvec3(3, 4, 6) | uvec3(3, 4, 6) | uvec3(5, 6, 8) | uvec3(7, 8, 10) ]; 7157 } 7158 7159 both "" 7160 #version 320 es 7161 precision highp float; 7162 ${DECLARATIONS} 7163 7164 void main() 7165 { 7166 ${SETUP} 7167 struct { 7168 uvec3 val; 7169 } x; 7170 7171 x.val = uvec3(2, 3, 5); 7172 7173 out0 = x.val + in0; 7174 ${OUTPUT} 7175 } 7176 "" 7177 end 7178 case int_to_uvec4 7179 version 320 es 7180 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7181 values 7182 { 7183 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7184 output uvec4 out0 = [ uvec4(4, 5, 7, 10) | uvec4(3, 4, 6, 9) | uvec4(3, 4, 6, 9) | uvec4(5, 6, 8, 11) | uvec4(7, 8, 10, 13) ]; 7185 } 7186 7187 both "" 7188 #version 320 es 7189 precision highp float; 7190 ${DECLARATIONS} 7191 7192 void main() 7193 { 7194 ${SETUP} 7195 struct { 7196 uvec4 val; 7197 } x; 7198 7199 x.val = uvec4(2, 3, 5, 8); 7200 7201 out0 = x.val + in0; 7202 ${OUTPUT} 7203 } 7204 "" 7205 end 7206 case uint_to_float 7207 version 320 es 7208 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7209 values 7210 { 7211 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7212 output float out0 = [ 3.0 | 5.0 | 6.0 | 9.0 | 13.0 ]; 7213 } 7214 7215 both "" 7216 #version 320 es 7217 precision highp float; 7218 ${DECLARATIONS} 7219 7220 void main() 7221 { 7222 ${SETUP} 7223 struct { 7224 float val; 7225 } x; 7226 7227 x.val = 2.0; 7228 7229 out0 = x.val + in0; 7230 ${OUTPUT} 7231 } 7232 "" 7233 end 7234 case uint_to_vec2 7235 version 320 es 7236 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7237 values 7238 { 7239 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7240 output vec2 out0 = [ vec2(2.0, 3.0) | vec2(4.0, 5.0) | vec2(5.0, 6.0) | vec2(8.0, 9.0) | vec2(12.0, 13.0) ]; 7241 } 7242 7243 both "" 7244 #version 320 es 7245 precision highp float; 7246 ${DECLARATIONS} 7247 7248 void main() 7249 { 7250 ${SETUP} 7251 struct { 7252 vec2 val; 7253 } x; 7254 7255 x.val = vec2(1.0, 2.0); 7256 7257 out0 = x.val + in0; 7258 ${OUTPUT} 7259 } 7260 "" 7261 end 7262 case uint_to_vec3 7263 version 320 es 7264 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7265 values 7266 { 7267 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7268 output vec3 out0 = [ vec3(2.0, 3.0, 4.0) | vec3(4.0, 5.0, 6.0) | vec3(5.0, 6.0, 7.0) | vec3(8.0, 9.0, 10.0) | vec3(12.0, 13.0, 14.0) ]; 7269 } 7270 7271 both "" 7272 #version 320 es 7273 precision highp float; 7274 ${DECLARATIONS} 7275 7276 void main() 7277 { 7278 ${SETUP} 7279 struct { 7280 vec3 val; 7281 } x; 7282 7283 x.val = vec3(1.0, 2.0, 3.0); 7284 7285 out0 = x.val + in0; 7286 ${OUTPUT} 7287 } 7288 "" 7289 end 7290 case uint_to_vec4 7291 version 320 es 7292 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7293 values 7294 { 7295 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7296 output vec4 out0 = [ vec4(2.0, 3.0, 4.0, 5.0) | vec4(4.0, 5.0, 6.0, 7.0) | vec4(5.0, 6.0, 7.0, 8.0) | vec4(8.0, 9.0, 10.0, 11.0) | vec4(12.0, 13.0, 14.0, 15.0) ]; 7297 } 7298 7299 both "" 7300 #version 320 es 7301 precision highp float; 7302 ${DECLARATIONS} 7303 7304 void main() 7305 { 7306 ${SETUP} 7307 struct { 7308 vec4 val; 7309 } x; 7310 7311 x.val = vec4(1.0, 2.0, 3.0, 4.0); 7312 7313 out0 = x.val + in0; 7314 ${OUTPUT} 7315 } 7316 "" 7317 end 7318 case ivec2_to_uvec2 7319 version 320 es 7320 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7321 values 7322 { 7323 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7324 output uvec2 out0 = [ uvec2(3, 5) | uvec2(4, 4) | uvec2(5, 10) ]; 7325 } 7326 7327 both "" 7328 #version 320 es 7329 precision highp float; 7330 ${DECLARATIONS} 7331 7332 void main() 7333 { 7334 ${SETUP} 7335 struct { 7336 uvec2 val; 7337 } x; 7338 7339 x.val = uvec2(2, 3); 7340 7341 out0 = x.val + in0; 7342 ${OUTPUT} 7343 } 7344 "" 7345 end 7346 case ivec2_to_vec2 7347 version 320 es 7348 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7349 values 7350 { 7351 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7352 output vec2 out0 = [ vec2(2.0, 4.0) | vec2(3.0, 3.0) | vec2(4.0, 9.0) ]; 7353 } 7354 7355 both "" 7356 #version 320 es 7357 precision highp float; 7358 ${DECLARATIONS} 7359 7360 void main() 7361 { 7362 ${SETUP} 7363 struct { 7364 vec2 val; 7365 } x; 7366 7367 x.val = vec2(1.0, 2.0); 7368 7369 out0 = x.val + in0; 7370 ${OUTPUT} 7371 } 7372 "" 7373 end 7374 case uvec2_to_vec2 7375 version 320 es 7376 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7377 values 7378 { 7379 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 7380 output vec2 out0 = [ vec2(3.0, 5.0) | vec2(5.0, 8.0) | vec2(2.0, 15.0) ]; 7381 } 7382 7383 both "" 7384 #version 320 es 7385 precision highp float; 7386 ${DECLARATIONS} 7387 7388 void main() 7389 { 7390 ${SETUP} 7391 struct { 7392 vec2 val; 7393 } x; 7394 7395 x.val = vec2(1.0, 2.0); 7396 7397 out0 = x.val + in0; 7398 ${OUTPUT} 7399 } 7400 "" 7401 end 7402 case ivec3_to_uvec3 7403 version 320 es 7404 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7405 values 7406 { 7407 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7408 output uvec3 out0 = [ uvec3(3, 5, 8) | uvec3(4, 4, 7) | uvec3(5, 10, 7) ]; 7409 } 7410 7411 both "" 7412 #version 320 es 7413 precision highp float; 7414 ${DECLARATIONS} 7415 7416 void main() 7417 { 7418 ${SETUP} 7419 struct { 7420 uvec3 val; 7421 } x; 7422 7423 x.val = uvec3(2, 3, 5); 7424 7425 out0 = x.val + in0; 7426 ${OUTPUT} 7427 } 7428 "" 7429 end 7430 case ivec3_to_vec3 7431 version 320 es 7432 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7433 values 7434 { 7435 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7436 output vec3 out0 = [ vec3(2.0, 4.0, 6.0) | vec3(3.0, 3.0, 5.0) | vec3(4.0, 9.0, 5.0) ]; 7437 } 7438 7439 both "" 7440 #version 320 es 7441 precision highp float; 7442 ${DECLARATIONS} 7443 7444 void main() 7445 { 7446 ${SETUP} 7447 struct { 7448 vec3 val; 7449 } x; 7450 7451 x.val = vec3(1.0, 2.0, 3.0); 7452 7453 out0 = x.val + in0; 7454 ${OUTPUT} 7455 } 7456 "" 7457 end 7458 case uvec3_to_vec3 7459 version 320 es 7460 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7461 values 7462 { 7463 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 7464 output vec3 out0 = [ vec3(3.0, 5.0, 8.0) | vec3(5.0, 8.0, 5.0) | vec3(2.0, 15.0, 10.0) ]; 7465 } 7466 7467 both "" 7468 #version 320 es 7469 precision highp float; 7470 ${DECLARATIONS} 7471 7472 void main() 7473 { 7474 ${SETUP} 7475 struct { 7476 vec3 val; 7477 } x; 7478 7479 x.val = vec3(1.0, 2.0, 3.0); 7480 7481 out0 = x.val + in0; 7482 ${OUTPUT} 7483 } 7484 "" 7485 end 7486 case ivec4_to_uvec4 7487 version 320 es 7488 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7489 values 7490 { 7491 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7492 output uvec4 out0 = [ uvec4(3, 5, 8, 12) | uvec4(4, 4, 7, 14) | uvec4(5, 10, 7, 13) ]; 7493 } 7494 7495 both "" 7496 #version 320 es 7497 precision highp float; 7498 ${DECLARATIONS} 7499 7500 void main() 7501 { 7502 ${SETUP} 7503 struct { 7504 uvec4 val; 7505 } x; 7506 7507 x.val = uvec4(2, 3, 5, 8); 7508 7509 out0 = x.val + in0; 7510 ${OUTPUT} 7511 } 7512 "" 7513 end 7514 case ivec4_to_vec4 7515 version 320 es 7516 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7517 values 7518 { 7519 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7520 output vec4 out0 = [ vec4(2.0, 4.0, 6.0, 8.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(4.0, 9.0, 5.0, 9.0) ]; 7521 } 7522 7523 both "" 7524 #version 320 es 7525 precision highp float; 7526 ${DECLARATIONS} 7527 7528 void main() 7529 { 7530 ${SETUP} 7531 struct { 7532 vec4 val; 7533 } x; 7534 7535 x.val = vec4(1.0, 2.0, 3.0, 4.0); 7536 7537 out0 = x.val + in0; 7538 ${OUTPUT} 7539 } 7540 "" 7541 end 7542 case uvec4_to_vec4 7543 version 320 es 7544 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7545 values 7546 { 7547 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 7548 output vec4 out0 = [ vec4(3.0, 5.0, 8.0, 12.0) | vec4(5.0, 8.0, 5.0, 13.0) | vec4(2.0, 15.0, 10.0, 8.0) ]; 7549 } 7550 7551 both "" 7552 #version 320 es 7553 precision highp float; 7554 ${DECLARATIONS} 7555 7556 void main() 7557 { 7558 ${SETUP} 7559 struct { 7560 vec4 val; 7561 } x; 7562 7563 x.val = vec4(1.0, 2.0, 3.0, 4.0); 7564 7565 out0 = x.val + in0; 7566 ${OUTPUT} 7567 } 7568 "" 7569 end 7570 7571 end # field_before_input 7572 7573end # struct_fields 7574group parenthesized_expressions "Parenthesized expressions" 7575 7576 group paren_expr_before_literal "Parenthesized expression before literal" 7577 7578 group input_in_parens "Input variable in parenthesized expression" 7579 7580 case int_to_float 7581 version 320 es 7582 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7583 values 7584 { 7585 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7586 output float out0 = [ 6.0 | 4.0 | 4.0 | 8.0 | 12.0 ]; 7587 } 7588 7589 both "" 7590 #version 320 es 7591 precision highp float; 7592 ${DECLARATIONS} 7593 7594 void main() 7595 { 7596 ${SETUP} 7597 out0 = (in0 + 1.0) * 2.0; 7598 ${OUTPUT} 7599 } 7600 "" 7601 end 7602 case int_to_uint 7603 version 320 es 7604 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7605 values 7606 { 7607 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7608 output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 7609 } 7610 7611 both "" 7612 #version 320 es 7613 precision highp float; 7614 ${DECLARATIONS} 7615 7616 void main() 7617 { 7618 ${SETUP} 7619 out0 = (in0 + 3) * 1; 7620 ${OUTPUT} 7621 } 7622 "" 7623 end 7624 case int_to_vec2 7625 version 320 es 7626 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7627 values 7628 { 7629 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7630 output vec2 out0 = [ vec2(4.0, 6.0) | vec2(3.0, 4.0) | vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(7.0, 12.0) ]; 7631 } 7632 7633 both "" 7634 #version 320 es 7635 precision highp float; 7636 ${DECLARATIONS} 7637 7638 void main() 7639 { 7640 ${SETUP} 7641 out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7642 ${OUTPUT} 7643 } 7644 "" 7645 end 7646 case int_to_vec3 7647 version 320 es 7648 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7649 values 7650 { 7651 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7652 output vec3 out0 = [ vec3(4.0, 6.0, 12.0) | vec3(3.0, 4.0, 9.0) | vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(7.0, 12.0, 21.0) ]; 7653 } 7654 7655 both "" 7656 #version 320 es 7657 precision highp float; 7658 ${DECLARATIONS} 7659 7660 void main() 7661 { 7662 ${SETUP} 7663 out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7664 ${OUTPUT} 7665 } 7666 "" 7667 end 7668 case int_to_vec4 7669 version 320 es 7670 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7671 values 7672 { 7673 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7674 output vec4 out0 = [ vec4(4.0, 6.0, 12.0, 32.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(7.0, 12.0, 21.0, 44.0) ]; 7675 } 7676 7677 both "" 7678 #version 320 es 7679 precision highp float; 7680 ${DECLARATIONS} 7681 7682 void main() 7683 { 7684 ${SETUP} 7685 out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 7686 ${OUTPUT} 7687 } 7688 "" 7689 end 7690 case int_to_uvec2 7691 version 320 es 7692 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7693 values 7694 { 7695 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7696 output uvec2 out0 = [ uvec2(12, 24) | uvec2(10, 21) | uvec2(10, 21) | uvec2(14, 27) | uvec2(18, 33) ]; 7697 } 7698 7699 both "" 7700 #version 320 es 7701 precision highp float; 7702 ${DECLARATIONS} 7703 7704 void main() 7705 { 7706 ${SETUP} 7707 out0 = (in0 + ivec2(4, 6)) * ivec2(2, 3); 7708 ${OUTPUT} 7709 } 7710 "" 7711 end 7712 case int_to_uvec3 7713 version 320 es 7714 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7715 values 7716 { 7717 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7718 output uvec3 out0 = [ uvec3(12, 24, 20) | uvec3(10, 21, 15) | uvec3(10, 21, 15) | uvec3(14, 27, 25) | uvec3(18, 33, 35) ]; 7719 } 7720 7721 both "" 7722 #version 320 es 7723 precision highp float; 7724 ${DECLARATIONS} 7725 7726 void main() 7727 { 7728 ${SETUP} 7729 out0 = (in0 + ivec3(4, 6, 2)) * ivec3(2, 3, 5); 7730 ${OUTPUT} 7731 } 7732 "" 7733 end 7734 case int_to_uvec4 7735 version 320 es 7736 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7737 values 7738 { 7739 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 7740 output uvec4 out0 = [ uvec4(12, 24, 20, 88) | uvec4(10, 21, 15, 80) | uvec4(10, 21, 15, 80) | uvec4(14, 27, 25, 96) | uvec4(18, 33, 35, 112) ]; 7741 } 7742 7743 both "" 7744 #version 320 es 7745 precision highp float; 7746 ${DECLARATIONS} 7747 7748 void main() 7749 { 7750 ${SETUP} 7751 out0 = (in0 + ivec4(4, 6, 2, 9)) * ivec4(2, 3, 5, 8); 7752 ${OUTPUT} 7753 } 7754 "" 7755 end 7756 case uint_to_float 7757 version 320 es 7758 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7759 values 7760 { 7761 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7762 output float out0 = [ 4.0 | 8.0 | 10.0 | 16.0 | 24.0 ]; 7763 } 7764 7765 both "" 7766 #version 320 es 7767 precision highp float; 7768 ${DECLARATIONS} 7769 7770 void main() 7771 { 7772 ${SETUP} 7773 out0 = (in0 + 1.0) * 2.0; 7774 ${OUTPUT} 7775 } 7776 "" 7777 end 7778 case uint_to_vec2 7779 version 320 es 7780 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7781 values 7782 { 7783 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7784 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(6.0, 10.0) | vec2(9.0, 16.0) | vec2(13.0, 24.0) ]; 7785 } 7786 7787 both "" 7788 #version 320 es 7789 precision highp float; 7790 ${DECLARATIONS} 7791 7792 void main() 7793 { 7794 ${SETUP} 7795 out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7796 ${OUTPUT} 7797 } 7798 "" 7799 end 7800 case uint_to_vec3 7801 version 320 es 7802 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7803 values 7804 { 7805 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7806 output vec3 out0 = [ vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(6.0, 10.0, 18.0) | vec3(9.0, 16.0, 27.0) | vec3(13.0, 24.0, 39.0) ]; 7807 } 7808 7809 both "" 7810 #version 320 es 7811 precision highp float; 7812 ${DECLARATIONS} 7813 7814 void main() 7815 { 7816 ${SETUP} 7817 out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7818 ${OUTPUT} 7819 } 7820 "" 7821 end 7822 case uint_to_vec4 7823 version 320 es 7824 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7825 values 7826 { 7827 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 7828 output vec4 out0 = [ vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(6.0, 10.0, 18.0, 40.0) | vec4(9.0, 16.0, 27.0, 52.0) | vec4(13.0, 24.0, 39.0, 68.0) ]; 7829 } 7830 7831 both "" 7832 #version 320 es 7833 precision highp float; 7834 ${DECLARATIONS} 7835 7836 void main() 7837 { 7838 ${SETUP} 7839 out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 7840 ${OUTPUT} 7841 } 7842 "" 7843 end 7844 case ivec2_to_uvec2 7845 version 320 es 7846 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7847 values 7848 { 7849 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7850 output uvec2 out0 = [ uvec2(10, 24) | uvec2(12, 21) | uvec2(14, 39) ]; 7851 } 7852 7853 both "" 7854 #version 320 es 7855 precision highp float; 7856 ${DECLARATIONS} 7857 7858 void main() 7859 { 7860 ${SETUP} 7861 out0 = (in0 + ivec2(4, 6)) * ivec2(2, 3); 7862 ${OUTPUT} 7863 } 7864 "" 7865 end 7866 case ivec2_to_vec2 7867 version 320 es 7868 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7869 values 7870 { 7871 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 7872 output vec2 out0 = [ vec2(3.0, 6.0) | vec2(4.0, 4.0) | vec2(5.0, 16.0) ]; 7873 } 7874 7875 both "" 7876 #version 320 es 7877 precision highp float; 7878 ${DECLARATIONS} 7879 7880 void main() 7881 { 7882 ${SETUP} 7883 out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7884 ${OUTPUT} 7885 } 7886 "" 7887 end 7888 case uvec2_to_vec2 7889 version 320 es 7890 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7891 values 7892 { 7893 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 7894 output vec2 out0 = [ vec2(4.0, 8.0) | vec2(6.0, 14.0) | vec2(3.0, 28.0) ]; 7895 } 7896 7897 both "" 7898 #version 320 es 7899 precision highp float; 7900 ${DECLARATIONS} 7901 7902 void main() 7903 { 7904 ${SETUP} 7905 out0 = (in0 + vec2(2.0, 1.0)) * vec2(1.0, 2.0); 7906 ${OUTPUT} 7907 } 7908 "" 7909 end 7910 case ivec3_to_uvec3 7911 version 320 es 7912 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7913 values 7914 { 7915 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7916 output uvec3 out0 = [ uvec3(10, 24, 25) | uvec3(12, 21, 20) | uvec3(14, 39, 20) ]; 7917 } 7918 7919 both "" 7920 #version 320 es 7921 precision highp float; 7922 ${DECLARATIONS} 7923 7924 void main() 7925 { 7926 ${SETUP} 7927 out0 = (in0 + ivec3(4, 6, 2)) * ivec3(2, 3, 5); 7928 ${OUTPUT} 7929 } 7930 "" 7931 end 7932 case ivec3_to_vec3 7933 version 320 es 7934 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7935 values 7936 { 7937 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 7938 output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(4.0, 4.0, 12.0) | vec3(5.0, 16.0, 12.0) ]; 7939 } 7940 7941 both "" 7942 #version 320 es 7943 precision highp float; 7944 ${DECLARATIONS} 7945 7946 void main() 7947 { 7948 ${SETUP} 7949 out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7950 ${OUTPUT} 7951 } 7952 "" 7953 end 7954 case uvec3_to_vec3 7955 version 320 es 7956 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7957 values 7958 { 7959 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 7960 output vec3 out0 = [ vec3(4.0, 8.0, 21.0) | vec3(6.0, 14.0, 12.0) | vec3(3.0, 28.0, 27.0) ]; 7961 } 7962 7963 both "" 7964 #version 320 es 7965 precision highp float; 7966 ${DECLARATIONS} 7967 7968 void main() 7969 { 7970 ${SETUP} 7971 out0 = (in0 + vec3(2.0, 1.0, 2.0)) * vec3(1.0, 2.0, 3.0); 7972 ${OUTPUT} 7973 } 7974 "" 7975 end 7976 case ivec4_to_uvec4 7977 version 320 es 7978 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 7979 values 7980 { 7981 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 7982 output uvec4 out0 = [ uvec4(10, 24, 25, 104) | uvec4(12, 21, 20, 120) | uvec4(14, 39, 20, 112) ]; 7983 } 7984 7985 both "" 7986 #version 320 es 7987 precision highp float; 7988 ${DECLARATIONS} 7989 7990 void main() 7991 { 7992 ${SETUP} 7993 out0 = (in0 + ivec4(4, 6, 2, 9)) * ivec4(2, 3, 5, 8); 7994 ${OUTPUT} 7995 } 7996 "" 7997 end 7998 case ivec4_to_vec4 7999 version 320 es 8000 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8001 values 8002 { 8003 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8004 output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(4.0, 4.0, 12.0, 48.0) | vec4(5.0, 16.0, 12.0, 44.0) ]; 8005 } 8006 8007 both "" 8008 #version 320 es 8009 precision highp float; 8010 ${DECLARATIONS} 8011 8012 void main() 8013 { 8014 ${SETUP} 8015 out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 8016 ${OUTPUT} 8017 } 8018 "" 8019 end 8020 case uvec4_to_vec4 8021 version 320 es 8022 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8023 values 8024 { 8025 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8026 output vec4 out0 = [ vec4(4.0, 8.0, 21.0, 56.0) | vec4(6.0, 14.0, 12.0, 60.0) | vec4(3.0, 28.0, 27.0, 40.0) ]; 8027 } 8028 8029 both "" 8030 #version 320 es 8031 precision highp float; 8032 ${DECLARATIONS} 8033 8034 void main() 8035 { 8036 ${SETUP} 8037 out0 = (in0 + vec4(2.0, 1.0, 2.0, 6.0)) * vec4(1.0, 2.0, 3.0, 4.0); 8038 ${OUTPUT} 8039 } 8040 "" 8041 end 8042 8043 end # input_in_parens 8044 group input_outside_parens "Input variable outside parenthesized expression" 8045 8046 case int_to_float 8047 version 320 es 8048 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8049 values 8050 { 8051 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8052 output float out0 = [ 6.0 | 3.0 | 3.0 | 9.0 | 15.0 ]; 8053 } 8054 8055 both "" 8056 #version 320 es 8057 precision highp float; 8058 ${DECLARATIONS} 8059 8060 void main() 8061 { 8062 ${SETUP} 8063 out0 = (2.0 + 1.0) * in0; 8064 ${OUTPUT} 8065 } 8066 "" 8067 end 8068 case int_to_uint 8069 version 320 es 8070 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8071 values 8072 { 8073 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8074 output uint out0 = [ 8 | 4 | 4 | 12 | 20 ]; 8075 } 8076 8077 both "" 8078 #version 320 es 8079 precision highp float; 8080 ${DECLARATIONS} 8081 8082 void main() 8083 { 8084 ${SETUP} 8085 out0 = (1 + 3) * in0; 8086 ${OUTPUT} 8087 } 8088 "" 8089 end 8090 case int_to_vec2 8091 version 320 es 8092 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8093 values 8094 { 8095 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8096 output vec2 out0 = [ vec2(6.0, 6.0) | vec2(3.0, 3.0) | vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(15.0, 15.0) ]; 8097 } 8098 8099 both "" 8100 #version 320 es 8101 precision highp float; 8102 ${DECLARATIONS} 8103 8104 void main() 8105 { 8106 ${SETUP} 8107 out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8108 ${OUTPUT} 8109 } 8110 "" 8111 end 8112 case int_to_vec3 8113 version 320 es 8114 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8115 values 8116 { 8117 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8118 output vec3 out0 = [ vec3(6.0, 6.0, 10.0) | vec3(3.0, 3.0, 5.0) | vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(15.0, 15.0, 25.0) ]; 8119 } 8120 8121 both "" 8122 #version 320 es 8123 precision highp float; 8124 ${DECLARATIONS} 8125 8126 void main() 8127 { 8128 ${SETUP} 8129 out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8130 ${OUTPUT} 8131 } 8132 "" 8133 end 8134 case int_to_vec4 8135 version 320 es 8136 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8137 values 8138 { 8139 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8140 output vec4 out0 = [ vec4(6.0, 6.0, 10.0, 20.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(15.0, 15.0, 25.0, 50.0) ]; 8141 } 8142 8143 both "" 8144 #version 320 es 8145 precision highp float; 8146 ${DECLARATIONS} 8147 8148 void main() 8149 { 8150 ${SETUP} 8151 out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8152 ${OUTPUT} 8153 } 8154 "" 8155 end 8156 case int_to_uvec2 8157 version 320 es 8158 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8159 values 8160 { 8161 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8162 output uvec2 out0 = [ uvec2(12, 18) | uvec2(6, 9) | uvec2(6, 9) | uvec2(18, 27) | uvec2(30, 45) ]; 8163 } 8164 8165 both "" 8166 #version 320 es 8167 precision highp float; 8168 ${DECLARATIONS} 8169 8170 void main() 8171 { 8172 ${SETUP} 8173 out0 = (ivec2(2, 3) + ivec2(4, 6)) * in0; 8174 ${OUTPUT} 8175 } 8176 "" 8177 end 8178 case int_to_uvec3 8179 version 320 es 8180 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8181 values 8182 { 8183 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8184 output uvec3 out0 = [ uvec3(12, 18, 14) | uvec3(6, 9, 7) | uvec3(6, 9, 7) | uvec3(18, 27, 21) | uvec3(30, 45, 35) ]; 8185 } 8186 8187 both "" 8188 #version 320 es 8189 precision highp float; 8190 ${DECLARATIONS} 8191 8192 void main() 8193 { 8194 ${SETUP} 8195 out0 = (ivec3(2, 3, 5) + ivec3(4, 6, 2)) * in0; 8196 ${OUTPUT} 8197 } 8198 "" 8199 end 8200 case int_to_uvec4 8201 version 320 es 8202 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8203 values 8204 { 8205 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8206 output uvec4 out0 = [ uvec4(12, 18, 14, 34) | uvec4(6, 9, 7, 17) | uvec4(6, 9, 7, 17) | uvec4(18, 27, 21, 51) | uvec4(30, 45, 35, 85) ]; 8207 } 8208 8209 both "" 8210 #version 320 es 8211 precision highp float; 8212 ${DECLARATIONS} 8213 8214 void main() 8215 { 8216 ${SETUP} 8217 out0 = (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)) * in0; 8218 ${OUTPUT} 8219 } 8220 "" 8221 end 8222 case uint_to_float 8223 version 320 es 8224 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8225 values 8226 { 8227 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8228 output float out0 = [ 3.0 | 9.0 | 12.0 | 21.0 | 33.0 ]; 8229 } 8230 8231 both "" 8232 #version 320 es 8233 precision highp float; 8234 ${DECLARATIONS} 8235 8236 void main() 8237 { 8238 ${SETUP} 8239 out0 = (2.0 + 1.0) * in0; 8240 ${OUTPUT} 8241 } 8242 "" 8243 end 8244 case uint_to_vec2 8245 version 320 es 8246 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8247 values 8248 { 8249 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8250 output vec2 out0 = [ vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(12.0, 12.0) | vec2(21.0, 21.0) | vec2(33.0, 33.0) ]; 8251 } 8252 8253 both "" 8254 #version 320 es 8255 precision highp float; 8256 ${DECLARATIONS} 8257 8258 void main() 8259 { 8260 ${SETUP} 8261 out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8262 ${OUTPUT} 8263 } 8264 "" 8265 end 8266 case uint_to_vec3 8267 version 320 es 8268 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8269 values 8270 { 8271 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8272 output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(12.0, 12.0, 20.0) | vec3(21.0, 21.0, 35.0) | vec3(33.0, 33.0, 55.0) ]; 8273 } 8274 8275 both "" 8276 #version 320 es 8277 precision highp float; 8278 ${DECLARATIONS} 8279 8280 void main() 8281 { 8282 ${SETUP} 8283 out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8284 ${OUTPUT} 8285 } 8286 "" 8287 end 8288 case uint_to_vec4 8289 version 320 es 8290 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8291 values 8292 { 8293 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8294 output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(12.0, 12.0, 20.0, 40.0) | vec4(21.0, 21.0, 35.0, 70.0) | vec4(33.0, 33.0, 55.0, 110.0) ]; 8295 } 8296 8297 both "" 8298 #version 320 es 8299 precision highp float; 8300 ${DECLARATIONS} 8301 8302 void main() 8303 { 8304 ${SETUP} 8305 out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8306 ${OUTPUT} 8307 } 8308 "" 8309 end 8310 case ivec2_to_uvec2 8311 version 320 es 8312 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8313 values 8314 { 8315 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8316 output uvec2 out0 = [ uvec2(6, 18) | uvec2(12, 9) | uvec2(18, 63) ]; 8317 } 8318 8319 both "" 8320 #version 320 es 8321 precision highp float; 8322 ${DECLARATIONS} 8323 8324 void main() 8325 { 8326 ${SETUP} 8327 out0 = (ivec2(2, 3) + ivec2(4, 6)) * in0; 8328 ${OUTPUT} 8329 } 8330 "" 8331 end 8332 case ivec2_to_vec2 8333 version 320 es 8334 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8335 values 8336 { 8337 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8338 output vec2 out0 = [ vec2(3.0, 6.0) | vec2(6.0, 3.0) | vec2(9.0, 21.0) ]; 8339 } 8340 8341 both "" 8342 #version 320 es 8343 precision highp float; 8344 ${DECLARATIONS} 8345 8346 void main() 8347 { 8348 ${SETUP} 8349 out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8350 ${OUTPUT} 8351 } 8352 "" 8353 end 8354 case uvec2_to_vec2 8355 version 320 es 8356 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8357 values 8358 { 8359 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 8360 output vec2 out0 = [ vec2(6.0, 9.0) | vec2(12.0, 18.0) | vec2(3.0, 39.0) ]; 8361 } 8362 8363 both "" 8364 #version 320 es 8365 precision highp float; 8366 ${DECLARATIONS} 8367 8368 void main() 8369 { 8370 ${SETUP} 8371 out0 = (vec2(1.0, 2.0) + vec2(2.0, 1.0)) * in0; 8372 ${OUTPUT} 8373 } 8374 "" 8375 end 8376 case ivec3_to_uvec3 8377 version 320 es 8378 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8379 values 8380 { 8381 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8382 output uvec3 out0 = [ uvec3(6, 18, 21) | uvec3(12, 9, 14) | uvec3(18, 63, 14) ]; 8383 } 8384 8385 both "" 8386 #version 320 es 8387 precision highp float; 8388 ${DECLARATIONS} 8389 8390 void main() 8391 { 8392 ${SETUP} 8393 out0 = (ivec3(2, 3, 5) + ivec3(4, 6, 2)) * in0; 8394 ${OUTPUT} 8395 } 8396 "" 8397 end 8398 case ivec3_to_vec3 8399 version 320 es 8400 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8401 values 8402 { 8403 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8404 output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(6.0, 3.0, 10.0) | vec3(9.0, 21.0, 10.0) ]; 8405 } 8406 8407 both "" 8408 #version 320 es 8409 precision highp float; 8410 ${DECLARATIONS} 8411 8412 void main() 8413 { 8414 ${SETUP} 8415 out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8416 ${OUTPUT} 8417 } 8418 "" 8419 end 8420 case uvec3_to_vec3 8421 version 320 es 8422 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8423 values 8424 { 8425 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 8426 output vec3 out0 = [ vec3(6.0, 9.0, 25.0) | vec3(12.0, 18.0, 10.0) | vec3(3.0, 39.0, 35.0) ]; 8427 } 8428 8429 both "" 8430 #version 320 es 8431 precision highp float; 8432 ${DECLARATIONS} 8433 8434 void main() 8435 { 8436 ${SETUP} 8437 out0 = (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)) * in0; 8438 ${OUTPUT} 8439 } 8440 "" 8441 end 8442 case ivec4_to_uvec4 8443 version 320 es 8444 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8445 values 8446 { 8447 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8448 output uvec4 out0 = [ uvec4(6, 18, 21, 68) | uvec4(12, 9, 14, 102) | uvec4(18, 63, 14, 85) ]; 8449 } 8450 8451 both "" 8452 #version 320 es 8453 precision highp float; 8454 ${DECLARATIONS} 8455 8456 void main() 8457 { 8458 ${SETUP} 8459 out0 = (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)) * in0; 8460 ${OUTPUT} 8461 } 8462 "" 8463 end 8464 case ivec4_to_vec4 8465 version 320 es 8466 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8467 values 8468 { 8469 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8470 output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(6.0, 3.0, 10.0, 60.0) | vec4(9.0, 21.0, 10.0, 50.0) ]; 8471 } 8472 8473 both "" 8474 #version 320 es 8475 precision highp float; 8476 ${DECLARATIONS} 8477 8478 void main() 8479 { 8480 ${SETUP} 8481 out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8482 ${OUTPUT} 8483 } 8484 "" 8485 end 8486 case uvec4_to_vec4 8487 version 320 es 8488 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8489 values 8490 { 8491 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8492 output vec4 out0 = [ vec4(6.0, 9.0, 25.0, 80.0) | vec4(12.0, 18.0, 10.0, 90.0) | vec4(3.0, 39.0, 35.0, 40.0) ]; 8493 } 8494 8495 both "" 8496 #version 320 es 8497 precision highp float; 8498 ${DECLARATIONS} 8499 8500 void main() 8501 { 8502 ${SETUP} 8503 out0 = (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)) * in0; 8504 ${OUTPUT} 8505 } 8506 "" 8507 end 8508 8509 end # input_outside_parens 8510 8511 end # paren_expr_before_literal 8512 group literal_before_paren_expr "Literal before parenthesized expression" 8513 8514 group input_in_parens "Input variable in parenthesized expression" 8515 8516 case int_to_float 8517 version 320 es 8518 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8519 values 8520 { 8521 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8522 output float out0 = [ 6.0 | 4.0 | 4.0 | 8.0 | 12.0 ]; 8523 } 8524 8525 both "" 8526 #version 320 es 8527 precision highp float; 8528 ${DECLARATIONS} 8529 8530 void main() 8531 { 8532 ${SETUP} 8533 out0 = 2.0 * (in0 + 1.0); 8534 ${OUTPUT} 8535 } 8536 "" 8537 end 8538 case int_to_uint 8539 version 320 es 8540 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8541 values 8542 { 8543 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8544 output uint out0 = [ 5 | 4 | 4 | 6 | 8 ]; 8545 } 8546 8547 both "" 8548 #version 320 es 8549 precision highp float; 8550 ${DECLARATIONS} 8551 8552 void main() 8553 { 8554 ${SETUP} 8555 out0 = 1 * (in0 + 3); 8556 ${OUTPUT} 8557 } 8558 "" 8559 end 8560 case int_to_vec2 8561 version 320 es 8562 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8563 values 8564 { 8565 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8566 output vec2 out0 = [ vec2(4.0, 6.0) | vec2(3.0, 4.0) | vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(7.0, 12.0) ]; 8567 } 8568 8569 both "" 8570 #version 320 es 8571 precision highp float; 8572 ${DECLARATIONS} 8573 8574 void main() 8575 { 8576 ${SETUP} 8577 out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8578 ${OUTPUT} 8579 } 8580 "" 8581 end 8582 case int_to_vec3 8583 version 320 es 8584 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8585 values 8586 { 8587 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8588 output vec3 out0 = [ vec3(4.0, 6.0, 12.0) | vec3(3.0, 4.0, 9.0) | vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(7.0, 12.0, 21.0) ]; 8589 } 8590 8591 both "" 8592 #version 320 es 8593 precision highp float; 8594 ${DECLARATIONS} 8595 8596 void main() 8597 { 8598 ${SETUP} 8599 out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8600 ${OUTPUT} 8601 } 8602 "" 8603 end 8604 case int_to_vec4 8605 version 320 es 8606 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8607 values 8608 { 8609 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8610 output vec4 out0 = [ vec4(4.0, 6.0, 12.0, 32.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(7.0, 12.0, 21.0, 44.0) ]; 8611 } 8612 8613 both "" 8614 #version 320 es 8615 precision highp float; 8616 ${DECLARATIONS} 8617 8618 void main() 8619 { 8620 ${SETUP} 8621 out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8622 ${OUTPUT} 8623 } 8624 "" 8625 end 8626 case int_to_uvec2 8627 version 320 es 8628 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8629 values 8630 { 8631 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8632 output uvec2 out0 = [ uvec2(12, 24) | uvec2(10, 21) | uvec2(10, 21) | uvec2(14, 27) | uvec2(18, 33) ]; 8633 } 8634 8635 both "" 8636 #version 320 es 8637 precision highp float; 8638 ${DECLARATIONS} 8639 8640 void main() 8641 { 8642 ${SETUP} 8643 out0 = ivec2(2, 3) * (in0 + ivec2(4, 6)); 8644 ${OUTPUT} 8645 } 8646 "" 8647 end 8648 case int_to_uvec3 8649 version 320 es 8650 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8651 values 8652 { 8653 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8654 output uvec3 out0 = [ uvec3(12, 24, 20) | uvec3(10, 21, 15) | uvec3(10, 21, 15) | uvec3(14, 27, 25) | uvec3(18, 33, 35) ]; 8655 } 8656 8657 both "" 8658 #version 320 es 8659 precision highp float; 8660 ${DECLARATIONS} 8661 8662 void main() 8663 { 8664 ${SETUP} 8665 out0 = ivec3(2, 3, 5) * (in0 + ivec3(4, 6, 2)); 8666 ${OUTPUT} 8667 } 8668 "" 8669 end 8670 case int_to_uvec4 8671 version 320 es 8672 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8673 values 8674 { 8675 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8676 output uvec4 out0 = [ uvec4(12, 24, 20, 88) | uvec4(10, 21, 15, 80) | uvec4(10, 21, 15, 80) | uvec4(14, 27, 25, 96) | uvec4(18, 33, 35, 112) ]; 8677 } 8678 8679 both "" 8680 #version 320 es 8681 precision highp float; 8682 ${DECLARATIONS} 8683 8684 void main() 8685 { 8686 ${SETUP} 8687 out0 = ivec4(2, 3, 5, 8) * (in0 + ivec4(4, 6, 2, 9)); 8688 ${OUTPUT} 8689 } 8690 "" 8691 end 8692 case uint_to_float 8693 version 320 es 8694 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8695 values 8696 { 8697 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8698 output float out0 = [ 4.0 | 8.0 | 10.0 | 16.0 | 24.0 ]; 8699 } 8700 8701 both "" 8702 #version 320 es 8703 precision highp float; 8704 ${DECLARATIONS} 8705 8706 void main() 8707 { 8708 ${SETUP} 8709 out0 = 2.0 * (in0 + 1.0); 8710 ${OUTPUT} 8711 } 8712 "" 8713 end 8714 case uint_to_vec2 8715 version 320 es 8716 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8717 values 8718 { 8719 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8720 output vec2 out0 = [ vec2(3.0, 4.0) | vec2(5.0, 8.0) | vec2(6.0, 10.0) | vec2(9.0, 16.0) | vec2(13.0, 24.0) ]; 8721 } 8722 8723 both "" 8724 #version 320 es 8725 precision highp float; 8726 ${DECLARATIONS} 8727 8728 void main() 8729 { 8730 ${SETUP} 8731 out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8732 ${OUTPUT} 8733 } 8734 "" 8735 end 8736 case uint_to_vec3 8737 version 320 es 8738 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8739 values 8740 { 8741 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8742 output vec3 out0 = [ vec3(3.0, 4.0, 9.0) | vec3(5.0, 8.0, 15.0) | vec3(6.0, 10.0, 18.0) | vec3(9.0, 16.0, 27.0) | vec3(13.0, 24.0, 39.0) ]; 8743 } 8744 8745 both "" 8746 #version 320 es 8747 precision highp float; 8748 ${DECLARATIONS} 8749 8750 void main() 8751 { 8752 ${SETUP} 8753 out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8754 ${OUTPUT} 8755 } 8756 "" 8757 end 8758 case uint_to_vec4 8759 version 320 es 8760 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8761 values 8762 { 8763 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 8764 output vec4 out0 = [ vec4(3.0, 4.0, 9.0, 28.0) | vec4(5.0, 8.0, 15.0, 36.0) | vec4(6.0, 10.0, 18.0, 40.0) | vec4(9.0, 16.0, 27.0, 52.0) | vec4(13.0, 24.0, 39.0, 68.0) ]; 8765 } 8766 8767 both "" 8768 #version 320 es 8769 precision highp float; 8770 ${DECLARATIONS} 8771 8772 void main() 8773 { 8774 ${SETUP} 8775 out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8776 ${OUTPUT} 8777 } 8778 "" 8779 end 8780 case ivec2_to_uvec2 8781 version 320 es 8782 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8783 values 8784 { 8785 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8786 output uvec2 out0 = [ uvec2(10, 24) | uvec2(12, 21) | uvec2(14, 39) ]; 8787 } 8788 8789 both "" 8790 #version 320 es 8791 precision highp float; 8792 ${DECLARATIONS} 8793 8794 void main() 8795 { 8796 ${SETUP} 8797 out0 = ivec2(2, 3) * (in0 + ivec2(4, 6)); 8798 ${OUTPUT} 8799 } 8800 "" 8801 end 8802 case ivec2_to_vec2 8803 version 320 es 8804 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8805 values 8806 { 8807 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 8808 output vec2 out0 = [ vec2(3.0, 6.0) | vec2(4.0, 4.0) | vec2(5.0, 16.0) ]; 8809 } 8810 8811 both "" 8812 #version 320 es 8813 precision highp float; 8814 ${DECLARATIONS} 8815 8816 void main() 8817 { 8818 ${SETUP} 8819 out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8820 ${OUTPUT} 8821 } 8822 "" 8823 end 8824 case uvec2_to_vec2 8825 version 320 es 8826 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8827 values 8828 { 8829 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 8830 output vec2 out0 = [ vec2(4.0, 8.0) | vec2(6.0, 14.0) | vec2(3.0, 28.0) ]; 8831 } 8832 8833 both "" 8834 #version 320 es 8835 precision highp float; 8836 ${DECLARATIONS} 8837 8838 void main() 8839 { 8840 ${SETUP} 8841 out0 = vec2(1.0, 2.0) * (in0 + vec2(2.0, 1.0)); 8842 ${OUTPUT} 8843 } 8844 "" 8845 end 8846 case ivec3_to_uvec3 8847 version 320 es 8848 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8849 values 8850 { 8851 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8852 output uvec3 out0 = [ uvec3(10, 24, 25) | uvec3(12, 21, 20) | uvec3(14, 39, 20) ]; 8853 } 8854 8855 both "" 8856 #version 320 es 8857 precision highp float; 8858 ${DECLARATIONS} 8859 8860 void main() 8861 { 8862 ${SETUP} 8863 out0 = ivec3(2, 3, 5) * (in0 + ivec3(4, 6, 2)); 8864 ${OUTPUT} 8865 } 8866 "" 8867 end 8868 case ivec3_to_vec3 8869 version 320 es 8870 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8871 values 8872 { 8873 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 8874 output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(4.0, 4.0, 12.0) | vec3(5.0, 16.0, 12.0) ]; 8875 } 8876 8877 both "" 8878 #version 320 es 8879 precision highp float; 8880 ${DECLARATIONS} 8881 8882 void main() 8883 { 8884 ${SETUP} 8885 out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8886 ${OUTPUT} 8887 } 8888 "" 8889 end 8890 case uvec3_to_vec3 8891 version 320 es 8892 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8893 values 8894 { 8895 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 8896 output vec3 out0 = [ vec3(4.0, 8.0, 21.0) | vec3(6.0, 14.0, 12.0) | vec3(3.0, 28.0, 27.0) ]; 8897 } 8898 8899 both "" 8900 #version 320 es 8901 precision highp float; 8902 ${DECLARATIONS} 8903 8904 void main() 8905 { 8906 ${SETUP} 8907 out0 = vec3(1.0, 2.0, 3.0) * (in0 + vec3(2.0, 1.0, 2.0)); 8908 ${OUTPUT} 8909 } 8910 "" 8911 end 8912 case ivec4_to_uvec4 8913 version 320 es 8914 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8915 values 8916 { 8917 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8918 output uvec4 out0 = [ uvec4(10, 24, 25, 104) | uvec4(12, 21, 20, 120) | uvec4(14, 39, 20, 112) ]; 8919 } 8920 8921 both "" 8922 #version 320 es 8923 precision highp float; 8924 ${DECLARATIONS} 8925 8926 void main() 8927 { 8928 ${SETUP} 8929 out0 = ivec4(2, 3, 5, 8) * (in0 + ivec4(4, 6, 2, 9)); 8930 ${OUTPUT} 8931 } 8932 "" 8933 end 8934 case ivec4_to_vec4 8935 version 320 es 8936 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8937 values 8938 { 8939 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 8940 output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(4.0, 4.0, 12.0, 48.0) | vec4(5.0, 16.0, 12.0, 44.0) ]; 8941 } 8942 8943 both "" 8944 #version 320 es 8945 precision highp float; 8946 ${DECLARATIONS} 8947 8948 void main() 8949 { 8950 ${SETUP} 8951 out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8952 ${OUTPUT} 8953 } 8954 "" 8955 end 8956 case uvec4_to_vec4 8957 version 320 es 8958 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8959 values 8960 { 8961 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 8962 output vec4 out0 = [ vec4(4.0, 8.0, 21.0, 56.0) | vec4(6.0, 14.0, 12.0, 60.0) | vec4(3.0, 28.0, 27.0, 40.0) ]; 8963 } 8964 8965 both "" 8966 #version 320 es 8967 precision highp float; 8968 ${DECLARATIONS} 8969 8970 void main() 8971 { 8972 ${SETUP} 8973 out0 = vec4(1.0, 2.0, 3.0, 4.0) * (in0 + vec4(2.0, 1.0, 2.0, 6.0)); 8974 ${OUTPUT} 8975 } 8976 "" 8977 end 8978 8979 end # input_in_parens 8980 group input_outside_parens "Input variable outside parenthesized expression" 8981 8982 case int_to_float 8983 version 320 es 8984 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 8985 values 8986 { 8987 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 8988 output float out0 = [ 6.0 | 3.0 | 3.0 | 9.0 | 15.0 ]; 8989 } 8990 8991 both "" 8992 #version 320 es 8993 precision highp float; 8994 ${DECLARATIONS} 8995 8996 void main() 8997 { 8998 ${SETUP} 8999 out0 = in0 * (2.0 + 1.0); 9000 ${OUTPUT} 9001 } 9002 "" 9003 end 9004 case int_to_uint 9005 version 320 es 9006 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9007 values 9008 { 9009 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9010 output uint out0 = [ 8 | 4 | 4 | 12 | 20 ]; 9011 } 9012 9013 both "" 9014 #version 320 es 9015 precision highp float; 9016 ${DECLARATIONS} 9017 9018 void main() 9019 { 9020 ${SETUP} 9021 out0 = in0 * (1 + 3); 9022 ${OUTPUT} 9023 } 9024 "" 9025 end 9026 case int_to_vec2 9027 version 320 es 9028 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9029 values 9030 { 9031 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9032 output vec2 out0 = [ vec2(6.0, 6.0) | vec2(3.0, 3.0) | vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(15.0, 15.0) ]; 9033 } 9034 9035 both "" 9036 #version 320 es 9037 precision highp float; 9038 ${DECLARATIONS} 9039 9040 void main() 9041 { 9042 ${SETUP} 9043 out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9044 ${OUTPUT} 9045 } 9046 "" 9047 end 9048 case int_to_vec3 9049 version 320 es 9050 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9051 values 9052 { 9053 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9054 output vec3 out0 = [ vec3(6.0, 6.0, 10.0) | vec3(3.0, 3.0, 5.0) | vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(15.0, 15.0, 25.0) ]; 9055 } 9056 9057 both "" 9058 #version 320 es 9059 precision highp float; 9060 ${DECLARATIONS} 9061 9062 void main() 9063 { 9064 ${SETUP} 9065 out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9066 ${OUTPUT} 9067 } 9068 "" 9069 end 9070 case int_to_vec4 9071 version 320 es 9072 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9073 values 9074 { 9075 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9076 output vec4 out0 = [ vec4(6.0, 6.0, 10.0, 20.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(15.0, 15.0, 25.0, 50.0) ]; 9077 } 9078 9079 both "" 9080 #version 320 es 9081 precision highp float; 9082 ${DECLARATIONS} 9083 9084 void main() 9085 { 9086 ${SETUP} 9087 out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9088 ${OUTPUT} 9089 } 9090 "" 9091 end 9092 case int_to_uvec2 9093 version 320 es 9094 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9095 values 9096 { 9097 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9098 output uvec2 out0 = [ uvec2(12, 18) | uvec2(6, 9) | uvec2(6, 9) | uvec2(18, 27) | uvec2(30, 45) ]; 9099 } 9100 9101 both "" 9102 #version 320 es 9103 precision highp float; 9104 ${DECLARATIONS} 9105 9106 void main() 9107 { 9108 ${SETUP} 9109 out0 = in0 * (ivec2(2, 3) + ivec2(4, 6)); 9110 ${OUTPUT} 9111 } 9112 "" 9113 end 9114 case int_to_uvec3 9115 version 320 es 9116 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9117 values 9118 { 9119 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9120 output uvec3 out0 = [ uvec3(12, 18, 14) | uvec3(6, 9, 7) | uvec3(6, 9, 7) | uvec3(18, 27, 21) | uvec3(30, 45, 35) ]; 9121 } 9122 9123 both "" 9124 #version 320 es 9125 precision highp float; 9126 ${DECLARATIONS} 9127 9128 void main() 9129 { 9130 ${SETUP} 9131 out0 = in0 * (ivec3(2, 3, 5) + ivec3(4, 6, 2)); 9132 ${OUTPUT} 9133 } 9134 "" 9135 end 9136 case int_to_uvec4 9137 version 320 es 9138 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9139 values 9140 { 9141 input int in0 = [ 2 | 1 | 1 | 3 | 5 ]; 9142 output uvec4 out0 = [ uvec4(12, 18, 14, 34) | uvec4(6, 9, 7, 17) | uvec4(6, 9, 7, 17) | uvec4(18, 27, 21, 51) | uvec4(30, 45, 35, 85) ]; 9143 } 9144 9145 both "" 9146 #version 320 es 9147 precision highp float; 9148 ${DECLARATIONS} 9149 9150 void main() 9151 { 9152 ${SETUP} 9153 out0 = in0 * (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)); 9154 ${OUTPUT} 9155 } 9156 "" 9157 end 9158 case uint_to_float 9159 version 320 es 9160 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9161 values 9162 { 9163 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9164 output float out0 = [ 3.0 | 9.0 | 12.0 | 21.0 | 33.0 ]; 9165 } 9166 9167 both "" 9168 #version 320 es 9169 precision highp float; 9170 ${DECLARATIONS} 9171 9172 void main() 9173 { 9174 ${SETUP} 9175 out0 = in0 * (2.0 + 1.0); 9176 ${OUTPUT} 9177 } 9178 "" 9179 end 9180 case uint_to_vec2 9181 version 320 es 9182 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9183 values 9184 { 9185 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9186 output vec2 out0 = [ vec2(3.0, 3.0) | vec2(9.0, 9.0) | vec2(12.0, 12.0) | vec2(21.0, 21.0) | vec2(33.0, 33.0) ]; 9187 } 9188 9189 both "" 9190 #version 320 es 9191 precision highp float; 9192 ${DECLARATIONS} 9193 9194 void main() 9195 { 9196 ${SETUP} 9197 out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9198 ${OUTPUT} 9199 } 9200 "" 9201 end 9202 case uint_to_vec3 9203 version 320 es 9204 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9205 values 9206 { 9207 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9208 output vec3 out0 = [ vec3(3.0, 3.0, 5.0) | vec3(9.0, 9.0, 15.0) | vec3(12.0, 12.0, 20.0) | vec3(21.0, 21.0, 35.0) | vec3(33.0, 33.0, 55.0) ]; 9209 } 9210 9211 both "" 9212 #version 320 es 9213 precision highp float; 9214 ${DECLARATIONS} 9215 9216 void main() 9217 { 9218 ${SETUP} 9219 out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9220 ${OUTPUT} 9221 } 9222 "" 9223 end 9224 case uint_to_vec4 9225 version 320 es 9226 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9227 values 9228 { 9229 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9230 output vec4 out0 = [ vec4(3.0, 3.0, 5.0, 10.0) | vec4(9.0, 9.0, 15.0, 30.0) | vec4(12.0, 12.0, 20.0, 40.0) | vec4(21.0, 21.0, 35.0, 70.0) | vec4(33.0, 33.0, 55.0, 110.0) ]; 9231 } 9232 9233 both "" 9234 #version 320 es 9235 precision highp float; 9236 ${DECLARATIONS} 9237 9238 void main() 9239 { 9240 ${SETUP} 9241 out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9242 ${OUTPUT} 9243 } 9244 "" 9245 end 9246 case ivec2_to_uvec2 9247 version 320 es 9248 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9249 values 9250 { 9251 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9252 output uvec2 out0 = [ uvec2(6, 18) | uvec2(12, 9) | uvec2(18, 63) ]; 9253 } 9254 9255 both "" 9256 #version 320 es 9257 precision highp float; 9258 ${DECLARATIONS} 9259 9260 void main() 9261 { 9262 ${SETUP} 9263 out0 = in0 * (ivec2(2, 3) + ivec2(4, 6)); 9264 ${OUTPUT} 9265 } 9266 "" 9267 end 9268 case ivec2_to_vec2 9269 version 320 es 9270 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9271 values 9272 { 9273 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9274 output vec2 out0 = [ vec2(3.0, 6.0) | vec2(6.0, 3.0) | vec2(9.0, 21.0) ]; 9275 } 9276 9277 both "" 9278 #version 320 es 9279 precision highp float; 9280 ${DECLARATIONS} 9281 9282 void main() 9283 { 9284 ${SETUP} 9285 out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9286 ${OUTPUT} 9287 } 9288 "" 9289 end 9290 case uvec2_to_vec2 9291 version 320 es 9292 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9293 values 9294 { 9295 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9296 output vec2 out0 = [ vec2(6.0, 9.0) | vec2(12.0, 18.0) | vec2(3.0, 39.0) ]; 9297 } 9298 9299 both "" 9300 #version 320 es 9301 precision highp float; 9302 ${DECLARATIONS} 9303 9304 void main() 9305 { 9306 ${SETUP} 9307 out0 = in0 * (vec2(1.0, 2.0) + vec2(2.0, 1.0)); 9308 ${OUTPUT} 9309 } 9310 "" 9311 end 9312 case ivec3_to_uvec3 9313 version 320 es 9314 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9315 values 9316 { 9317 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9318 output uvec3 out0 = [ uvec3(6, 18, 21) | uvec3(12, 9, 14) | uvec3(18, 63, 14) ]; 9319 } 9320 9321 both "" 9322 #version 320 es 9323 precision highp float; 9324 ${DECLARATIONS} 9325 9326 void main() 9327 { 9328 ${SETUP} 9329 out0 = in0 * (ivec3(2, 3, 5) + ivec3(4, 6, 2)); 9330 ${OUTPUT} 9331 } 9332 "" 9333 end 9334 case ivec3_to_vec3 9335 version 320 es 9336 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9337 values 9338 { 9339 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9340 output vec3 out0 = [ vec3(3.0, 6.0, 15.0) | vec3(6.0, 3.0, 10.0) | vec3(9.0, 21.0, 10.0) ]; 9341 } 9342 9343 both "" 9344 #version 320 es 9345 precision highp float; 9346 ${DECLARATIONS} 9347 9348 void main() 9349 { 9350 ${SETUP} 9351 out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9352 ${OUTPUT} 9353 } 9354 "" 9355 end 9356 case uvec3_to_vec3 9357 version 320 es 9358 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9359 values 9360 { 9361 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 9362 output vec3 out0 = [ vec3(6.0, 9.0, 25.0) | vec3(12.0, 18.0, 10.0) | vec3(3.0, 39.0, 35.0) ]; 9363 } 9364 9365 both "" 9366 #version 320 es 9367 precision highp float; 9368 ${DECLARATIONS} 9369 9370 void main() 9371 { 9372 ${SETUP} 9373 out0 = in0 * (vec3(1.0, 2.0, 3.0) + vec3(2.0, 1.0, 2.0)); 9374 ${OUTPUT} 9375 } 9376 "" 9377 end 9378 case ivec4_to_uvec4 9379 version 320 es 9380 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9381 values 9382 { 9383 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 9384 output uvec4 out0 = [ uvec4(6, 18, 21, 68) | uvec4(12, 9, 14, 102) | uvec4(18, 63, 14, 85) ]; 9385 } 9386 9387 both "" 9388 #version 320 es 9389 precision highp float; 9390 ${DECLARATIONS} 9391 9392 void main() 9393 { 9394 ${SETUP} 9395 out0 = in0 * (ivec4(2, 3, 5, 8) + ivec4(4, 6, 2, 9)); 9396 ${OUTPUT} 9397 } 9398 "" 9399 end 9400 case ivec4_to_vec4 9401 version 320 es 9402 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9403 values 9404 { 9405 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 9406 output vec4 out0 = [ vec4(3.0, 6.0, 15.0, 40.0) | vec4(6.0, 3.0, 10.0, 60.0) | vec4(9.0, 21.0, 10.0, 50.0) ]; 9407 } 9408 9409 both "" 9410 #version 320 es 9411 precision highp float; 9412 ${DECLARATIONS} 9413 9414 void main() 9415 { 9416 ${SETUP} 9417 out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9418 ${OUTPUT} 9419 } 9420 "" 9421 end 9422 case uvec4_to_vec4 9423 version 320 es 9424 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9425 values 9426 { 9427 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 9428 output vec4 out0 = [ vec4(6.0, 9.0, 25.0, 80.0) | vec4(12.0, 18.0, 10.0, 90.0) | vec4(3.0, 39.0, 35.0, 40.0) ]; 9429 } 9430 9431 both "" 9432 #version 320 es 9433 precision highp float; 9434 ${DECLARATIONS} 9435 9436 void main() 9437 { 9438 ${SETUP} 9439 out0 = in0 * (vec4(1.0, 2.0, 3.0, 4.0) + vec4(2.0, 1.0, 2.0, 6.0)); 9440 ${OUTPUT} 9441 } 9442 "" 9443 end 9444 9445 end # input_outside_parens 9446 9447 end # literal_before_paren_expr 9448 9449end # parenthesized_expressions 9450group invalid "Invalid conversions" 9451 9452 group variables "Single variables" 9453 9454 case uint_to_int 9455 expect compile_fail 9456 version 320 es 9457 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9458 values 9459 { 9460 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9461 output int out0 = [ 2 | 2 | 2 | 2 | 2 ]; 9462 } 9463 9464 both "" 9465 #version 320 es 9466 precision highp float; 9467 ${DECLARATIONS} 9468 9469 void main() 9470 { 9471 ${SETUP} 9472 out0 = in0 + 2; 9473 ${OUTPUT} 9474 } 9475 "" 9476 end 9477 case uint_to_ivec2 9478 expect compile_fail 9479 version 320 es 9480 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9481 values 9482 { 9483 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9484 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9485 } 9486 9487 both "" 9488 #version 320 es 9489 precision highp float; 9490 ${DECLARATIONS} 9491 9492 void main() 9493 { 9494 ${SETUP} 9495 out0 = in0 + ivec2(1, 2); 9496 ${OUTPUT} 9497 } 9498 "" 9499 end 9500 case uint_to_ivec3 9501 expect compile_fail 9502 version 320 es 9503 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9504 values 9505 { 9506 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9507 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9508 } 9509 9510 both "" 9511 #version 320 es 9512 precision highp float; 9513 ${DECLARATIONS} 9514 9515 void main() 9516 { 9517 ${SETUP} 9518 out0 = in0 + ivec3(1, 2, 3); 9519 ${OUTPUT} 9520 } 9521 "" 9522 end 9523 case uint_to_ivec4 9524 expect compile_fail 9525 version 320 es 9526 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9527 values 9528 { 9529 input uint in0 = [ 1 | 3 | 4 | 7 | 11 ]; 9530 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9531 } 9532 9533 both "" 9534 #version 320 es 9535 precision highp float; 9536 ${DECLARATIONS} 9537 9538 void main() 9539 { 9540 ${SETUP} 9541 out0 = in0 + ivec4(1, 2, 3, 4); 9542 ${OUTPUT} 9543 } 9544 "" 9545 end 9546 case ivec2_to_uint 9547 expect compile_fail 9548 version 320 es 9549 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9550 values 9551 { 9552 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9553 output uint out0 = [ 1 | 1 | 1 ]; 9554 } 9555 9556 both "" 9557 #version 320 es 9558 precision highp float; 9559 ${DECLARATIONS} 9560 9561 void main() 9562 { 9563 ${SETUP} 9564 out0 = in0 + 1; 9565 ${OUTPUT} 9566 } 9567 "" 9568 end 9569 case ivec2_to_ivec3 9570 expect compile_fail 9571 version 320 es 9572 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9573 values 9574 { 9575 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9576 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9577 } 9578 9579 both "" 9580 #version 320 es 9581 precision highp float; 9582 ${DECLARATIONS} 9583 9584 void main() 9585 { 9586 ${SETUP} 9587 out0 = in0 + ivec3(1, 2, 3); 9588 ${OUTPUT} 9589 } 9590 "" 9591 end 9592 case ivec2_to_uvec3 9593 expect compile_fail 9594 version 320 es 9595 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9596 values 9597 { 9598 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9599 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 9600 } 9601 9602 both "" 9603 #version 320 es 9604 precision highp float; 9605 ${DECLARATIONS} 9606 9607 void main() 9608 { 9609 ${SETUP} 9610 out0 = in0 + ivec3(2, 3, 5); 9611 ${OUTPUT} 9612 } 9613 "" 9614 end 9615 case ivec2_to_ivec4 9616 expect compile_fail 9617 version 320 es 9618 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9619 values 9620 { 9621 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9622 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9623 } 9624 9625 both "" 9626 #version 320 es 9627 precision highp float; 9628 ${DECLARATIONS} 9629 9630 void main() 9631 { 9632 ${SETUP} 9633 out0 = in0 + ivec4(1, 2, 3, 4); 9634 ${OUTPUT} 9635 } 9636 "" 9637 end 9638 case ivec2_to_uvec4 9639 expect compile_fail 9640 version 320 es 9641 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9642 values 9643 { 9644 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9645 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9646 } 9647 9648 both "" 9649 #version 320 es 9650 precision highp float; 9651 ${DECLARATIONS} 9652 9653 void main() 9654 { 9655 ${SETUP} 9656 out0 = in0 + ivec4(2, 3, 5, 8); 9657 ${OUTPUT} 9658 } 9659 "" 9660 end 9661 case ivec2_to_vec3 9662 expect compile_fail 9663 version 320 es 9664 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9665 values 9666 { 9667 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9668 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 9669 } 9670 9671 both "" 9672 #version 320 es 9673 precision highp float; 9674 ${DECLARATIONS} 9675 9676 void main() 9677 { 9678 ${SETUP} 9679 out0 = in0 + vec3(1.0, 2.0, 3.0); 9680 ${OUTPUT} 9681 } 9682 "" 9683 end 9684 case ivec2_to_vec4 9685 expect compile_fail 9686 version 320 es 9687 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9688 values 9689 { 9690 input ivec2 in0 = [ ivec2(1, 2) | ivec2(2, 1) | ivec2(3, 7) ]; 9691 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 9692 } 9693 9694 both "" 9695 #version 320 es 9696 precision highp float; 9697 ${DECLARATIONS} 9698 9699 void main() 9700 { 9701 ${SETUP} 9702 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 9703 ${OUTPUT} 9704 } 9705 "" 9706 end 9707 case uvec2_to_int 9708 expect compile_fail 9709 version 320 es 9710 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9711 values 9712 { 9713 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9714 output int out0 = [ 2 | 2 | 2 ]; 9715 } 9716 9717 both "" 9718 #version 320 es 9719 precision highp float; 9720 ${DECLARATIONS} 9721 9722 void main() 9723 { 9724 ${SETUP} 9725 out0 = in0 + 2; 9726 ${OUTPUT} 9727 } 9728 "" 9729 end 9730 case uvec2_to_ivec2 9731 expect compile_fail 9732 version 320 es 9733 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9734 values 9735 { 9736 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9737 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9738 } 9739 9740 both "" 9741 #version 320 es 9742 precision highp float; 9743 ${DECLARATIONS} 9744 9745 void main() 9746 { 9747 ${SETUP} 9748 out0 = in0 + ivec2(1, 2); 9749 ${OUTPUT} 9750 } 9751 "" 9752 end 9753 case uvec2_to_ivec3 9754 expect compile_fail 9755 version 320 es 9756 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9757 values 9758 { 9759 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9760 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 9761 } 9762 9763 both "" 9764 #version 320 es 9765 precision highp float; 9766 ${DECLARATIONS} 9767 9768 void main() 9769 { 9770 ${SETUP} 9771 out0 = in0 + ivec3(1, 2, 3); 9772 ${OUTPUT} 9773 } 9774 "" 9775 end 9776 case uvec2_to_uvec3 9777 expect compile_fail 9778 version 320 es 9779 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9780 values 9781 { 9782 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9783 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 9784 } 9785 9786 both "" 9787 #version 320 es 9788 precision highp float; 9789 ${DECLARATIONS} 9790 9791 void main() 9792 { 9793 ${SETUP} 9794 out0 = in0 + ivec3(2, 3, 5); 9795 ${OUTPUT} 9796 } 9797 "" 9798 end 9799 case uvec2_to_ivec4 9800 expect compile_fail 9801 version 320 es 9802 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9803 values 9804 { 9805 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9806 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9807 } 9808 9809 both "" 9810 #version 320 es 9811 precision highp float; 9812 ${DECLARATIONS} 9813 9814 void main() 9815 { 9816 ${SETUP} 9817 out0 = in0 + ivec4(1, 2, 3, 4); 9818 ${OUTPUT} 9819 } 9820 "" 9821 end 9822 case uvec2_to_uvec4 9823 expect compile_fail 9824 version 320 es 9825 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9826 values 9827 { 9828 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9829 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9830 } 9831 9832 both "" 9833 #version 320 es 9834 precision highp float; 9835 ${DECLARATIONS} 9836 9837 void main() 9838 { 9839 ${SETUP} 9840 out0 = in0 + ivec4(2, 3, 5, 8); 9841 ${OUTPUT} 9842 } 9843 "" 9844 end 9845 case uvec2_to_vec3 9846 expect compile_fail 9847 version 320 es 9848 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9849 values 9850 { 9851 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9852 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 9853 } 9854 9855 both "" 9856 #version 320 es 9857 precision highp float; 9858 ${DECLARATIONS} 9859 9860 void main() 9861 { 9862 ${SETUP} 9863 out0 = in0 + vec3(1.0, 2.0, 3.0); 9864 ${OUTPUT} 9865 } 9866 "" 9867 end 9868 case uvec2_to_vec4 9869 expect compile_fail 9870 version 320 es 9871 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9872 values 9873 { 9874 input uvec2 in0 = [ uvec2(2, 3) | uvec2(4, 6) | uvec2(1, 13) ]; 9875 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 9876 } 9877 9878 both "" 9879 #version 320 es 9880 precision highp float; 9881 ${DECLARATIONS} 9882 9883 void main() 9884 { 9885 ${SETUP} 9886 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 9887 ${OUTPUT} 9888 } 9889 "" 9890 end 9891 case ivec3_to_uint 9892 expect compile_fail 9893 version 320 es 9894 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9895 values 9896 { 9897 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9898 output uint out0 = [ 1 | 1 | 1 ]; 9899 } 9900 9901 both "" 9902 #version 320 es 9903 precision highp float; 9904 ${DECLARATIONS} 9905 9906 void main() 9907 { 9908 ${SETUP} 9909 out0 = in0 + 1; 9910 ${OUTPUT} 9911 } 9912 "" 9913 end 9914 case ivec3_to_ivec2 9915 expect compile_fail 9916 version 320 es 9917 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9918 values 9919 { 9920 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9921 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 9922 } 9923 9924 both "" 9925 #version 320 es 9926 precision highp float; 9927 ${DECLARATIONS} 9928 9929 void main() 9930 { 9931 ${SETUP} 9932 out0 = in0 + ivec2(1, 2); 9933 ${OUTPUT} 9934 } 9935 "" 9936 end 9937 case ivec3_to_uvec2 9938 expect compile_fail 9939 version 320 es 9940 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9941 values 9942 { 9943 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9944 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 9945 } 9946 9947 both "" 9948 #version 320 es 9949 precision highp float; 9950 ${DECLARATIONS} 9951 9952 void main() 9953 { 9954 ${SETUP} 9955 out0 = in0 + ivec2(2, 3); 9956 ${OUTPUT} 9957 } 9958 "" 9959 end 9960 case ivec3_to_ivec4 9961 expect compile_fail 9962 version 320 es 9963 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9964 values 9965 { 9966 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9967 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 9968 } 9969 9970 both "" 9971 #version 320 es 9972 precision highp float; 9973 ${DECLARATIONS} 9974 9975 void main() 9976 { 9977 ${SETUP} 9978 out0 = in0 + ivec4(1, 2, 3, 4); 9979 ${OUTPUT} 9980 } 9981 "" 9982 end 9983 case ivec3_to_uvec4 9984 expect compile_fail 9985 version 320 es 9986 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 9987 values 9988 { 9989 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 9990 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 9991 } 9992 9993 both "" 9994 #version 320 es 9995 precision highp float; 9996 ${DECLARATIONS} 9997 9998 void main() 9999 { 10000 ${SETUP} 10001 out0 = in0 + ivec4(2, 3, 5, 8); 10002 ${OUTPUT} 10003 } 10004 "" 10005 end 10006 case ivec3_to_vec2 10007 expect compile_fail 10008 version 320 es 10009 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10010 values 10011 { 10012 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 10013 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10014 } 10015 10016 both "" 10017 #version 320 es 10018 precision highp float; 10019 ${DECLARATIONS} 10020 10021 void main() 10022 { 10023 ${SETUP} 10024 out0 = in0 + vec2(1.0, 2.0); 10025 ${OUTPUT} 10026 } 10027 "" 10028 end 10029 case ivec3_to_vec4 10030 expect compile_fail 10031 version 320 es 10032 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10033 values 10034 { 10035 input ivec3 in0 = [ ivec3(1, 2, 3) | ivec3(2, 1, 2) | ivec3(3, 7, 2) ]; 10036 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10037 } 10038 10039 both "" 10040 #version 320 es 10041 precision highp float; 10042 ${DECLARATIONS} 10043 10044 void main() 10045 { 10046 ${SETUP} 10047 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10048 ${OUTPUT} 10049 } 10050 "" 10051 end 10052 case uvec3_to_int 10053 expect compile_fail 10054 version 320 es 10055 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10056 values 10057 { 10058 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10059 output int out0 = [ 2 | 2 | 2 ]; 10060 } 10061 10062 both "" 10063 #version 320 es 10064 precision highp float; 10065 ${DECLARATIONS} 10066 10067 void main() 10068 { 10069 ${SETUP} 10070 out0 = in0 + 2; 10071 ${OUTPUT} 10072 } 10073 "" 10074 end 10075 case uvec3_to_ivec2 10076 expect compile_fail 10077 version 320 es 10078 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10079 values 10080 { 10081 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10082 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10083 } 10084 10085 both "" 10086 #version 320 es 10087 precision highp float; 10088 ${DECLARATIONS} 10089 10090 void main() 10091 { 10092 ${SETUP} 10093 out0 = in0 + ivec2(1, 2); 10094 ${OUTPUT} 10095 } 10096 "" 10097 end 10098 case uvec3_to_uvec2 10099 expect compile_fail 10100 version 320 es 10101 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10102 values 10103 { 10104 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10105 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10106 } 10107 10108 both "" 10109 #version 320 es 10110 precision highp float; 10111 ${DECLARATIONS} 10112 10113 void main() 10114 { 10115 ${SETUP} 10116 out0 = in0 + ivec2(2, 3); 10117 ${OUTPUT} 10118 } 10119 "" 10120 end 10121 case uvec3_to_ivec3 10122 expect compile_fail 10123 version 320 es 10124 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10125 values 10126 { 10127 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10128 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10129 } 10130 10131 both "" 10132 #version 320 es 10133 precision highp float; 10134 ${DECLARATIONS} 10135 10136 void main() 10137 { 10138 ${SETUP} 10139 out0 = in0 + ivec3(1, 2, 3); 10140 ${OUTPUT} 10141 } 10142 "" 10143 end 10144 case uvec3_to_ivec4 10145 expect compile_fail 10146 version 320 es 10147 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10148 values 10149 { 10150 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10151 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10152 } 10153 10154 both "" 10155 #version 320 es 10156 precision highp float; 10157 ${DECLARATIONS} 10158 10159 void main() 10160 { 10161 ${SETUP} 10162 out0 = in0 + ivec4(1, 2, 3, 4); 10163 ${OUTPUT} 10164 } 10165 "" 10166 end 10167 case uvec3_to_uvec4 10168 expect compile_fail 10169 version 320 es 10170 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10171 values 10172 { 10173 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10174 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10175 } 10176 10177 both "" 10178 #version 320 es 10179 precision highp float; 10180 ${DECLARATIONS} 10181 10182 void main() 10183 { 10184 ${SETUP} 10185 out0 = in0 + ivec4(2, 3, 5, 8); 10186 ${OUTPUT} 10187 } 10188 "" 10189 end 10190 case uvec3_to_vec2 10191 expect compile_fail 10192 version 320 es 10193 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10194 values 10195 { 10196 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10197 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10198 } 10199 10200 both "" 10201 #version 320 es 10202 precision highp float; 10203 ${DECLARATIONS} 10204 10205 void main() 10206 { 10207 ${SETUP} 10208 out0 = in0 + vec2(1.0, 2.0); 10209 ${OUTPUT} 10210 } 10211 "" 10212 end 10213 case uvec3_to_vec4 10214 expect compile_fail 10215 version 320 es 10216 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10217 values 10218 { 10219 input uvec3 in0 = [ uvec3(2, 3, 5) | uvec3(4, 6, 2) | uvec3(1, 13, 7) ]; 10220 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10221 } 10222 10223 both "" 10224 #version 320 es 10225 precision highp float; 10226 ${DECLARATIONS} 10227 10228 void main() 10229 { 10230 ${SETUP} 10231 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10232 ${OUTPUT} 10233 } 10234 "" 10235 end 10236 case ivec4_to_uint 10237 expect compile_fail 10238 version 320 es 10239 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10240 values 10241 { 10242 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10243 output uint out0 = [ 1 | 1 | 1 ]; 10244 } 10245 10246 both "" 10247 #version 320 es 10248 precision highp float; 10249 ${DECLARATIONS} 10250 10251 void main() 10252 { 10253 ${SETUP} 10254 out0 = in0 + 1; 10255 ${OUTPUT} 10256 } 10257 "" 10258 end 10259 case ivec4_to_ivec2 10260 expect compile_fail 10261 version 320 es 10262 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10263 values 10264 { 10265 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10266 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10267 } 10268 10269 both "" 10270 #version 320 es 10271 precision highp float; 10272 ${DECLARATIONS} 10273 10274 void main() 10275 { 10276 ${SETUP} 10277 out0 = in0 + ivec2(1, 2); 10278 ${OUTPUT} 10279 } 10280 "" 10281 end 10282 case ivec4_to_uvec2 10283 expect compile_fail 10284 version 320 es 10285 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10286 values 10287 { 10288 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10289 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10290 } 10291 10292 both "" 10293 #version 320 es 10294 precision highp float; 10295 ${DECLARATIONS} 10296 10297 void main() 10298 { 10299 ${SETUP} 10300 out0 = in0 + ivec2(2, 3); 10301 ${OUTPUT} 10302 } 10303 "" 10304 end 10305 case ivec4_to_ivec3 10306 expect compile_fail 10307 version 320 es 10308 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10309 values 10310 { 10311 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10312 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10313 } 10314 10315 both "" 10316 #version 320 es 10317 precision highp float; 10318 ${DECLARATIONS} 10319 10320 void main() 10321 { 10322 ${SETUP} 10323 out0 = in0 + ivec3(1, 2, 3); 10324 ${OUTPUT} 10325 } 10326 "" 10327 end 10328 case ivec4_to_uvec3 10329 expect compile_fail 10330 version 320 es 10331 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10332 values 10333 { 10334 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10335 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10336 } 10337 10338 both "" 10339 #version 320 es 10340 precision highp float; 10341 ${DECLARATIONS} 10342 10343 void main() 10344 { 10345 ${SETUP} 10346 out0 = in0 + ivec3(2, 3, 5); 10347 ${OUTPUT} 10348 } 10349 "" 10350 end 10351 case ivec4_to_vec2 10352 expect compile_fail 10353 version 320 es 10354 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10355 values 10356 { 10357 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10358 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10359 } 10360 10361 both "" 10362 #version 320 es 10363 precision highp float; 10364 ${DECLARATIONS} 10365 10366 void main() 10367 { 10368 ${SETUP} 10369 out0 = in0 + vec2(1.0, 2.0); 10370 ${OUTPUT} 10371 } 10372 "" 10373 end 10374 case ivec4_to_vec3 10375 expect compile_fail 10376 version 320 es 10377 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10378 values 10379 { 10380 input ivec4 in0 = [ ivec4(1, 2, 3, 4) | ivec4(2, 1, 2, 6) | ivec4(3, 7, 2, 5) ]; 10381 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10382 } 10383 10384 both "" 10385 #version 320 es 10386 precision highp float; 10387 ${DECLARATIONS} 10388 10389 void main() 10390 { 10391 ${SETUP} 10392 out0 = in0 + vec3(1.0, 2.0, 3.0); 10393 ${OUTPUT} 10394 } 10395 "" 10396 end 10397 case uvec4_to_int 10398 expect compile_fail 10399 version 320 es 10400 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10401 values 10402 { 10403 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10404 output int out0 = [ 2 | 2 | 2 ]; 10405 } 10406 10407 both "" 10408 #version 320 es 10409 precision highp float; 10410 ${DECLARATIONS} 10411 10412 void main() 10413 { 10414 ${SETUP} 10415 out0 = in0 + 2; 10416 ${OUTPUT} 10417 } 10418 "" 10419 end 10420 case uvec4_to_ivec2 10421 expect compile_fail 10422 version 320 es 10423 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10424 values 10425 { 10426 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10427 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10428 } 10429 10430 both "" 10431 #version 320 es 10432 precision highp float; 10433 ${DECLARATIONS} 10434 10435 void main() 10436 { 10437 ${SETUP} 10438 out0 = in0 + ivec2(1, 2); 10439 ${OUTPUT} 10440 } 10441 "" 10442 end 10443 case uvec4_to_uvec2 10444 expect compile_fail 10445 version 320 es 10446 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10447 values 10448 { 10449 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10450 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10451 } 10452 10453 both "" 10454 #version 320 es 10455 precision highp float; 10456 ${DECLARATIONS} 10457 10458 void main() 10459 { 10460 ${SETUP} 10461 out0 = in0 + ivec2(2, 3); 10462 ${OUTPUT} 10463 } 10464 "" 10465 end 10466 case uvec4_to_ivec3 10467 expect compile_fail 10468 version 320 es 10469 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10470 values 10471 { 10472 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10473 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10474 } 10475 10476 both "" 10477 #version 320 es 10478 precision highp float; 10479 ${DECLARATIONS} 10480 10481 void main() 10482 { 10483 ${SETUP} 10484 out0 = in0 + ivec3(1, 2, 3); 10485 ${OUTPUT} 10486 } 10487 "" 10488 end 10489 case uvec4_to_uvec3 10490 expect compile_fail 10491 version 320 es 10492 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10493 values 10494 { 10495 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10496 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10497 } 10498 10499 both "" 10500 #version 320 es 10501 precision highp float; 10502 ${DECLARATIONS} 10503 10504 void main() 10505 { 10506 ${SETUP} 10507 out0 = in0 + ivec3(2, 3, 5); 10508 ${OUTPUT} 10509 } 10510 "" 10511 end 10512 case uvec4_to_ivec4 10513 expect compile_fail 10514 version 320 es 10515 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10516 values 10517 { 10518 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10519 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10520 } 10521 10522 both "" 10523 #version 320 es 10524 precision highp float; 10525 ${DECLARATIONS} 10526 10527 void main() 10528 { 10529 ${SETUP} 10530 out0 = in0 + ivec4(1, 2, 3, 4); 10531 ${OUTPUT} 10532 } 10533 "" 10534 end 10535 case uvec4_to_vec2 10536 expect compile_fail 10537 version 320 es 10538 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10539 values 10540 { 10541 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10542 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 10543 } 10544 10545 both "" 10546 #version 320 es 10547 precision highp float; 10548 ${DECLARATIONS} 10549 10550 void main() 10551 { 10552 ${SETUP} 10553 out0 = in0 + vec2(1.0, 2.0); 10554 ${OUTPUT} 10555 } 10556 "" 10557 end 10558 case uvec4_to_vec3 10559 expect compile_fail 10560 version 320 es 10561 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10562 values 10563 { 10564 input uvec4 in0 = [ uvec4(2, 3, 5, 8) | uvec4(4, 6, 2, 9) | uvec4(1, 13, 7, 4) ]; 10565 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10566 } 10567 10568 both "" 10569 #version 320 es 10570 precision highp float; 10571 ${DECLARATIONS} 10572 10573 void main() 10574 { 10575 ${SETUP} 10576 out0 = in0 + vec3(1.0, 2.0, 3.0); 10577 ${OUTPUT} 10578 } 10579 "" 10580 end 10581 case float_to_int 10582 expect compile_fail 10583 version 320 es 10584 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10585 values 10586 { 10587 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10588 output int out0 = [ 2 | 2 | 2 | 2 | 2 ]; 10589 } 10590 10591 both "" 10592 #version 320 es 10593 precision highp float; 10594 ${DECLARATIONS} 10595 10596 void main() 10597 { 10598 ${SETUP} 10599 out0 = in0 + 2; 10600 ${OUTPUT} 10601 } 10602 "" 10603 end 10604 case float_to_uint 10605 expect compile_fail 10606 version 320 es 10607 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10608 values 10609 { 10610 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10611 output uint out0 = [ 1 | 1 | 1 | 1 | 1 ]; 10612 } 10613 10614 both "" 10615 #version 320 es 10616 precision highp float; 10617 ${DECLARATIONS} 10618 10619 void main() 10620 { 10621 ${SETUP} 10622 out0 = in0 + 1; 10623 ${OUTPUT} 10624 } 10625 "" 10626 end 10627 case float_to_ivec2 10628 expect compile_fail 10629 version 320 es 10630 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10631 values 10632 { 10633 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10634 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10635 } 10636 10637 both "" 10638 #version 320 es 10639 precision highp float; 10640 ${DECLARATIONS} 10641 10642 void main() 10643 { 10644 ${SETUP} 10645 out0 = in0 + ivec2(1, 2); 10646 ${OUTPUT} 10647 } 10648 "" 10649 end 10650 case float_to_uvec2 10651 expect compile_fail 10652 version 320 es 10653 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10654 values 10655 { 10656 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10657 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10658 } 10659 10660 both "" 10661 #version 320 es 10662 precision highp float; 10663 ${DECLARATIONS} 10664 10665 void main() 10666 { 10667 ${SETUP} 10668 out0 = in0 + ivec2(2, 3); 10669 ${OUTPUT} 10670 } 10671 "" 10672 end 10673 case float_to_ivec3 10674 expect compile_fail 10675 version 320 es 10676 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10677 values 10678 { 10679 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10680 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10681 } 10682 10683 both "" 10684 #version 320 es 10685 precision highp float; 10686 ${DECLARATIONS} 10687 10688 void main() 10689 { 10690 ${SETUP} 10691 out0 = in0 + ivec3(1, 2, 3); 10692 ${OUTPUT} 10693 } 10694 "" 10695 end 10696 case float_to_uvec3 10697 expect compile_fail 10698 version 320 es 10699 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10700 values 10701 { 10702 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10703 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10704 } 10705 10706 both "" 10707 #version 320 es 10708 precision highp float; 10709 ${DECLARATIONS} 10710 10711 void main() 10712 { 10713 ${SETUP} 10714 out0 = in0 + ivec3(2, 3, 5); 10715 ${OUTPUT} 10716 } 10717 "" 10718 end 10719 case float_to_ivec4 10720 expect compile_fail 10721 version 320 es 10722 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10723 values 10724 { 10725 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10726 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10727 } 10728 10729 both "" 10730 #version 320 es 10731 precision highp float; 10732 ${DECLARATIONS} 10733 10734 void main() 10735 { 10736 ${SETUP} 10737 out0 = in0 + ivec4(1, 2, 3, 4); 10738 ${OUTPUT} 10739 } 10740 "" 10741 end 10742 case float_to_uvec4 10743 expect compile_fail 10744 version 320 es 10745 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10746 values 10747 { 10748 input float in0 = [ 2.0 | 1.0 | 1.0 | 3.0 | 5.0 ]; 10749 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10750 } 10751 10752 both "" 10753 #version 320 es 10754 precision highp float; 10755 ${DECLARATIONS} 10756 10757 void main() 10758 { 10759 ${SETUP} 10760 out0 = in0 + ivec4(2, 3, 5, 8); 10761 ${OUTPUT} 10762 } 10763 "" 10764 end 10765 case vec2_to_int 10766 expect compile_fail 10767 version 320 es 10768 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10769 values 10770 { 10771 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10772 output int out0 = [ 2 | 2 | 2 ]; 10773 } 10774 10775 both "" 10776 #version 320 es 10777 precision highp float; 10778 ${DECLARATIONS} 10779 10780 void main() 10781 { 10782 ${SETUP} 10783 out0 = in0 + 2; 10784 ${OUTPUT} 10785 } 10786 "" 10787 end 10788 case vec2_to_uint 10789 expect compile_fail 10790 version 320 es 10791 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10792 values 10793 { 10794 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10795 output uint out0 = [ 1 | 1 | 1 ]; 10796 } 10797 10798 both "" 10799 #version 320 es 10800 precision highp float; 10801 ${DECLARATIONS} 10802 10803 void main() 10804 { 10805 ${SETUP} 10806 out0 = in0 + 1; 10807 ${OUTPUT} 10808 } 10809 "" 10810 end 10811 case vec2_to_ivec2 10812 expect compile_fail 10813 version 320 es 10814 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10815 values 10816 { 10817 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10818 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 10819 } 10820 10821 both "" 10822 #version 320 es 10823 precision highp float; 10824 ${DECLARATIONS} 10825 10826 void main() 10827 { 10828 ${SETUP} 10829 out0 = in0 + ivec2(1, 2); 10830 ${OUTPUT} 10831 } 10832 "" 10833 end 10834 case vec2_to_uvec2 10835 expect compile_fail 10836 version 320 es 10837 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10838 values 10839 { 10840 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10841 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 10842 } 10843 10844 both "" 10845 #version 320 es 10846 precision highp float; 10847 ${DECLARATIONS} 10848 10849 void main() 10850 { 10851 ${SETUP} 10852 out0 = in0 + ivec2(2, 3); 10853 ${OUTPUT} 10854 } 10855 "" 10856 end 10857 case vec2_to_ivec3 10858 expect compile_fail 10859 version 320 es 10860 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10861 values 10862 { 10863 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10864 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 10865 } 10866 10867 both "" 10868 #version 320 es 10869 precision highp float; 10870 ${DECLARATIONS} 10871 10872 void main() 10873 { 10874 ${SETUP} 10875 out0 = in0 + ivec3(1, 2, 3); 10876 ${OUTPUT} 10877 } 10878 "" 10879 end 10880 case vec2_to_uvec3 10881 expect compile_fail 10882 version 320 es 10883 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10884 values 10885 { 10886 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10887 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 10888 } 10889 10890 both "" 10891 #version 320 es 10892 precision highp float; 10893 ${DECLARATIONS} 10894 10895 void main() 10896 { 10897 ${SETUP} 10898 out0 = in0 + ivec3(2, 3, 5); 10899 ${OUTPUT} 10900 } 10901 "" 10902 end 10903 case vec2_to_ivec4 10904 expect compile_fail 10905 version 320 es 10906 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10907 values 10908 { 10909 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10910 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 10911 } 10912 10913 both "" 10914 #version 320 es 10915 precision highp float; 10916 ${DECLARATIONS} 10917 10918 void main() 10919 { 10920 ${SETUP} 10921 out0 = in0 + ivec4(1, 2, 3, 4); 10922 ${OUTPUT} 10923 } 10924 "" 10925 end 10926 case vec2_to_uvec4 10927 expect compile_fail 10928 version 320 es 10929 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10930 values 10931 { 10932 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10933 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 10934 } 10935 10936 both "" 10937 #version 320 es 10938 precision highp float; 10939 ${DECLARATIONS} 10940 10941 void main() 10942 { 10943 ${SETUP} 10944 out0 = in0 + ivec4(2, 3, 5, 8); 10945 ${OUTPUT} 10946 } 10947 "" 10948 end 10949 case vec2_to_vec3 10950 expect compile_fail 10951 version 320 es 10952 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10953 values 10954 { 10955 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10956 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 10957 } 10958 10959 both "" 10960 #version 320 es 10961 precision highp float; 10962 ${DECLARATIONS} 10963 10964 void main() 10965 { 10966 ${SETUP} 10967 out0 = in0 + vec3(1.0, 2.0, 3.0); 10968 ${OUTPUT} 10969 } 10970 "" 10971 end 10972 case vec2_to_vec4 10973 expect compile_fail 10974 version 320 es 10975 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10976 values 10977 { 10978 input vec2 in0 = [ vec2(1.0, 2.0) | vec2(2.0, 1.0) | vec2(3.0, 7.0) ]; 10979 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 10980 } 10981 10982 both "" 10983 #version 320 es 10984 precision highp float; 10985 ${DECLARATIONS} 10986 10987 void main() 10988 { 10989 ${SETUP} 10990 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 10991 ${OUTPUT} 10992 } 10993 "" 10994 end 10995 case vec3_to_int 10996 expect compile_fail 10997 version 320 es 10998 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 10999 values 11000 { 11001 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11002 output int out0 = [ 2 | 2 | 2 ]; 11003 } 11004 11005 both "" 11006 #version 320 es 11007 precision highp float; 11008 ${DECLARATIONS} 11009 11010 void main() 11011 { 11012 ${SETUP} 11013 out0 = in0 + 2; 11014 ${OUTPUT} 11015 } 11016 "" 11017 end 11018 case vec3_to_uint 11019 expect compile_fail 11020 version 320 es 11021 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11022 values 11023 { 11024 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11025 output uint out0 = [ 1 | 1 | 1 ]; 11026 } 11027 11028 both "" 11029 #version 320 es 11030 precision highp float; 11031 ${DECLARATIONS} 11032 11033 void main() 11034 { 11035 ${SETUP} 11036 out0 = in0 + 1; 11037 ${OUTPUT} 11038 } 11039 "" 11040 end 11041 case vec3_to_ivec2 11042 expect compile_fail 11043 version 320 es 11044 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11045 values 11046 { 11047 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11048 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 11049 } 11050 11051 both "" 11052 #version 320 es 11053 precision highp float; 11054 ${DECLARATIONS} 11055 11056 void main() 11057 { 11058 ${SETUP} 11059 out0 = in0 + ivec2(1, 2); 11060 ${OUTPUT} 11061 } 11062 "" 11063 end 11064 case vec3_to_uvec2 11065 expect compile_fail 11066 version 320 es 11067 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11068 values 11069 { 11070 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11071 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 11072 } 11073 11074 both "" 11075 #version 320 es 11076 precision highp float; 11077 ${DECLARATIONS} 11078 11079 void main() 11080 { 11081 ${SETUP} 11082 out0 = in0 + ivec2(2, 3); 11083 ${OUTPUT} 11084 } 11085 "" 11086 end 11087 case vec3_to_ivec3 11088 expect compile_fail 11089 version 320 es 11090 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11091 values 11092 { 11093 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11094 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 11095 } 11096 11097 both "" 11098 #version 320 es 11099 precision highp float; 11100 ${DECLARATIONS} 11101 11102 void main() 11103 { 11104 ${SETUP} 11105 out0 = in0 + ivec3(1, 2, 3); 11106 ${OUTPUT} 11107 } 11108 "" 11109 end 11110 case vec3_to_uvec3 11111 expect compile_fail 11112 version 320 es 11113 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11114 values 11115 { 11116 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11117 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 11118 } 11119 11120 both "" 11121 #version 320 es 11122 precision highp float; 11123 ${DECLARATIONS} 11124 11125 void main() 11126 { 11127 ${SETUP} 11128 out0 = in0 + ivec3(2, 3, 5); 11129 ${OUTPUT} 11130 } 11131 "" 11132 end 11133 case vec3_to_ivec4 11134 expect compile_fail 11135 version 320 es 11136 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11137 values 11138 { 11139 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11140 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 11141 } 11142 11143 both "" 11144 #version 320 es 11145 precision highp float; 11146 ${DECLARATIONS} 11147 11148 void main() 11149 { 11150 ${SETUP} 11151 out0 = in0 + ivec4(1, 2, 3, 4); 11152 ${OUTPUT} 11153 } 11154 "" 11155 end 11156 case vec3_to_uvec4 11157 expect compile_fail 11158 version 320 es 11159 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11160 values 11161 { 11162 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11163 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 11164 } 11165 11166 both "" 11167 #version 320 es 11168 precision highp float; 11169 ${DECLARATIONS} 11170 11171 void main() 11172 { 11173 ${SETUP} 11174 out0 = in0 + ivec4(2, 3, 5, 8); 11175 ${OUTPUT} 11176 } 11177 "" 11178 end 11179 case vec3_to_vec2 11180 expect compile_fail 11181 version 320 es 11182 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11183 values 11184 { 11185 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11186 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 11187 } 11188 11189 both "" 11190 #version 320 es 11191 precision highp float; 11192 ${DECLARATIONS} 11193 11194 void main() 11195 { 11196 ${SETUP} 11197 out0 = in0 + vec2(1.0, 2.0); 11198 ${OUTPUT} 11199 } 11200 "" 11201 end 11202 case vec3_to_vec4 11203 expect compile_fail 11204 version 320 es 11205 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11206 values 11207 { 11208 input vec3 in0 = [ vec3(1.0, 2.0, 3.0) | vec3(2.0, 1.0, 2.0) | vec3(3.0, 7.0, 2.0) ]; 11209 output vec4 out0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) | vec4(1.0, 2.0, 3.0, 4.0) ]; 11210 } 11211 11212 both "" 11213 #version 320 es 11214 precision highp float; 11215 ${DECLARATIONS} 11216 11217 void main() 11218 { 11219 ${SETUP} 11220 out0 = in0 + vec4(1.0, 2.0, 3.0, 4.0); 11221 ${OUTPUT} 11222 } 11223 "" 11224 end 11225 case vec4_to_int 11226 expect compile_fail 11227 version 320 es 11228 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11229 values 11230 { 11231 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11232 output int out0 = [ 2 | 2 | 2 ]; 11233 } 11234 11235 both "" 11236 #version 320 es 11237 precision highp float; 11238 ${DECLARATIONS} 11239 11240 void main() 11241 { 11242 ${SETUP} 11243 out0 = in0 + 2; 11244 ${OUTPUT} 11245 } 11246 "" 11247 end 11248 case vec4_to_uint 11249 expect compile_fail 11250 version 320 es 11251 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11252 values 11253 { 11254 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11255 output uint out0 = [ 1 | 1 | 1 ]; 11256 } 11257 11258 both "" 11259 #version 320 es 11260 precision highp float; 11261 ${DECLARATIONS} 11262 11263 void main() 11264 { 11265 ${SETUP} 11266 out0 = in0 + 1; 11267 ${OUTPUT} 11268 } 11269 "" 11270 end 11271 case vec4_to_ivec2 11272 expect compile_fail 11273 version 320 es 11274 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11275 values 11276 { 11277 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11278 output ivec2 out0 = [ ivec2(1, 2) | ivec2(1, 2) | ivec2(1, 2) ]; 11279 } 11280 11281 both "" 11282 #version 320 es 11283 precision highp float; 11284 ${DECLARATIONS} 11285 11286 void main() 11287 { 11288 ${SETUP} 11289 out0 = in0 + ivec2(1, 2); 11290 ${OUTPUT} 11291 } 11292 "" 11293 end 11294 case vec4_to_uvec2 11295 expect compile_fail 11296 version 320 es 11297 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11298 values 11299 { 11300 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11301 output uvec2 out0 = [ uvec2(2, 3) | uvec2(2, 3) | uvec2(2, 3) ]; 11302 } 11303 11304 both "" 11305 #version 320 es 11306 precision highp float; 11307 ${DECLARATIONS} 11308 11309 void main() 11310 { 11311 ${SETUP} 11312 out0 = in0 + ivec2(2, 3); 11313 ${OUTPUT} 11314 } 11315 "" 11316 end 11317 case vec4_to_ivec3 11318 expect compile_fail 11319 version 320 es 11320 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11321 values 11322 { 11323 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11324 output ivec3 out0 = [ ivec3(1, 2, 3) | ivec3(1, 2, 3) | ivec3(1, 2, 3) ]; 11325 } 11326 11327 both "" 11328 #version 320 es 11329 precision highp float; 11330 ${DECLARATIONS} 11331 11332 void main() 11333 { 11334 ${SETUP} 11335 out0 = in0 + ivec3(1, 2, 3); 11336 ${OUTPUT} 11337 } 11338 "" 11339 end 11340 case vec4_to_uvec3 11341 expect compile_fail 11342 version 320 es 11343 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11344 values 11345 { 11346 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11347 output uvec3 out0 = [ uvec3(2, 3, 5) | uvec3(2, 3, 5) | uvec3(2, 3, 5) ]; 11348 } 11349 11350 both "" 11351 #version 320 es 11352 precision highp float; 11353 ${DECLARATIONS} 11354 11355 void main() 11356 { 11357 ${SETUP} 11358 out0 = in0 + ivec3(2, 3, 5); 11359 ${OUTPUT} 11360 } 11361 "" 11362 end 11363 case vec4_to_ivec4 11364 expect compile_fail 11365 version 320 es 11366 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11367 values 11368 { 11369 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11370 output ivec4 out0 = [ ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) | ivec4(1, 2, 3, 4) ]; 11371 } 11372 11373 both "" 11374 #version 320 es 11375 precision highp float; 11376 ${DECLARATIONS} 11377 11378 void main() 11379 { 11380 ${SETUP} 11381 out0 = in0 + ivec4(1, 2, 3, 4); 11382 ${OUTPUT} 11383 } 11384 "" 11385 end 11386 case vec4_to_uvec4 11387 expect compile_fail 11388 version 320 es 11389 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11390 values 11391 { 11392 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11393 output uvec4 out0 = [ uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) | uvec4(2, 3, 5, 8) ]; 11394 } 11395 11396 both "" 11397 #version 320 es 11398 precision highp float; 11399 ${DECLARATIONS} 11400 11401 void main() 11402 { 11403 ${SETUP} 11404 out0 = in0 + ivec4(2, 3, 5, 8); 11405 ${OUTPUT} 11406 } 11407 "" 11408 end 11409 case vec4_to_vec2 11410 expect compile_fail 11411 version 320 es 11412 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11413 values 11414 { 11415 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11416 output vec2 out0 = [ vec2(1.0, 2.0) | vec2(1.0, 2.0) | vec2(1.0, 2.0) ]; 11417 } 11418 11419 both "" 11420 #version 320 es 11421 precision highp float; 11422 ${DECLARATIONS} 11423 11424 void main() 11425 { 11426 ${SETUP} 11427 out0 = in0 + vec2(1.0, 2.0); 11428 ${OUTPUT} 11429 } 11430 "" 11431 end 11432 case vec4_to_vec3 11433 expect compile_fail 11434 version 320 es 11435 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11436 values 11437 { 11438 input vec4 in0 = [ vec4(1.0, 2.0, 3.0, 4.0) | vec4(2.0, 1.0, 2.0, 6.0) | vec4(3.0, 7.0, 2.0, 5.0) ]; 11439 output vec3 out0 = [ vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) | vec3(1.0, 2.0, 3.0) ]; 11440 } 11441 11442 both "" 11443 #version 320 es 11444 precision highp float; 11445 ${DECLARATIONS} 11446 11447 void main() 11448 { 11449 ${SETUP} 11450 out0 = in0 + vec3(1.0, 2.0, 3.0); 11451 ${OUTPUT} 11452 } 11453 "" 11454 end 11455 11456 end # variables 11457 group arrays "Arrays" 11458 11459 case int_to_float 11460 expect compile_fail 11461 version 320 es 11462 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11463 values {} 11464 11465 both "" 11466 #version 320 es 11467 precision highp float; 11468 ${DECLARATIONS} 11469 11470 void main() 11471 { 11472 ${SETUP} 11473 float a[] = int[] (2, 1, 1, 3, 5); 11474 ${OUTPUT} 11475 } 11476 "" 11477 end 11478 case int_to_uint 11479 expect compile_fail 11480 version 320 es 11481 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11482 values {} 11483 11484 both "" 11485 #version 320 es 11486 precision highp float; 11487 ${DECLARATIONS} 11488 11489 void main() 11490 { 11491 ${SETUP} 11492 uint a[] = int[] (2, 1, 1, 3, 5); 11493 ${OUTPUT} 11494 } 11495 "" 11496 end 11497 case uint_to_float 11498 expect compile_fail 11499 version 320 es 11500 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11501 values {} 11502 11503 both "" 11504 #version 320 es 11505 precision highp float; 11506 ${DECLARATIONS} 11507 11508 void main() 11509 { 11510 ${SETUP} 11511 float a[] = uint[] (1, 3, 4, 7, 11); 11512 ${OUTPUT} 11513 } 11514 "" 11515 end 11516 case ivec2_to_uvec2 11517 expect compile_fail 11518 version 320 es 11519 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11520 values {} 11521 11522 both "" 11523 #version 320 es 11524 precision highp float; 11525 ${DECLARATIONS} 11526 11527 void main() 11528 { 11529 ${SETUP} 11530 uvec2 a[] = ivec2[] (uvec2(1, 2), uvec2(2, 1), uvec2(3, 7)); 11531 ${OUTPUT} 11532 } 11533 "" 11534 end 11535 case ivec2_to_vec2 11536 expect compile_fail 11537 version 320 es 11538 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11539 values {} 11540 11541 both "" 11542 #version 320 es 11543 precision highp float; 11544 ${DECLARATIONS} 11545 11546 void main() 11547 { 11548 ${SETUP} 11549 vec2 a[] = ivec2[] (vec2(1, 2), vec2(2, 1), vec2(3, 7)); 11550 ${OUTPUT} 11551 } 11552 "" 11553 end 11554 case uvec2_to_vec2 11555 expect compile_fail 11556 version 320 es 11557 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11558 values {} 11559 11560 both "" 11561 #version 320 es 11562 precision highp float; 11563 ${DECLARATIONS} 11564 11565 void main() 11566 { 11567 ${SETUP} 11568 vec2 a[] = uvec2[] (vec2(2, 3), vec2(4, 6), vec2(1, 13)); 11569 ${OUTPUT} 11570 } 11571 "" 11572 end 11573 case ivec3_to_uvec3 11574 expect compile_fail 11575 version 320 es 11576 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11577 values {} 11578 11579 both "" 11580 #version 320 es 11581 precision highp float; 11582 ${DECLARATIONS} 11583 11584 void main() 11585 { 11586 ${SETUP} 11587 uvec3 a[] = ivec3[] (uvec3(1, 2, 3), uvec3(2, 1, 2), uvec3(3, 7, 2)); 11588 ${OUTPUT} 11589 } 11590 "" 11591 end 11592 case ivec3_to_vec3 11593 expect compile_fail 11594 version 320 es 11595 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11596 values {} 11597 11598 both "" 11599 #version 320 es 11600 precision highp float; 11601 ${DECLARATIONS} 11602 11603 void main() 11604 { 11605 ${SETUP} 11606 vec3 a[] = ivec3[] (vec3(1, 2, 3), vec3(2, 1, 2), vec3(3, 7, 2)); 11607 ${OUTPUT} 11608 } 11609 "" 11610 end 11611 case uvec3_to_vec3 11612 expect compile_fail 11613 version 320 es 11614 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11615 values {} 11616 11617 both "" 11618 #version 320 es 11619 precision highp float; 11620 ${DECLARATIONS} 11621 11622 void main() 11623 { 11624 ${SETUP} 11625 vec3 a[] = uvec3[] (vec3(2, 3, 5), vec3(4, 6, 2), vec3(1, 13, 7)); 11626 ${OUTPUT} 11627 } 11628 "" 11629 end 11630 case ivec4_to_uvec4 11631 expect compile_fail 11632 version 320 es 11633 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11634 values {} 11635 11636 both "" 11637 #version 320 es 11638 precision highp float; 11639 ${DECLARATIONS} 11640 11641 void main() 11642 { 11643 ${SETUP} 11644 uvec4 a[] = ivec4[] (uvec4(1, 2, 3, 4), uvec4(2, 1, 2, 6), uvec4(3, 7, 2, 5)); 11645 ${OUTPUT} 11646 } 11647 "" 11648 end 11649 case ivec4_to_vec4 11650 expect compile_fail 11651 version 320 es 11652 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11653 values {} 11654 11655 both "" 11656 #version 320 es 11657 precision highp float; 11658 ${DECLARATIONS} 11659 11660 void main() 11661 { 11662 ${SETUP} 11663 vec4 a[] = ivec4[] (vec4(1, 2, 3, 4), vec4(2, 1, 2, 6), vec4(3, 7, 2, 5)); 11664 ${OUTPUT} 11665 } 11666 "" 11667 end 11668 case uvec4_to_vec4 11669 expect compile_fail 11670 version 320 es 11671 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11672 values {} 11673 11674 both "" 11675 #version 320 es 11676 precision highp float; 11677 ${DECLARATIONS} 11678 11679 void main() 11680 { 11681 ${SETUP} 11682 vec4 a[] = uvec4[] (vec4(2, 3, 5, 8), vec4(4, 6, 2, 9), vec4(1, 13, 7, 4)); 11683 ${OUTPUT} 11684 } 11685 "" 11686 end 11687 11688 end # arrays 11689 group structs "Structs" 11690 11691 case int_to_float 11692 expect compile_fail 11693 version 320 es 11694 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11695 values {} 11696 11697 both "" 11698 #version 320 es 11699 precision highp float; 11700 ${DECLARATIONS} 11701 11702 void main() 11703 { 11704 ${SETUP} 11705 struct { int value; } a; 11706 struct { float value; } b; 11707 a = 2; 11708 b = a; 11709 ${OUTPUT} 11710 } 11711 "" 11712 end 11713 case int_to_uint 11714 expect compile_fail 11715 version 320 es 11716 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11717 values {} 11718 11719 both "" 11720 #version 320 es 11721 precision highp float; 11722 ${DECLARATIONS} 11723 11724 void main() 11725 { 11726 ${SETUP} 11727 struct { int value; } a; 11728 struct { uint value; } b; 11729 a = 2; 11730 b = a; 11731 ${OUTPUT} 11732 } 11733 "" 11734 end 11735 case uint_to_float 11736 expect compile_fail 11737 version 320 es 11738 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11739 values {} 11740 11741 both "" 11742 #version 320 es 11743 precision highp float; 11744 ${DECLARATIONS} 11745 11746 void main() 11747 { 11748 ${SETUP} 11749 struct { uint value; } a; 11750 struct { float value; } b; 11751 a = 1; 11752 b = a; 11753 ${OUTPUT} 11754 } 11755 "" 11756 end 11757 case ivec2_to_uvec2 11758 expect compile_fail 11759 version 320 es 11760 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11761 values {} 11762 11763 both "" 11764 #version 320 es 11765 precision highp float; 11766 ${DECLARATIONS} 11767 11768 void main() 11769 { 11770 ${SETUP} 11771 struct { ivec2 value; } a; 11772 struct { uvec2 value; } b; 11773 a = ivec2(1, 2); 11774 b = a; 11775 ${OUTPUT} 11776 } 11777 "" 11778 end 11779 case ivec2_to_vec2 11780 expect compile_fail 11781 version 320 es 11782 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11783 values {} 11784 11785 both "" 11786 #version 320 es 11787 precision highp float; 11788 ${DECLARATIONS} 11789 11790 void main() 11791 { 11792 ${SETUP} 11793 struct { ivec2 value; } a; 11794 struct { vec2 value; } b; 11795 a = ivec2(1, 2); 11796 b = a; 11797 ${OUTPUT} 11798 } 11799 "" 11800 end 11801 case uvec2_to_vec2 11802 expect compile_fail 11803 version 320 es 11804 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11805 values {} 11806 11807 both "" 11808 #version 320 es 11809 precision highp float; 11810 ${DECLARATIONS} 11811 11812 void main() 11813 { 11814 ${SETUP} 11815 struct { uvec2 value; } a; 11816 struct { vec2 value; } b; 11817 a = uvec2(2, 3); 11818 b = a; 11819 ${OUTPUT} 11820 } 11821 "" 11822 end 11823 case ivec3_to_uvec3 11824 expect compile_fail 11825 version 320 es 11826 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11827 values {} 11828 11829 both "" 11830 #version 320 es 11831 precision highp float; 11832 ${DECLARATIONS} 11833 11834 void main() 11835 { 11836 ${SETUP} 11837 struct { ivec3 value; } a; 11838 struct { uvec3 value; } b; 11839 a = ivec3(1, 2, 3); 11840 b = a; 11841 ${OUTPUT} 11842 } 11843 "" 11844 end 11845 case ivec3_to_vec3 11846 expect compile_fail 11847 version 320 es 11848 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11849 values {} 11850 11851 both "" 11852 #version 320 es 11853 precision highp float; 11854 ${DECLARATIONS} 11855 11856 void main() 11857 { 11858 ${SETUP} 11859 struct { ivec3 value; } a; 11860 struct { vec3 value; } b; 11861 a = ivec3(1, 2, 3); 11862 b = a; 11863 ${OUTPUT} 11864 } 11865 "" 11866 end 11867 case uvec3_to_vec3 11868 expect compile_fail 11869 version 320 es 11870 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11871 values {} 11872 11873 both "" 11874 #version 320 es 11875 precision highp float; 11876 ${DECLARATIONS} 11877 11878 void main() 11879 { 11880 ${SETUP} 11881 struct { uvec3 value; } a; 11882 struct { vec3 value; } b; 11883 a = uvec3(2, 3, 5); 11884 b = a; 11885 ${OUTPUT} 11886 } 11887 "" 11888 end 11889 case ivec4_to_uvec4 11890 expect compile_fail 11891 version 320 es 11892 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11893 values {} 11894 11895 both "" 11896 #version 320 es 11897 precision highp float; 11898 ${DECLARATIONS} 11899 11900 void main() 11901 { 11902 ${SETUP} 11903 struct { ivec4 value; } a; 11904 struct { uvec4 value; } b; 11905 a = ivec4(1, 2, 3, 4); 11906 b = a; 11907 ${OUTPUT} 11908 } 11909 "" 11910 end 11911 case ivec4_to_vec4 11912 expect compile_fail 11913 version 320 es 11914 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11915 values {} 11916 11917 both "" 11918 #version 320 es 11919 precision highp float; 11920 ${DECLARATIONS} 11921 11922 void main() 11923 { 11924 ${SETUP} 11925 struct { ivec4 value; } a; 11926 struct { vec4 value; } b; 11927 a = ivec4(1, 2, 3, 4); 11928 b = a; 11929 ${OUTPUT} 11930 } 11931 "" 11932 end 11933 case uvec4_to_vec4 11934 expect compile_fail 11935 version 320 es 11936 require extension { "GL_EXT_shader_implicit_conversions" } in { vertex, fragment } 11937 values {} 11938 11939 both "" 11940 #version 320 es 11941 precision highp float; 11942 ${DECLARATIONS} 11943 11944 void main() 11945 { 11946 ${SETUP} 11947 struct { uvec4 value; } a; 11948 struct { vec4 value; } b; 11949 a = uvec4(2, 3, 5, 8); 11950 b = a; 11951 ${OUTPUT} 11952 } 11953 "" 11954 end 11955 11956 end # structs 11957 11958end # invalid 11959