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 valid "Valid uniform interface block syntax tests." 5 6 case repeat_interface_qualifier_vertex 7 version 300 es 8 expect build_successful 9 10 vertex "" 11 #version 300 es 12 precision highp float; 13 14 15 16 uniform UniformBlock 17 { 18 uniform vec4 uniformMember; 19 } uniformBlock; 20 21 void main() 22 { 23 gl_Position = uniformBlock.uniformMember; 24 } 25 "" 26 27 fragment "" 28 #version 300 es 29 precision highp float; 30 31 layout(location=0) out vec4 o_color; 32 33 void main() 34 { 35 o_color = vec4(1.0); 36 } 37 "" 38 end 39 case repeat_interface_qualifier_fragment 40 version 300 es 41 expect build_successful 42 43 vertex "" 44 #version 300 es 45 precision highp float; 46 47 in vec4 a_pos; 48 49 void main() 50 { 51 gl_Position = a_pos; 52 } 53 "" 54 55 fragment "" 56 #version 300 es 57 precision highp float; 58 59 layout(location=0) out vec4 o_color; 60 61 uniform UniformBlock 62 { 63 uniform vec4 uniformMember; 64 } uniformBlock; 65 66 void main() 67 { 68 o_color = uniformBlock.uniformMember; 69 } 70 "" 71 end 72 case layout_shared_vertex 73 version 300 es 74 expect build_successful 75 76 vertex "" 77 #version 300 es 78 precision highp float; 79 80 81 82 layout(shared) uniform UniformBlock 83 { 84 vec4 uniformMember; 85 } uniformBlock; 86 87 void main() 88 { 89 gl_Position = uniformBlock.uniformMember; 90 } 91 "" 92 93 fragment "" 94 #version 300 es 95 precision highp float; 96 97 layout(location=0) out vec4 o_color; 98 99 void main() 100 { 101 o_color = vec4(1.0); 102 } 103 "" 104 end 105 case layout_shared_fragment 106 version 300 es 107 expect build_successful 108 109 vertex "" 110 #version 300 es 111 precision highp float; 112 113 in vec4 a_pos; 114 115 void main() 116 { 117 gl_Position = a_pos; 118 } 119 "" 120 121 fragment "" 122 #version 300 es 123 precision highp float; 124 125 layout(location=0) out vec4 o_color; 126 127 layout(shared) uniform UniformBlock 128 { 129 vec4 uniformMember; 130 } uniformBlock; 131 132 void main() 133 { 134 o_color = uniformBlock.uniformMember; 135 } 136 "" 137 end 138 case layout_packed_vertex 139 version 300 es 140 expect build_successful 141 142 vertex "" 143 #version 300 es 144 precision highp float; 145 146 147 148 layout(packed) uniform UniformBlock 149 { 150 vec4 uniformMember; 151 } uniformBlock; 152 153 void main() 154 { 155 gl_Position = uniformBlock.uniformMember; 156 } 157 "" 158 159 fragment "" 160 #version 300 es 161 precision highp float; 162 163 layout(location=0) out vec4 o_color; 164 165 void main() 166 { 167 o_color = vec4(1.0); 168 } 169 "" 170 end 171 case layout_packed_fragment 172 version 300 es 173 expect build_successful 174 175 vertex "" 176 #version 300 es 177 precision highp float; 178 179 in vec4 a_pos; 180 181 void main() 182 { 183 gl_Position = a_pos; 184 } 185 "" 186 187 fragment "" 188 #version 300 es 189 precision highp float; 190 191 layout(location=0) out vec4 o_color; 192 193 layout(packed) uniform UniformBlock 194 { 195 vec4 uniformMember; 196 } uniformBlock; 197 198 void main() 199 { 200 o_color = uniformBlock.uniformMember; 201 } 202 "" 203 end 204 case layout_std140_vertex 205 version 300 es 206 expect build_successful 207 208 vertex "" 209 #version 300 es 210 precision highp float; 211 212 213 214 layout(std140) uniform UniformBlock 215 { 216 vec4 uniformMember; 217 } uniformBlock; 218 219 void main() 220 { 221 gl_Position = uniformBlock.uniformMember; 222 } 223 "" 224 225 fragment "" 226 #version 300 es 227 precision highp float; 228 229 layout(location=0) out vec4 o_color; 230 231 void main() 232 { 233 o_color = vec4(1.0); 234 } 235 "" 236 end 237 case layout_std140_fragment 238 version 300 es 239 expect build_successful 240 241 vertex "" 242 #version 300 es 243 precision highp float; 244 245 in vec4 a_pos; 246 247 void main() 248 { 249 gl_Position = a_pos; 250 } 251 "" 252 253 fragment "" 254 #version 300 es 255 precision highp float; 256 257 layout(location=0) out vec4 o_color; 258 259 layout(std140) uniform UniformBlock 260 { 261 vec4 uniformMember; 262 } uniformBlock; 263 264 void main() 265 { 266 o_color = uniformBlock.uniformMember; 267 } 268 "" 269 end 270 case layout_row_major_vertex 271 version 300 es 272 expect build_successful 273 274 vertex "" 275 #version 300 es 276 precision highp float; 277 278 279 280 layout(row_major) uniform UniformBlock 281 { 282 vec4 uniformMember; 283 } uniformBlock; 284 285 void main() 286 { 287 gl_Position = uniformBlock.uniformMember; 288 } 289 "" 290 291 fragment "" 292 #version 300 es 293 precision highp float; 294 295 layout(location=0) out vec4 o_color; 296 297 void main() 298 { 299 o_color = vec4(1.0); 300 } 301 "" 302 end 303 case layout_row_major_fragment 304 version 300 es 305 expect build_successful 306 307 vertex "" 308 #version 300 es 309 precision highp float; 310 311 in vec4 a_pos; 312 313 void main() 314 { 315 gl_Position = a_pos; 316 } 317 "" 318 319 fragment "" 320 #version 300 es 321 precision highp float; 322 323 layout(location=0) out vec4 o_color; 324 325 layout(row_major) uniform UniformBlock 326 { 327 vec4 uniformMember; 328 } uniformBlock; 329 330 void main() 331 { 332 o_color = uniformBlock.uniformMember; 333 } 334 "" 335 end 336 case layout_column_major_vertex 337 version 300 es 338 expect build_successful 339 340 vertex "" 341 #version 300 es 342 precision highp float; 343 344 345 346 layout(column_major) uniform UniformBlock 347 { 348 vec4 uniformMember; 349 } uniformBlock; 350 351 void main() 352 { 353 gl_Position = uniformBlock.uniformMember; 354 } 355 "" 356 357 fragment "" 358 #version 300 es 359 precision highp float; 360 361 layout(location=0) out vec4 o_color; 362 363 void main() 364 { 365 o_color = vec4(1.0); 366 } 367 "" 368 end 369 case layout_column_major_fragment 370 version 300 es 371 expect build_successful 372 373 vertex "" 374 #version 300 es 375 precision highp float; 376 377 in vec4 a_pos; 378 379 void main() 380 { 381 gl_Position = a_pos; 382 } 383 "" 384 385 fragment "" 386 #version 300 es 387 precision highp float; 388 389 layout(location=0) out vec4 o_color; 390 391 layout(column_major) uniform UniformBlock 392 { 393 vec4 uniformMember; 394 } uniformBlock; 395 396 void main() 397 { 398 o_color = uniformBlock.uniformMember; 399 } 400 "" 401 end 402 case layout_all_vertex 403 version 300 es 404 expect build_successful 405 406 vertex "" 407 #version 300 es 408 precision highp float; 409 410 411 412 layout(shared, packed, std140, row_major, column_major) uniform UniformBlock 413 { 414 vec4 uniformMember; 415 } uniformBlock; 416 417 void main() 418 { 419 gl_Position = uniformBlock.uniformMember; 420 } 421 "" 422 423 fragment "" 424 #version 300 es 425 precision highp float; 426 427 layout(location=0) out vec4 o_color; 428 429 void main() 430 { 431 o_color = vec4(1.0); 432 } 433 "" 434 end 435 case layout_all_fragment 436 version 300 es 437 expect build_successful 438 439 vertex "" 440 #version 300 es 441 precision highp float; 442 443 in vec4 a_pos; 444 445 void main() 446 { 447 gl_Position = a_pos; 448 } 449 "" 450 451 fragment "" 452 #version 300 es 453 precision highp float; 454 455 layout(location=0) out vec4 o_color; 456 457 layout(shared, packed, std140, row_major, column_major) uniform UniformBlock 458 { 459 vec4 uniformMember; 460 } uniformBlock; 461 462 void main() 463 { 464 o_color = uniformBlock.uniformMember; 465 } 466 "" 467 end 468 case layout_all_8_times_vertex 469 version 300 es 470 expect build_successful 471 472 vertex "" 473 #version 300 es 474 precision highp float; 475 476 477 478 layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock 479 { 480 vec4 uniformMember; 481 } uniformBlock; 482 483 void main() 484 { 485 gl_Position = uniformBlock.uniformMember; 486 } 487 "" 488 489 fragment "" 490 #version 300 es 491 precision highp float; 492 493 layout(location=0) out vec4 o_color; 494 495 void main() 496 { 497 o_color = vec4(1.0); 498 } 499 "" 500 end 501 case layout_all_8_times_fragment 502 version 300 es 503 expect build_successful 504 505 vertex "" 506 #version 300 es 507 precision highp float; 508 509 in vec4 a_pos; 510 511 void main() 512 { 513 gl_Position = a_pos; 514 } 515 "" 516 517 fragment "" 518 #version 300 es 519 precision highp float; 520 521 layout(location=0) out vec4 o_color; 522 523 layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock 524 { 525 vec4 uniformMember; 526 } uniformBlock; 527 528 void main() 529 { 530 o_color = uniformBlock.uniformMember; 531 } 532 "" 533 end 534 case global_layout_shared_vertex 535 version 300 es 536 expect build_successful 537 538 vertex "" 539 #version 300 es 540 precision highp float; 541 542 layout(shared) uniform; 543 544 545 546 uniform UniformBlock 547 { 548 vec4 uniformMember; 549 } uniformBlock; 550 551 void main() 552 { 553 gl_Position = uniformBlock.uniformMember; 554 } 555 "" 556 557 fragment "" 558 #version 300 es 559 precision highp float; 560 561 layout(location=0) out vec4 o_color; 562 563 void main() 564 { 565 o_color = vec4(1.0); 566 } 567 "" 568 end 569 case global_layout_shared_fragment 570 version 300 es 571 expect build_successful 572 573 vertex "" 574 #version 300 es 575 precision highp float; 576 577 in vec4 a_pos; 578 579 void main() 580 { 581 gl_Position = a_pos; 582 } 583 "" 584 585 fragment "" 586 #version 300 es 587 precision highp float; 588 589 layout(shared) uniform; 590 591 layout(location=0) out vec4 o_color; 592 593 uniform UniformBlock 594 { 595 vec4 uniformMember; 596 } uniformBlock; 597 598 void main() 599 { 600 o_color = uniformBlock.uniformMember; 601 } 602 "" 603 end 604 case global_layout_packed_vertex 605 version 300 es 606 expect build_successful 607 608 vertex "" 609 #version 300 es 610 precision highp float; 611 612 layout(packed) uniform; 613 614 615 616 uniform UniformBlock 617 { 618 vec4 uniformMember; 619 } uniformBlock; 620 621 void main() 622 { 623 gl_Position = uniformBlock.uniformMember; 624 } 625 "" 626 627 fragment "" 628 #version 300 es 629 precision highp float; 630 631 layout(location=0) out vec4 o_color; 632 633 void main() 634 { 635 o_color = vec4(1.0); 636 } 637 "" 638 end 639 case global_layout_packed_fragment 640 version 300 es 641 expect build_successful 642 643 vertex "" 644 #version 300 es 645 precision highp float; 646 647 in vec4 a_pos; 648 649 void main() 650 { 651 gl_Position = a_pos; 652 } 653 "" 654 655 fragment "" 656 #version 300 es 657 precision highp float; 658 659 layout(packed) uniform; 660 661 layout(location=0) out vec4 o_color; 662 663 uniform UniformBlock 664 { 665 vec4 uniformMember; 666 } uniformBlock; 667 668 void main() 669 { 670 o_color = uniformBlock.uniformMember; 671 } 672 "" 673 end 674 case global_layout_std140_vertex 675 version 300 es 676 expect build_successful 677 678 vertex "" 679 #version 300 es 680 precision highp float; 681 682 layout(std140) uniform; 683 684 685 686 uniform UniformBlock 687 { 688 vec4 uniformMember; 689 } uniformBlock; 690 691 void main() 692 { 693 gl_Position = uniformBlock.uniformMember; 694 } 695 "" 696 697 fragment "" 698 #version 300 es 699 precision highp float; 700 701 layout(location=0) out vec4 o_color; 702 703 void main() 704 { 705 o_color = vec4(1.0); 706 } 707 "" 708 end 709 case global_layout_std140_fragment 710 version 300 es 711 expect build_successful 712 713 vertex "" 714 #version 300 es 715 precision highp float; 716 717 in vec4 a_pos; 718 719 void main() 720 { 721 gl_Position = a_pos; 722 } 723 "" 724 725 fragment "" 726 #version 300 es 727 precision highp float; 728 729 layout(std140) uniform; 730 731 layout(location=0) out vec4 o_color; 732 733 uniform UniformBlock 734 { 735 vec4 uniformMember; 736 } uniformBlock; 737 738 void main() 739 { 740 o_color = uniformBlock.uniformMember; 741 } 742 "" 743 end 744 case global_layout_row_major_vertex 745 version 300 es 746 expect build_successful 747 748 vertex "" 749 #version 300 es 750 precision highp float; 751 752 layout(row_major) uniform; 753 754 755 756 uniform UniformBlock 757 { 758 vec4 uniformMember; 759 } uniformBlock; 760 761 void main() 762 { 763 gl_Position = uniformBlock.uniformMember; 764 } 765 "" 766 767 fragment "" 768 #version 300 es 769 precision highp float; 770 771 layout(location=0) out vec4 o_color; 772 773 void main() 774 { 775 o_color = vec4(1.0); 776 } 777 "" 778 end 779 case global_layout_row_major_fragment 780 version 300 es 781 expect build_successful 782 783 vertex "" 784 #version 300 es 785 precision highp float; 786 787 in vec4 a_pos; 788 789 void main() 790 { 791 gl_Position = a_pos; 792 } 793 "" 794 795 fragment "" 796 #version 300 es 797 precision highp float; 798 799 layout(row_major) uniform; 800 801 layout(location=0) out vec4 o_color; 802 803 uniform UniformBlock 804 { 805 vec4 uniformMember; 806 } uniformBlock; 807 808 void main() 809 { 810 o_color = uniformBlock.uniformMember; 811 } 812 "" 813 end 814 case global_layout_column_major_vertex 815 version 300 es 816 expect build_successful 817 818 vertex "" 819 #version 300 es 820 precision highp float; 821 822 layout(column_major) uniform; 823 824 825 826 uniform UniformBlock 827 { 828 vec4 uniformMember; 829 } uniformBlock; 830 831 void main() 832 { 833 gl_Position = uniformBlock.uniformMember; 834 } 835 "" 836 837 fragment "" 838 #version 300 es 839 precision highp float; 840 841 layout(location=0) out vec4 o_color; 842 843 void main() 844 { 845 o_color = vec4(1.0); 846 } 847 "" 848 end 849 case global_layout_column_major_fragment 850 version 300 es 851 expect build_successful 852 853 vertex "" 854 #version 300 es 855 precision highp float; 856 857 in vec4 a_pos; 858 859 void main() 860 { 861 gl_Position = a_pos; 862 } 863 "" 864 865 fragment "" 866 #version 300 es 867 precision highp float; 868 869 layout(column_major) uniform; 870 871 layout(location=0) out vec4 o_color; 872 873 uniform UniformBlock 874 { 875 vec4 uniformMember; 876 } uniformBlock; 877 878 void main() 879 { 880 o_color = uniformBlock.uniformMember; 881 } 882 "" 883 end 884 case global_layout_all_vertex 885 version 300 es 886 expect build_successful 887 888 vertex "" 889 #version 300 es 890 precision highp float; 891 892 layout(shared, packed, std140, row_major, column_major) uniform; 893 894 895 896 uniform UniformBlock 897 { 898 vec4 uniformMember; 899 } uniformBlock; 900 901 void main() 902 { 903 gl_Position = uniformBlock.uniformMember; 904 } 905 "" 906 907 fragment "" 908 #version 300 es 909 precision highp float; 910 911 layout(location=0) out vec4 o_color; 912 913 void main() 914 { 915 o_color = vec4(1.0); 916 } 917 "" 918 end 919 case global_layout_all_fragment 920 version 300 es 921 expect build_successful 922 923 vertex "" 924 #version 300 es 925 precision highp float; 926 927 in vec4 a_pos; 928 929 void main() 930 { 931 gl_Position = a_pos; 932 } 933 "" 934 935 fragment "" 936 #version 300 es 937 precision highp float; 938 939 layout(shared, packed, std140, row_major, column_major) uniform; 940 941 layout(location=0) out vec4 o_color; 942 943 uniform UniformBlock 944 { 945 vec4 uniformMember; 946 } uniformBlock; 947 948 void main() 949 { 950 o_color = uniformBlock.uniformMember; 951 } 952 "" 953 end 954 case global_layout_all_8_times_vertex 955 version 300 es 956 expect build_successful 957 958 vertex "" 959 #version 300 es 960 precision highp float; 961 962 layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform; 963 964 965 966 uniform UniformBlock 967 { 968 vec4 uniformMember; 969 } uniformBlock; 970 971 void main() 972 { 973 gl_Position = uniformBlock.uniformMember; 974 } 975 "" 976 977 fragment "" 978 #version 300 es 979 precision highp float; 980 981 layout(location=0) out vec4 o_color; 982 983 void main() 984 { 985 o_color = vec4(1.0); 986 } 987 "" 988 end 989 case global_layout_all_8_times_fragment 990 version 300 es 991 expect build_successful 992 993 vertex "" 994 #version 300 es 995 precision highp float; 996 997 in vec4 a_pos; 998 999 void main() 1000 { 1001 gl_Position = a_pos; 1002 } 1003 "" 1004 1005 fragment "" 1006 #version 300 es 1007 precision highp float; 1008 1009 layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform; 1010 1011 layout(location=0) out vec4 o_color; 1012 1013 uniform UniformBlock 1014 { 1015 vec4 uniformMember; 1016 } uniformBlock; 1017 1018 void main() 1019 { 1020 o_color = uniformBlock.uniformMember; 1021 } 1022 "" 1023 end 1024 case member_layout_row_major_vertex 1025 version 300 es 1026 expect build_successful 1027 1028 vertex "" 1029 #version 300 es 1030 precision highp float; 1031 1032 1033 1034 uniform UniformBlock 1035 { 1036 layout(row_major) mat4 uniformMember; 1037 } uniformBlock; 1038 1039 void main() 1040 { 1041 gl_Position = uniformBlock.uniformMember[0]; 1042 } 1043 "" 1044 1045 fragment "" 1046 #version 300 es 1047 precision highp float; 1048 1049 layout(location=0) out vec4 o_color; 1050 1051 void main() 1052 { 1053 o_color = vec4(1.0); 1054 } 1055 "" 1056 end 1057 case member_layout_row_major_fragment 1058 version 300 es 1059 expect build_successful 1060 1061 vertex "" 1062 #version 300 es 1063 precision highp float; 1064 1065 in vec4 a_pos; 1066 1067 void main() 1068 { 1069 gl_Position = a_pos; 1070 } 1071 "" 1072 1073 fragment "" 1074 #version 300 es 1075 precision highp float; 1076 1077 layout(location=0) out vec4 o_color; 1078 1079 uniform UniformBlock 1080 { 1081 layout(row_major) mat4 uniformMember; 1082 } uniformBlock; 1083 1084 void main() 1085 { 1086 o_color = uniformBlock.uniformMember[0]; 1087 } 1088 "" 1089 end 1090 case member_layout_column_major_vertex 1091 version 300 es 1092 expect build_successful 1093 1094 vertex "" 1095 #version 300 es 1096 precision highp float; 1097 1098 1099 1100 uniform UniformBlock 1101 { 1102 layout(column_major) mat4 uniformMember; 1103 } uniformBlock; 1104 1105 void main() 1106 { 1107 gl_Position = uniformBlock.uniformMember[0]; 1108 } 1109 "" 1110 1111 fragment "" 1112 #version 300 es 1113 precision highp float; 1114 1115 layout(location=0) out vec4 o_color; 1116 1117 void main() 1118 { 1119 o_color = vec4(1.0); 1120 } 1121 "" 1122 end 1123 case member_layout_column_major_fragment 1124 version 300 es 1125 expect build_successful 1126 1127 vertex "" 1128 #version 300 es 1129 precision highp float; 1130 1131 in vec4 a_pos; 1132 1133 void main() 1134 { 1135 gl_Position = a_pos; 1136 } 1137 "" 1138 1139 fragment "" 1140 #version 300 es 1141 precision highp float; 1142 1143 layout(location=0) out vec4 o_color; 1144 1145 uniform UniformBlock 1146 { 1147 layout(column_major) mat4 uniformMember; 1148 } uniformBlock; 1149 1150 void main() 1151 { 1152 o_color = uniformBlock.uniformMember[0]; 1153 } 1154 "" 1155 end 1156 case member_layout_row_major_vec4_vertex 1157 version 300 es 1158 expect build_successful 1159 1160 vertex "" 1161 #version 300 es 1162 precision highp float; 1163 1164 1165 1166 uniform UniformBlock 1167 { 1168 layout(row_major) vec4 uniformMember; 1169 } uniformBlock; 1170 1171 void main() 1172 { 1173 gl_Position = uniformBlock.uniformMember; 1174 } 1175 "" 1176 1177 fragment "" 1178 #version 300 es 1179 precision highp float; 1180 1181 layout(location=0) out vec4 o_color; 1182 1183 void main() 1184 { 1185 o_color = vec4(1.0); 1186 } 1187 "" 1188 end 1189 case member_layout_row_major_vec4_fragment 1190 version 300 es 1191 expect build_successful 1192 1193 vertex "" 1194 #version 300 es 1195 precision highp float; 1196 1197 in vec4 a_pos; 1198 1199 void main() 1200 { 1201 gl_Position = a_pos; 1202 } 1203 "" 1204 1205 fragment "" 1206 #version 300 es 1207 precision highp float; 1208 1209 layout(location=0) out vec4 o_color; 1210 1211 uniform UniformBlock 1212 { 1213 layout(row_major) vec4 uniformMember; 1214 } uniformBlock; 1215 1216 void main() 1217 { 1218 o_color = uniformBlock.uniformMember; 1219 } 1220 "" 1221 end 1222 case member_layout_column_major_vec4_vertex 1223 version 300 es 1224 expect build_successful 1225 1226 vertex "" 1227 #version 300 es 1228 precision highp float; 1229 1230 1231 1232 uniform UniformBlock 1233 { 1234 layout(column_major) vec4 uniformMember; 1235 } uniformBlock; 1236 1237 void main() 1238 { 1239 gl_Position = uniformBlock.uniformMember; 1240 } 1241 "" 1242 1243 fragment "" 1244 #version 300 es 1245 precision highp float; 1246 1247 layout(location=0) out vec4 o_color; 1248 1249 void main() 1250 { 1251 o_color = vec4(1.0); 1252 } 1253 "" 1254 end 1255 case member_layout_column_major_vec4_fragment 1256 version 300 es 1257 expect build_successful 1258 1259 vertex "" 1260 #version 300 es 1261 precision highp float; 1262 1263 in vec4 a_pos; 1264 1265 void main() 1266 { 1267 gl_Position = a_pos; 1268 } 1269 "" 1270 1271 fragment "" 1272 #version 300 es 1273 precision highp float; 1274 1275 layout(location=0) out vec4 o_color; 1276 1277 uniform UniformBlock 1278 { 1279 layout(column_major) vec4 uniformMember; 1280 } uniformBlock; 1281 1282 void main() 1283 { 1284 o_color = uniformBlock.uniformMember; 1285 } 1286 "" 1287 end 1288 case member_layout_all_vertex 1289 version 300 es 1290 expect build_successful 1291 1292 vertex "" 1293 #version 300 es 1294 precision highp float; 1295 1296 1297 1298 uniform UniformBlock 1299 { 1300 layout(row_major, column_major) mat4 uniformMember; 1301 } uniformBlock; 1302 1303 void main() 1304 { 1305 gl_Position = uniformBlock.uniformMember[0]; 1306 } 1307 "" 1308 1309 fragment "" 1310 #version 300 es 1311 precision highp float; 1312 1313 layout(location=0) out vec4 o_color; 1314 1315 void main() 1316 { 1317 o_color = vec4(1.0); 1318 } 1319 "" 1320 end 1321 case member_layout_all_fragment 1322 version 300 es 1323 expect build_successful 1324 1325 vertex "" 1326 #version 300 es 1327 precision highp float; 1328 1329 in vec4 a_pos; 1330 1331 void main() 1332 { 1333 gl_Position = a_pos; 1334 } 1335 "" 1336 1337 fragment "" 1338 #version 300 es 1339 precision highp float; 1340 1341 layout(location=0) out vec4 o_color; 1342 1343 uniform UniformBlock 1344 { 1345 layout(row_major, column_major) mat4 uniformMember; 1346 } uniformBlock; 1347 1348 void main() 1349 { 1350 o_color = uniformBlock.uniformMember[0]; 1351 } 1352 "" 1353 end 1354 case member_layout_all_8_times_vertex 1355 version 300 es 1356 expect build_successful 1357 1358 vertex "" 1359 #version 300 es 1360 precision highp float; 1361 1362 1363 1364 uniform UniformBlock 1365 { 1366 layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember; 1367 } uniformBlock; 1368 1369 void main() 1370 { 1371 gl_Position = uniformBlock.uniformMember[0]; 1372 } 1373 "" 1374 1375 fragment "" 1376 #version 300 es 1377 precision highp float; 1378 1379 layout(location=0) out vec4 o_color; 1380 1381 void main() 1382 { 1383 o_color = vec4(1.0); 1384 } 1385 "" 1386 end 1387 case member_layout_all_8_times_fragment 1388 version 300 es 1389 expect build_successful 1390 1391 vertex "" 1392 #version 300 es 1393 precision highp float; 1394 1395 in vec4 a_pos; 1396 1397 void main() 1398 { 1399 gl_Position = a_pos; 1400 } 1401 "" 1402 1403 fragment "" 1404 #version 300 es 1405 precision highp float; 1406 1407 layout(location=0) out vec4 o_color; 1408 1409 uniform UniformBlock 1410 { 1411 layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember; 1412 } uniformBlock; 1413 1414 void main() 1415 { 1416 o_color = uniformBlock.uniformMember[0]; 1417 } 1418 "" 1419 end 1420 case no_instance_name_vertex 1421 version 300 es 1422 expect build_successful 1423 1424 vertex "" 1425 #version 300 es 1426 precision highp float; 1427 1428 1429 1430 uniform UniformBlock 1431 { 1432 vec4 uniformMember; 1433 }; 1434 1435 void main() 1436 { 1437 gl_Position = uniformMember; 1438 } 1439 "" 1440 1441 fragment "" 1442 #version 300 es 1443 precision highp float; 1444 1445 layout(location=0) out vec4 o_color; 1446 1447 void main() 1448 { 1449 o_color = vec4(1.0); 1450 } 1451 "" 1452 end 1453 case no_instance_name_fragment 1454 version 300 es 1455 expect build_successful 1456 1457 vertex "" 1458 #version 300 es 1459 precision highp float; 1460 1461 in vec4 a_pos; 1462 1463 void main() 1464 { 1465 gl_Position = a_pos; 1466 } 1467 "" 1468 1469 fragment "" 1470 #version 300 es 1471 precision highp float; 1472 1473 layout(location=0) out vec4 o_color; 1474 1475 uniform UniformBlock 1476 { 1477 vec4 uniformMember; 1478 }; 1479 1480 void main() 1481 { 1482 o_color = uniformMember; 1483 } 1484 "" 1485 end 1486 case same_variable_and_block_name_vertex 1487 version 300 es 1488 expect build_successful 1489 1490 vertex "" 1491 #version 300 es 1492 precision highp float; 1493 1494 1495 1496 uniform UniformBlock 1497 { 1498 vec4 uniformMember; 1499 } uniformBlock; 1500 1501 void main() 1502 { 1503 vec4 UniformBlock = vec4(0.0); 1504 gl_Position = UniformBlock + uniformBlock.uniformMember; 1505 } 1506 "" 1507 1508 fragment "" 1509 #version 300 es 1510 precision highp float; 1511 1512 layout(location=0) out vec4 o_color; 1513 1514 void main() 1515 { 1516 o_color = vec4(1.0); 1517 } 1518 "" 1519 end 1520 case same_variable_and_block_name_fragment 1521 version 300 es 1522 expect build_successful 1523 1524 vertex "" 1525 #version 300 es 1526 precision highp float; 1527 1528 in vec4 a_pos; 1529 1530 void main() 1531 { 1532 gl_Position = a_pos; 1533 } 1534 "" 1535 1536 fragment "" 1537 #version 300 es 1538 precision highp float; 1539 1540 layout(location=0) out vec4 o_color; 1541 1542 uniform UniformBlock 1543 { 1544 vec4 uniformMember; 1545 } uniformBlock; 1546 1547 void main() 1548 { 1549 vec4 UniformBlock = vec4(0.0); 1550 o_color = UniformBlock + uniformBlock.uniformMember; 1551 } 1552 "" 1553 end 1554 case same_variable_and_instance_name_vertex 1555 version 300 es 1556 expect build_successful 1557 1558 vertex "" 1559 #version 300 es 1560 precision highp float; 1561 1562 1563 1564 uniform UniformBlock 1565 { 1566 vec4 uniformMember; 1567 } uniformBlock; 1568 1569 void main() 1570 { 1571 vec4 uniformBlock = vec4(0.0); 1572 gl_Position = uniformBlock; 1573 } 1574 "" 1575 1576 fragment "" 1577 #version 300 es 1578 precision highp float; 1579 1580 layout(location=0) out vec4 o_color; 1581 1582 void main() 1583 { 1584 o_color = vec4(1.0); 1585 } 1586 "" 1587 end 1588 case same_variable_and_instance_name_fragment 1589 version 300 es 1590 expect build_successful 1591 1592 vertex "" 1593 #version 300 es 1594 precision highp float; 1595 1596 in vec4 a_pos; 1597 1598 void main() 1599 { 1600 gl_Position = a_pos; 1601 } 1602 "" 1603 1604 fragment "" 1605 #version 300 es 1606 precision highp float; 1607 1608 layout(location=0) out vec4 o_color; 1609 1610 uniform UniformBlock 1611 { 1612 vec4 uniformMember; 1613 } uniformBlock; 1614 1615 void main() 1616 { 1617 vec4 uniformBlock = vec4(0.0); 1618 o_color = uniformBlock; 1619 } 1620 "" 1621 end 1622 case struct_member_vertex 1623 version 300 es 1624 expect build_successful 1625 1626 vertex "" 1627 #version 300 es 1628 precision highp float; 1629 1630 1631 1632 struct Struct 1633 { 1634 vec4 uniformMember; 1635 }; 1636 1637 uniform UniformBlock 1638 { 1639 Struct st; 1640 } uniformBlock; 1641 1642 void main() 1643 { 1644 gl_Position = uniformBlock.st.uniformMember; 1645 } 1646 "" 1647 1648 fragment "" 1649 #version 300 es 1650 precision highp float; 1651 1652 layout(location=0) out vec4 o_color; 1653 1654 void main() 1655 { 1656 o_color = vec4(1.0); 1657 } 1658 "" 1659 end 1660 case struct_member_fragment 1661 version 300 es 1662 expect build_successful 1663 1664 vertex "" 1665 #version 300 es 1666 precision highp float; 1667 1668 in vec4 a_pos; 1669 1670 void main() 1671 { 1672 gl_Position = a_pos; 1673 } 1674 "" 1675 1676 fragment "" 1677 #version 300 es 1678 precision highp float; 1679 1680 layout(location=0) out vec4 o_color; 1681 1682 struct Struct 1683 { 1684 vec4 uniformMember; 1685 }; 1686 1687 uniform UniformBlock 1688 { 1689 Struct st; 1690 } uniformBlock; 1691 1692 void main() 1693 { 1694 o_color = uniformBlock.st.uniformMember; 1695 } 1696 "" 1697 end 1698 case struct_member_layout_row_major_vertex 1699 version 300 es 1700 expect build_successful 1701 1702 vertex "" 1703 #version 300 es 1704 precision highp float; 1705 1706 1707 1708 struct Struct 1709 { 1710 vec4 uniformMember; 1711 }; 1712 1713 uniform UniformBlock 1714 { 1715 layout(row_major) Struct st; 1716 } uniformBlock; 1717 1718 void main() 1719 { 1720 gl_Position = uniformBlock.st.uniformMember; 1721 } 1722 "" 1723 1724 fragment "" 1725 #version 300 es 1726 precision highp float; 1727 1728 layout(location=0) out vec4 o_color; 1729 1730 void main() 1731 { 1732 o_color = vec4(1.0); 1733 } 1734 "" 1735 end 1736 case struct_member_layout_row_major_fragment 1737 version 300 es 1738 expect build_successful 1739 1740 vertex "" 1741 #version 300 es 1742 precision highp float; 1743 1744 in vec4 a_pos; 1745 1746 void main() 1747 { 1748 gl_Position = a_pos; 1749 } 1750 "" 1751 1752 fragment "" 1753 #version 300 es 1754 precision highp float; 1755 1756 layout(location=0) out vec4 o_color; 1757 1758 struct Struct 1759 { 1760 vec4 uniformMember; 1761 }; 1762 1763 uniform UniformBlock 1764 { 1765 layout(row_major) Struct st; 1766 } uniformBlock; 1767 1768 void main() 1769 { 1770 o_color = uniformBlock.st.uniformMember; 1771 } 1772 "" 1773 end 1774 case struct_member_layout_column_major_vertex 1775 version 300 es 1776 expect build_successful 1777 1778 vertex "" 1779 #version 300 es 1780 precision highp float; 1781 1782 1783 1784 struct Struct 1785 { 1786 vec4 uniformMember; 1787 }; 1788 1789 uniform UniformBlock 1790 { 1791 layout(column_major) Struct st; 1792 } uniformBlock; 1793 1794 void main() 1795 { 1796 gl_Position = uniformBlock.st.uniformMember; 1797 } 1798 "" 1799 1800 fragment "" 1801 #version 300 es 1802 precision highp float; 1803 1804 layout(location=0) out vec4 o_color; 1805 1806 void main() 1807 { 1808 o_color = vec4(1.0); 1809 } 1810 "" 1811 end 1812 case struct_member_layout_column_major_fragment 1813 version 300 es 1814 expect build_successful 1815 1816 vertex "" 1817 #version 300 es 1818 precision highp float; 1819 1820 in vec4 a_pos; 1821 1822 void main() 1823 { 1824 gl_Position = a_pos; 1825 } 1826 "" 1827 1828 fragment "" 1829 #version 300 es 1830 precision highp float; 1831 1832 layout(location=0) out vec4 o_color; 1833 1834 struct Struct 1835 { 1836 vec4 uniformMember; 1837 }; 1838 1839 uniform UniformBlock 1840 { 1841 layout(column_major) Struct st; 1842 } uniformBlock; 1843 1844 void main() 1845 { 1846 o_color = uniformBlock.st.uniformMember; 1847 } 1848 "" 1849 end 1850 case struct_member_layout_all_vertex 1851 version 300 es 1852 expect build_successful 1853 1854 vertex "" 1855 #version 300 es 1856 precision highp float; 1857 1858 1859 1860 struct Struct 1861 { 1862 vec4 uniformMember; 1863 }; 1864 1865 uniform UniformBlock 1866 { 1867 layout(row_major, column_major) Struct st; 1868 } uniformBlock; 1869 1870 void main() 1871 { 1872 gl_Position = uniformBlock.st.uniformMember; 1873 } 1874 "" 1875 1876 fragment "" 1877 #version 300 es 1878 precision highp float; 1879 1880 layout(location=0) out vec4 o_color; 1881 1882 void main() 1883 { 1884 o_color = vec4(1.0); 1885 } 1886 "" 1887 end 1888 case struct_member_layout_all_fragment 1889 version 300 es 1890 expect build_successful 1891 1892 vertex "" 1893 #version 300 es 1894 precision highp float; 1895 1896 in vec4 a_pos; 1897 1898 void main() 1899 { 1900 gl_Position = a_pos; 1901 } 1902 "" 1903 1904 fragment "" 1905 #version 300 es 1906 precision highp float; 1907 1908 layout(location=0) out vec4 o_color; 1909 1910 struct Struct 1911 { 1912 vec4 uniformMember; 1913 }; 1914 1915 uniform UniformBlock 1916 { 1917 layout(row_major, column_major) Struct st; 1918 } uniformBlock; 1919 1920 void main() 1921 { 1922 o_color = uniformBlock.st.uniformMember; 1923 } 1924 "" 1925 end 1926 case struct_member_layout_all_8_times_vertex 1927 version 300 es 1928 expect build_successful 1929 1930 vertex "" 1931 #version 300 es 1932 precision highp float; 1933 1934 1935 1936 struct Struct 1937 { 1938 vec4 uniformMember; 1939 }; 1940 1941 uniform UniformBlock 1942 { 1943 layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st; 1944 } uniformBlock; 1945 1946 void main() 1947 { 1948 gl_Position = uniformBlock.st.uniformMember; 1949 } 1950 "" 1951 1952 fragment "" 1953 #version 300 es 1954 precision highp float; 1955 1956 layout(location=0) out vec4 o_color; 1957 1958 void main() 1959 { 1960 o_color = vec4(1.0); 1961 } 1962 "" 1963 end 1964 case struct_member_layout_all_8_times_fragment 1965 version 300 es 1966 expect build_successful 1967 1968 vertex "" 1969 #version 300 es 1970 precision highp float; 1971 1972 in vec4 a_pos; 1973 1974 void main() 1975 { 1976 gl_Position = a_pos; 1977 } 1978 "" 1979 1980 fragment "" 1981 #version 300 es 1982 precision highp float; 1983 1984 layout(location=0) out vec4 o_color; 1985 1986 struct Struct 1987 { 1988 vec4 uniformMember; 1989 }; 1990 1991 uniform UniformBlock 1992 { 1993 layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st; 1994 } uniformBlock; 1995 1996 void main() 1997 { 1998 o_color = uniformBlock.st.uniformMember; 1999 } 2000 "" 2001 end 2002 case long_block_name_vertex 2003 version 300 es 2004 expect build_successful 2005 2006 vertex "" 2007 #version 300 es 2008 precision highp float; 2009 2010 2011 2012 // Total of 1024 characters 2013 uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2014 { 2015 vec4 uniformMember; 2016 } uniformBlock; 2017 2018 void main() 2019 { 2020 gl_Position = uniformBlock.uniformMember; 2021 } 2022 "" 2023 2024 fragment "" 2025 #version 300 es 2026 precision highp float; 2027 2028 layout(location=0) out vec4 o_color; 2029 2030 void main() 2031 { 2032 o_color = vec4(1.0); 2033 } 2034 "" 2035 end 2036 case long_block_name_fragment 2037 version 300 es 2038 expect build_successful 2039 2040 vertex "" 2041 #version 300 es 2042 precision highp float; 2043 2044 in vec4 a_pos; 2045 2046 void main() 2047 { 2048 gl_Position = a_pos; 2049 } 2050 "" 2051 2052 fragment "" 2053 #version 300 es 2054 precision highp float; 2055 2056 layout(location=0) out vec4 o_color; 2057 2058 // Total of 1024 characters 2059 uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2060 { 2061 vec4 uniformMember; 2062 } uniformBlock; 2063 2064 void main() 2065 { 2066 o_color = uniformBlock.uniformMember; 2067 } 2068 "" 2069 end 2070 case long_instance_name_vertex 2071 version 300 es 2072 expect build_successful 2073 2074 vertex "" 2075 #version 300 es 2076 precision highp float; 2077 2078 2079 2080 uniform UniformBlock 2081 { 2082 vec4 uniformMember; 2083 } aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; 2084 // Total of 1024 characters 2085 2086 void main() 2087 { 2088 gl_Position = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember; 2089 } 2090 "" 2091 2092 fragment "" 2093 #version 300 es 2094 precision highp float; 2095 2096 layout(location=0) out vec4 o_color; 2097 2098 void main() 2099 { 2100 o_color = vec4(1.0); 2101 } 2102 "" 2103 end 2104 case long_instance_name_fragment 2105 version 300 es 2106 expect build_successful 2107 2108 vertex "" 2109 #version 300 es 2110 precision highp float; 2111 2112 in vec4 a_pos; 2113 2114 void main() 2115 { 2116 gl_Position = a_pos; 2117 } 2118 "" 2119 2120 fragment "" 2121 #version 300 es 2122 precision highp float; 2123 2124 layout(location=0) out vec4 o_color; 2125 2126 uniform UniformBlock 2127 { 2128 vec4 uniformMember; 2129 } aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; 2130 // Total of 1024 characters 2131 2132 void main() 2133 { 2134 o_color = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember; 2135 } 2136 "" 2137 end 2138 case underscore_block_name_vertex 2139 version 300 es 2140 expect build_successful 2141 2142 vertex "" 2143 #version 300 es 2144 precision highp float; 2145 2146 2147 2148 uniform _ 2149 { 2150 vec4 uniformMember; 2151 } uniformBlock; 2152 2153 void main() 2154 { 2155 gl_Position = uniformBlock.uniformMember; 2156 } 2157 "" 2158 2159 fragment "" 2160 #version 300 es 2161 precision highp float; 2162 2163 layout(location=0) out vec4 o_color; 2164 2165 void main() 2166 { 2167 o_color = vec4(1.0); 2168 } 2169 "" 2170 end 2171 case underscore_block_name_fragment 2172 version 300 es 2173 expect build_successful 2174 2175 vertex "" 2176 #version 300 es 2177 precision highp float; 2178 2179 in vec4 a_pos; 2180 2181 void main() 2182 { 2183 gl_Position = a_pos; 2184 } 2185 "" 2186 2187 fragment "" 2188 #version 300 es 2189 precision highp float; 2190 2191 layout(location=0) out vec4 o_color; 2192 2193 uniform _ 2194 { 2195 vec4 uniformMember; 2196 } uniformBlock; 2197 2198 void main() 2199 { 2200 o_color = uniformBlock.uniformMember; 2201 } 2202 "" 2203 end 2204 case underscore_instance_name_vertex 2205 version 300 es 2206 expect build_successful 2207 2208 vertex "" 2209 #version 300 es 2210 precision highp float; 2211 2212 2213 2214 uniform UniformBlock 2215 { 2216 vec4 uniformMember; 2217 } _; 2218 2219 void main() 2220 { 2221 gl_Position = _.uniformMember; 2222 } 2223 "" 2224 2225 fragment "" 2226 #version 300 es 2227 precision highp float; 2228 2229 layout(location=0) out vec4 o_color; 2230 2231 void main() 2232 { 2233 o_color = vec4(1.0); 2234 } 2235 "" 2236 end 2237 case underscore_instance_name_fragment 2238 version 300 es 2239 expect build_successful 2240 2241 vertex "" 2242 #version 300 es 2243 precision highp float; 2244 2245 in vec4 a_pos; 2246 2247 void main() 2248 { 2249 gl_Position = a_pos; 2250 } 2251 "" 2252 2253 fragment "" 2254 #version 300 es 2255 precision highp float; 2256 2257 layout(location=0) out vec4 o_color; 2258 2259 uniform UniformBlock 2260 { 2261 vec4 uniformMember; 2262 } _; 2263 2264 void main() 2265 { 2266 o_color = _.uniformMember; 2267 } 2268 "" 2269 end 2270 2271end # valid 2272group invalid "Invalid uniform interface block syntax tests." 2273 2274 case member_in_interface_qualifier_vertex 2275 version 300 es 2276 expect compile_fail 2277 2278 vertex "" 2279 #version 300 es 2280 precision highp float; 2281 2282 2283 2284 uniform UniformBlock 2285 { 2286 in vec4 uniformMember; 2287 } uniformBlock; 2288 2289 void main() 2290 { 2291 gl_Position = uniformBlock.uniformMember; 2292 } 2293 "" 2294 2295 fragment "" 2296 #version 300 es 2297 precision highp float; 2298 2299 layout(location=0) out vec4 o_color; 2300 2301 void main() 2302 { 2303 o_color = vec4(1.0); 2304 } 2305 "" 2306 end 2307 case member_in_interface_qualifier_fragment 2308 version 300 es 2309 expect compile_fail 2310 2311 vertex "" 2312 #version 300 es 2313 precision highp float; 2314 2315 in vec4 a_pos; 2316 2317 void main() 2318 { 2319 gl_Position = a_pos; 2320 } 2321 "" 2322 2323 fragment "" 2324 #version 300 es 2325 precision highp float; 2326 2327 layout(location=0) out vec4 o_color; 2328 2329 uniform UniformBlock 2330 { 2331 in vec4 uniformMember; 2332 } uniformBlock; 2333 2334 void main() 2335 { 2336 o_color = uniformBlock.uniformMember; 2337 } 2338 "" 2339 end 2340 case member_out_interface_qualifier_vertex 2341 version 300 es 2342 expect compile_fail 2343 2344 vertex "" 2345 #version 300 es 2346 precision highp float; 2347 2348 2349 2350 uniform UniformBlock 2351 { 2352 out vec4 uniformMember; 2353 } uniformBlock; 2354 2355 void main() 2356 { 2357 gl_Position = uniformBlock.uniformMember; 2358 } 2359 "" 2360 2361 fragment "" 2362 #version 300 es 2363 precision highp float; 2364 2365 layout(location=0) out vec4 o_color; 2366 2367 void main() 2368 { 2369 o_color = vec4(1.0); 2370 } 2371 "" 2372 end 2373 case member_out_interface_qualifier_fragment 2374 version 300 es 2375 expect compile_fail 2376 2377 vertex "" 2378 #version 300 es 2379 precision highp float; 2380 2381 in vec4 a_pos; 2382 2383 void main() 2384 { 2385 gl_Position = a_pos; 2386 } 2387 "" 2388 2389 fragment "" 2390 #version 300 es 2391 precision highp float; 2392 2393 layout(location=0) out vec4 o_color; 2394 2395 uniform UniformBlock 2396 { 2397 out vec4 uniformMember; 2398 } uniformBlock; 2399 2400 void main() 2401 { 2402 o_color = uniformBlock.uniformMember; 2403 } 2404 "" 2405 end 2406 case member_buffer_interface_qualifier_vertex 2407 version 300 es 2408 expect compile_fail 2409 2410 vertex "" 2411 #version 300 es 2412 precision highp float; 2413 2414 2415 2416 uniform UniformBlock 2417 { 2418 buffer vec4 uniformMember; 2419 } uniformBlock; 2420 2421 void main() 2422 { 2423 gl_Position = uniformBlock.uniformMember; 2424 } 2425 "" 2426 2427 fragment "" 2428 #version 300 es 2429 precision highp float; 2430 2431 layout(location=0) out vec4 o_color; 2432 2433 void main() 2434 { 2435 o_color = vec4(1.0); 2436 } 2437 "" 2438 end 2439 case member_buffer_interface_qualifier_fragment 2440 version 300 es 2441 expect compile_fail 2442 2443 vertex "" 2444 #version 300 es 2445 precision highp float; 2446 2447 in vec4 a_pos; 2448 2449 void main() 2450 { 2451 gl_Position = a_pos; 2452 } 2453 "" 2454 2455 fragment "" 2456 #version 300 es 2457 precision highp float; 2458 2459 layout(location=0) out vec4 o_color; 2460 2461 uniform UniformBlock 2462 { 2463 buffer vec4 uniformMember; 2464 } uniformBlock; 2465 2466 void main() 2467 { 2468 o_color = uniformBlock.uniformMember; 2469 } 2470 "" 2471 end 2472 case member_attribute_interface_qualifier_vertex 2473 version 300 es 2474 expect compile_fail 2475 2476 vertex "" 2477 #version 300 es 2478 precision highp float; 2479 2480 2481 2482 uniform UniformBlock 2483 { 2484 attribute vec4 uniformMember; 2485 } uniformBlock; 2486 2487 void main() 2488 { 2489 gl_Position = uniformBlock.uniformMember; 2490 } 2491 "" 2492 2493 fragment "" 2494 #version 300 es 2495 precision highp float; 2496 2497 layout(location=0) out vec4 o_color; 2498 2499 void main() 2500 { 2501 o_color = vec4(1.0); 2502 } 2503 "" 2504 end 2505 case member_attribute_interface_qualifier_fragment 2506 version 300 es 2507 expect compile_fail 2508 2509 vertex "" 2510 #version 300 es 2511 precision highp float; 2512 2513 in vec4 a_pos; 2514 2515 void main() 2516 { 2517 gl_Position = a_pos; 2518 } 2519 "" 2520 2521 fragment "" 2522 #version 300 es 2523 precision highp float; 2524 2525 layout(location=0) out vec4 o_color; 2526 2527 uniform UniformBlock 2528 { 2529 attribute vec4 uniformMember; 2530 } uniformBlock; 2531 2532 void main() 2533 { 2534 o_color = uniformBlock.uniformMember; 2535 } 2536 "" 2537 end 2538 case member_varying_interface_qualifier_vertex 2539 version 300 es 2540 expect compile_fail 2541 2542 vertex "" 2543 #version 300 es 2544 precision highp float; 2545 2546 2547 2548 uniform UniformBlock 2549 { 2550 varying vec4 uniformMember; 2551 } uniformBlock; 2552 2553 void main() 2554 { 2555 gl_Position = uniformBlock.uniformMember; 2556 } 2557 "" 2558 2559 fragment "" 2560 #version 300 es 2561 precision highp float; 2562 2563 layout(location=0) out vec4 o_color; 2564 2565 void main() 2566 { 2567 o_color = vec4(1.0); 2568 } 2569 "" 2570 end 2571 case member_varying_interface_qualifier_fragment 2572 version 300 es 2573 expect compile_fail 2574 2575 vertex "" 2576 #version 300 es 2577 precision highp float; 2578 2579 in vec4 a_pos; 2580 2581 void main() 2582 { 2583 gl_Position = a_pos; 2584 } 2585 "" 2586 2587 fragment "" 2588 #version 300 es 2589 precision highp float; 2590 2591 layout(location=0) out vec4 o_color; 2592 2593 uniform UniformBlock 2594 { 2595 varying vec4 uniformMember; 2596 } uniformBlock; 2597 2598 void main() 2599 { 2600 o_color = uniformBlock.uniformMember; 2601 } 2602 "" 2603 end 2604 case conflicting_instance_names_vertex 2605 version 300 es 2606 expect compile_fail 2607 2608 vertex "" 2609 #version 300 es 2610 precision highp float; 2611 2612 2613 2614 uniform UniformBlockA 2615 { 2616 vec4 uniformMember; 2617 } uniformBlock; 2618 2619 uniform UniformBlockB 2620 { 2621 vec4 uniformMember; 2622 } uniformBlock; 2623 2624 void main() 2625 { 2626 gl_Position = uniformBlock.uniformMember; 2627 } 2628 "" 2629 2630 fragment "" 2631 #version 300 es 2632 precision highp float; 2633 2634 layout(location=0) out vec4 o_color; 2635 2636 void main() 2637 { 2638 o_color = vec4(1.0); 2639 } 2640 "" 2641 end 2642 case conflicting_instance_names_fragment 2643 version 300 es 2644 expect compile_fail 2645 2646 vertex "" 2647 #version 300 es 2648 precision highp float; 2649 2650 in vec4 a_pos; 2651 2652 void main() 2653 { 2654 gl_Position = a_pos; 2655 } 2656 "" 2657 2658 fragment "" 2659 #version 300 es 2660 precision highp float; 2661 2662 layout(location=0) out vec4 o_color; 2663 2664 uniform UniformBlockA 2665 { 2666 vec4 uniformMember; 2667 } uniformBlock; 2668 2669 uniform UniformBlockB 2670 { 2671 vec4 uniformMember; 2672 } uniformBlock; 2673 2674 void main() 2675 { 2676 o_color = uniformBlock.uniformMember; 2677 } 2678 "" 2679 end 2680 case conflicting_function_and_instance_name_vertex 2681 version 300 es 2682 expect compile_fail 2683 2684 vertex "" 2685 #version 300 es 2686 precision highp float; 2687 2688 2689 2690 uniform UniformBlock 2691 { 2692 vec4 uniformMember; 2693 } uniformBlock; 2694 2695 float uniformBlock (float x) 2696 { 2697 return x; 2698 } 2699 2700 void main() 2701 { 2702 gl_Position = uniformBlock.uniformMember; 2703 } 2704 "" 2705 2706 fragment "" 2707 #version 300 es 2708 precision highp float; 2709 2710 layout(location=0) out vec4 o_color; 2711 2712 void main() 2713 { 2714 o_color = vec4(1.0); 2715 } 2716 "" 2717 end 2718 case conflicting_function_and_instance_name_fragment 2719 version 300 es 2720 expect compile_fail 2721 2722 vertex "" 2723 #version 300 es 2724 precision highp float; 2725 2726 in vec4 a_pos; 2727 2728 void main() 2729 { 2730 gl_Position = a_pos; 2731 } 2732 "" 2733 2734 fragment "" 2735 #version 300 es 2736 precision highp float; 2737 2738 layout(location=0) out vec4 o_color; 2739 2740 uniform UniformBlock 2741 { 2742 vec4 uniformMember; 2743 } uniformBlock; 2744 2745 float uniformBlock (float x) 2746 { 2747 return x; 2748 } 2749 2750 void main() 2751 { 2752 o_color = uniformBlock.uniformMember; 2753 } 2754 "" 2755 end 2756 case conflicting_function_and_block_name_vertex 2757 version 300 es 2758 expect compile_fail 2759 2760 vertex "" 2761 #version 300 es 2762 precision highp float; 2763 2764 2765 2766 uniform UniformBlock 2767 { 2768 vec4 uniformMember; 2769 } uniformBlock; 2770 2771 float UniformBlock (float x) 2772 { 2773 return x; 2774 } 2775 2776 void main() 2777 { 2778 gl_Position = uniformBlock.uniformMember; 2779 } 2780 "" 2781 2782 fragment "" 2783 #version 300 es 2784 precision highp float; 2785 2786 layout(location=0) out vec4 o_color; 2787 2788 void main() 2789 { 2790 o_color = vec4(1.0); 2791 } 2792 "" 2793 end 2794 case conflicting_function_and_block_name_fragment 2795 version 300 es 2796 expect compile_fail 2797 2798 vertex "" 2799 #version 300 es 2800 precision highp float; 2801 2802 in vec4 a_pos; 2803 2804 void main() 2805 { 2806 gl_Position = a_pos; 2807 } 2808 "" 2809 2810 fragment "" 2811 #version 300 es 2812 precision highp float; 2813 2814 layout(location=0) out vec4 o_color; 2815 2816 uniform UniformBlock 2817 { 2818 vec4 uniformMember; 2819 } uniformBlock; 2820 2821 float UniformBlock (float x) 2822 { 2823 return x; 2824 } 2825 2826 void main() 2827 { 2828 o_color = uniformBlock.uniformMember; 2829 } 2830 "" 2831 end 2832 case conflicting_uniform_and_instance_name_vertex 2833 version 300 es 2834 expect compile_fail 2835 2836 vertex "" 2837 #version 300 es 2838 precision highp float; 2839 2840 2841 2842 uniform UniformBlock 2843 { 2844 vec4 uniformMember; 2845 } uniformBlock; 2846 2847 uniform vec4 uniformBlock; 2848 2849 void main() 2850 { 2851 gl_Position = uniformBlock.uniformMember; 2852 } 2853 "" 2854 2855 fragment "" 2856 #version 300 es 2857 precision highp float; 2858 2859 layout(location=0) out vec4 o_color; 2860 2861 void main() 2862 { 2863 o_color = vec4(1.0); 2864 } 2865 "" 2866 end 2867 case conflicting_uniform_and_instance_name_fragment 2868 version 300 es 2869 expect compile_fail 2870 2871 vertex "" 2872 #version 300 es 2873 precision highp float; 2874 2875 in vec4 a_pos; 2876 2877 void main() 2878 { 2879 gl_Position = a_pos; 2880 } 2881 "" 2882 2883 fragment "" 2884 #version 300 es 2885 precision highp float; 2886 2887 layout(location=0) out vec4 o_color; 2888 2889 uniform UniformBlock 2890 { 2891 vec4 uniformMember; 2892 } uniformBlock; 2893 2894 uniform vec4 uniformBlock; 2895 2896 void main() 2897 { 2898 o_color = uniformBlock.uniformMember; 2899 } 2900 "" 2901 end 2902 case conflicting_in_and_instance_name_vertex 2903 version 300 es 2904 expect compile_fail 2905 2906 vertex "" 2907 #version 300 es 2908 precision highp float; 2909 2910 2911 2912 uniform UniformBlock 2913 { 2914 vec4 uniformMember; 2915 } uniformBlock; 2916 2917 in vec4 uniformBlock; 2918 2919 void main() 2920 { 2921 gl_Position = uniformBlock.uniformMember; 2922 } 2923 "" 2924 2925 fragment "" 2926 #version 300 es 2927 precision highp float; 2928 2929 layout(location=0) out vec4 o_color; 2930 2931 void main() 2932 { 2933 o_color = vec4(1.0); 2934 } 2935 "" 2936 end 2937 case conflicting_in_and_instance_name_fragment 2938 version 300 es 2939 expect compile_fail 2940 2941 vertex "" 2942 #version 300 es 2943 precision highp float; 2944 2945 in vec4 a_pos; 2946 2947 void main() 2948 { 2949 gl_Position = a_pos; 2950 } 2951 "" 2952 2953 fragment "" 2954 #version 300 es 2955 precision highp float; 2956 2957 layout(location=0) out vec4 o_color; 2958 2959 uniform UniformBlock 2960 { 2961 vec4 uniformMember; 2962 } uniformBlock; 2963 2964 in vec4 uniformBlock; 2965 2966 void main() 2967 { 2968 o_color = uniformBlock.uniformMember; 2969 } 2970 "" 2971 end 2972 case conflicting_out_and_instance_name_vertex 2973 version 300 es 2974 expect compile_fail 2975 2976 vertex "" 2977 #version 300 es 2978 precision highp float; 2979 2980 2981 2982 uniform UniformBlock 2983 { 2984 vec4 uniformMember; 2985 } uniformBlock; 2986 2987 out vec4 uniformBlock; 2988 2989 void main() 2990 { 2991 gl_Position = uniformBlock.uniformMember; 2992 } 2993 "" 2994 2995 fragment "" 2996 #version 300 es 2997 precision highp float; 2998 2999 layout(location=0) out vec4 o_color; 3000 3001 void main() 3002 { 3003 o_color = vec4(1.0); 3004 } 3005 "" 3006 end 3007 case conflicting_out_and_instance_name_fragment 3008 version 300 es 3009 expect compile_fail 3010 3011 vertex "" 3012 #version 300 es 3013 precision highp float; 3014 3015 in vec4 a_pos; 3016 3017 void main() 3018 { 3019 gl_Position = a_pos; 3020 } 3021 "" 3022 3023 fragment "" 3024 #version 300 es 3025 precision highp float; 3026 3027 layout(location=0) out vec4 o_color; 3028 3029 uniform UniformBlock 3030 { 3031 vec4 uniformMember; 3032 } uniformBlock; 3033 3034 out vec4 uniformBlock; 3035 3036 void main() 3037 { 3038 o_color = uniformBlock.uniformMember; 3039 } 3040 "" 3041 end 3042 case conflicting_uniform_and_block_name_vertex 3043 version 300 es 3044 expect compile_fail 3045 3046 vertex "" 3047 #version 300 es 3048 precision highp float; 3049 3050 3051 3052 uniform UniformBlock 3053 { 3054 vec4 uniformMember; 3055 } uniformBlock; 3056 3057 uniform vec4 UniformBlock; 3058 3059 void main() 3060 { 3061 gl_Position = uniformBlock.uniformMember; 3062 } 3063 "" 3064 3065 fragment "" 3066 #version 300 es 3067 precision highp float; 3068 3069 layout(location=0) out vec4 o_color; 3070 3071 void main() 3072 { 3073 o_color = vec4(1.0); 3074 } 3075 "" 3076 end 3077 case conflicting_uniform_and_block_name_fragment 3078 version 300 es 3079 expect compile_fail 3080 3081 vertex "" 3082 #version 300 es 3083 precision highp float; 3084 3085 in vec4 a_pos; 3086 3087 void main() 3088 { 3089 gl_Position = a_pos; 3090 } 3091 "" 3092 3093 fragment "" 3094 #version 300 es 3095 precision highp float; 3096 3097 layout(location=0) out vec4 o_color; 3098 3099 uniform UniformBlock 3100 { 3101 vec4 uniformMember; 3102 } uniformBlock; 3103 3104 uniform vec4 UniformBlock; 3105 3106 void main() 3107 { 3108 o_color = uniformBlock.uniformMember; 3109 } 3110 "" 3111 end 3112 case conflicting_in_and_block_name_vertex 3113 version 300 es 3114 expect compile_fail 3115 3116 vertex "" 3117 #version 300 es 3118 precision highp float; 3119 3120 3121 3122 uniform UniformBlock 3123 { 3124 vec4 uniformMember; 3125 } uniformBlock; 3126 3127 in vec4 UniformBlock; 3128 3129 void main() 3130 { 3131 gl_Position = uniformBlock.uniformMember; 3132 } 3133 "" 3134 3135 fragment "" 3136 #version 300 es 3137 precision highp float; 3138 3139 layout(location=0) out vec4 o_color; 3140 3141 void main() 3142 { 3143 o_color = vec4(1.0); 3144 } 3145 "" 3146 end 3147 case conflicting_in_and_block_name_fragment 3148 version 300 es 3149 expect compile_fail 3150 3151 vertex "" 3152 #version 300 es 3153 precision highp float; 3154 3155 in vec4 a_pos; 3156 3157 void main() 3158 { 3159 gl_Position = a_pos; 3160 } 3161 "" 3162 3163 fragment "" 3164 #version 300 es 3165 precision highp float; 3166 3167 layout(location=0) out vec4 o_color; 3168 3169 uniform UniformBlock 3170 { 3171 vec4 uniformMember; 3172 } uniformBlock; 3173 3174 in vec4 UniformBlock; 3175 3176 void main() 3177 { 3178 o_color = uniformBlock.uniformMember; 3179 } 3180 "" 3181 end 3182 case conflicting_out_and_block_name_vertex 3183 version 300 es 3184 expect compile_fail 3185 3186 vertex "" 3187 #version 300 es 3188 precision highp float; 3189 3190 3191 3192 uniform UniformBlock 3193 { 3194 vec4 uniformMember; 3195 } uniformBlock; 3196 3197 out vec4 UniformBlock; 3198 3199 void main() 3200 { 3201 gl_Position = uniformBlock.uniformMember; 3202 } 3203 "" 3204 3205 fragment "" 3206 #version 300 es 3207 precision highp float; 3208 3209 layout(location=0) out vec4 o_color; 3210 3211 void main() 3212 { 3213 o_color = vec4(1.0); 3214 } 3215 "" 3216 end 3217 case conflicting_out_and_block_name_fragment 3218 version 300 es 3219 expect compile_fail 3220 3221 vertex "" 3222 #version 300 es 3223 precision highp float; 3224 3225 in vec4 a_pos; 3226 3227 void main() 3228 { 3229 gl_Position = a_pos; 3230 } 3231 "" 3232 3233 fragment "" 3234 #version 300 es 3235 precision highp float; 3236 3237 layout(location=0) out vec4 o_color; 3238 3239 uniform UniformBlock 3240 { 3241 vec4 uniformMember; 3242 } uniformBlock; 3243 3244 out vec4 UniformBlock; 3245 3246 void main() 3247 { 3248 o_color = uniformBlock.uniformMember; 3249 } 3250 "" 3251 end 3252 case matching_instance_and_block_name_vertex 3253 version 300 es 3254 expect compile_fail 3255 3256 vertex "" 3257 #version 300 es 3258 precision highp float; 3259 3260 3261 3262 uniform UniformBlock 3263 { 3264 vec4 uniformMember; 3265 } UniformBlock; 3266 3267 void main() 3268 { 3269 gl_Position = UniformBlock.uniformMember; 3270 } 3271 "" 3272 3273 fragment "" 3274 #version 300 es 3275 precision highp float; 3276 3277 layout(location=0) out vec4 o_color; 3278 3279 void main() 3280 { 3281 o_color = vec4(1.0); 3282 } 3283 "" 3284 end 3285 case matching_instance_and_block_name_fragment 3286 version 300 es 3287 expect compile_fail 3288 3289 vertex "" 3290 #version 300 es 3291 precision highp float; 3292 3293 in vec4 a_pos; 3294 3295 void main() 3296 { 3297 gl_Position = a_pos; 3298 } 3299 "" 3300 3301 fragment "" 3302 #version 300 es 3303 precision highp float; 3304 3305 layout(location=0) out vec4 o_color; 3306 3307 uniform UniformBlock 3308 { 3309 vec4 uniformMember; 3310 } UniformBlock; 3311 3312 void main() 3313 { 3314 o_color = UniformBlock.uniformMember; 3315 } 3316 "" 3317 end 3318 case reference_using_block_name_vertex 3319 version 300 es 3320 expect compile_fail 3321 3322 vertex "" 3323 #version 300 es 3324 precision highp float; 3325 3326 3327 3328 uniform UniformBlock 3329 { 3330 vec4 uniformMember; 3331 } uniformBlock; 3332 3333 void main() 3334 { 3335 gl_Position = UniformBlock.uniformMember; 3336 } 3337 "" 3338 3339 fragment "" 3340 #version 300 es 3341 precision highp float; 3342 3343 layout(location=0) out vec4 o_color; 3344 3345 void main() 3346 { 3347 o_color = vec4(1.0); 3348 } 3349 "" 3350 end 3351 case reference_using_block_name_fragment 3352 version 300 es 3353 expect compile_fail 3354 3355 vertex "" 3356 #version 300 es 3357 precision highp float; 3358 3359 in vec4 a_pos; 3360 3361 void main() 3362 { 3363 gl_Position = a_pos; 3364 } 3365 "" 3366 3367 fragment "" 3368 #version 300 es 3369 precision highp float; 3370 3371 layout(location=0) out vec4 o_color; 3372 3373 uniform UniformBlock 3374 { 3375 vec4 uniformMember; 3376 } uniformBlock; 3377 3378 void main() 3379 { 3380 o_color = UniformBlock.uniformMember; 3381 } 3382 "" 3383 end 3384 case empty_block_vertex 3385 version 300 es 3386 expect compile_fail 3387 3388 vertex "" 3389 #version 300 es 3390 precision highp float; 3391 3392 3393 3394 uniform UniformBlock 3395 { 3396 } uniformBlock; 3397 3398 void main() 3399 { 3400 gl_Position = vec4(0.0); 3401 } 3402 "" 3403 3404 fragment "" 3405 #version 300 es 3406 precision highp float; 3407 3408 layout(location=0) out vec4 o_color; 3409 3410 void main() 3411 { 3412 o_color = vec4(1.0); 3413 } 3414 "" 3415 end 3416 case empty_block_fragment 3417 version 300 es 3418 expect compile_fail 3419 3420 vertex "" 3421 #version 300 es 3422 precision highp float; 3423 3424 in vec4 a_pos; 3425 3426 void main() 3427 { 3428 gl_Position = a_pos; 3429 } 3430 "" 3431 3432 fragment "" 3433 #version 300 es 3434 precision highp float; 3435 3436 layout(location=0) out vec4 o_color; 3437 3438 uniform UniformBlock 3439 { 3440 } uniformBlock; 3441 3442 void main() 3443 { 3444 o_color = vec4(0.0); 3445 } 3446 "" 3447 end 3448 case empty_layout_vertex 3449 version 300 es 3450 expect compile_fail 3451 3452 vertex "" 3453 #version 300 es 3454 precision highp float; 3455 3456 3457 3458 layout() uniform UniformBlock 3459 { 3460 vec4 uniformMember; 3461 } uniformBlock; 3462 3463 void main() 3464 { 3465 gl_Position = uniformBlock.uniformMember; 3466 } 3467 "" 3468 3469 fragment "" 3470 #version 300 es 3471 precision highp float; 3472 3473 layout(location=0) out vec4 o_color; 3474 3475 void main() 3476 { 3477 o_color = vec4(1.0); 3478 } 3479 "" 3480 end 3481 case empty_layout_fragment 3482 version 300 es 3483 expect compile_fail 3484 3485 vertex "" 3486 #version 300 es 3487 precision highp float; 3488 3489 in vec4 a_pos; 3490 3491 void main() 3492 { 3493 gl_Position = a_pos; 3494 } 3495 "" 3496 3497 fragment "" 3498 #version 300 es 3499 precision highp float; 3500 3501 layout(location=0) out vec4 o_color; 3502 3503 layout() uniform UniformBlock 3504 { 3505 vec4 uniformMember; 3506 } uniformBlock; 3507 3508 void main() 3509 { 3510 o_color = uniformBlock.uniformMember; 3511 } 3512 "" 3513 end 3514 case empty_member_layout_vertex 3515 version 300 es 3516 expect compile_fail 3517 3518 vertex "" 3519 #version 300 es 3520 precision highp float; 3521 3522 3523 3524 uniform UniformBlock 3525 { 3526 layout() vec4 uniformMember; 3527 } uniformBlock; 3528 3529 void main() 3530 { 3531 gl_Position = uniformBlock.uniformMember; 3532 } 3533 "" 3534 3535 fragment "" 3536 #version 300 es 3537 precision highp float; 3538 3539 layout(location=0) out vec4 o_color; 3540 3541 void main() 3542 { 3543 o_color = vec4(1.0); 3544 } 3545 "" 3546 end 3547 case empty_member_layout_fragment 3548 version 300 es 3549 expect compile_fail 3550 3551 vertex "" 3552 #version 300 es 3553 precision highp float; 3554 3555 in vec4 a_pos; 3556 3557 void main() 3558 { 3559 gl_Position = a_pos; 3560 } 3561 "" 3562 3563 fragment "" 3564 #version 300 es 3565 precision highp float; 3566 3567 layout(location=0) out vec4 o_color; 3568 3569 uniform UniformBlock 3570 { 3571 layout() vec4 uniformMember; 3572 } uniformBlock; 3573 3574 void main() 3575 { 3576 o_color = uniformBlock.uniformMember; 3577 } 3578 "" 3579 end 3580 case empty_global_layout_vertex 3581 version 300 es 3582 expect compile_fail 3583 3584 vertex "" 3585 #version 300 es 3586 precision highp float; 3587 3588 layout() uniform; 3589 3590 3591 3592 uniform UniformBlock 3593 { 3594 vec4 uniformMember; 3595 } uniformBlock; 3596 3597 void main() 3598 { 3599 gl_Position = uniformBlock.uniformMember; 3600 } 3601 "" 3602 3603 fragment "" 3604 #version 300 es 3605 precision highp float; 3606 3607 layout(location=0) out vec4 o_color; 3608 3609 void main() 3610 { 3611 o_color = vec4(1.0); 3612 } 3613 "" 3614 end 3615 case empty_global_layout_fragment 3616 version 300 es 3617 expect compile_fail 3618 3619 vertex "" 3620 #version 300 es 3621 precision highp float; 3622 3623 in vec4 a_pos; 3624 3625 void main() 3626 { 3627 gl_Position = a_pos; 3628 } 3629 "" 3630 3631 fragment "" 3632 #version 300 es 3633 precision highp float; 3634 3635 layout() uniform; 3636 3637 layout(location=0) out vec4 o_color; 3638 3639 uniform UniformBlock 3640 { 3641 vec4 uniformMember; 3642 } uniformBlock; 3643 3644 void main() 3645 { 3646 o_color = uniformBlock.uniformMember; 3647 } 3648 "" 3649 end 3650 case structure_definition_vertex 3651 version 300 es 3652 expect compile_fail 3653 3654 vertex "" 3655 #version 300 es 3656 precision highp float; 3657 3658 3659 3660 uniform UniformBlock 3661 { 3662 struct A 3663 { 3664 vec4 uniformMember; 3665 } a; 3666 } uniformBlock; 3667 3668 void main() 3669 { 3670 gl_Position = uniformBlock.a.uniformMember; 3671 } 3672 "" 3673 3674 fragment "" 3675 #version 300 es 3676 precision highp float; 3677 3678 layout(location=0) out vec4 o_color; 3679 3680 void main() 3681 { 3682 o_color = vec4(1.0); 3683 } 3684 "" 3685 end 3686 case structure_definition_fragment 3687 version 300 es 3688 expect compile_fail 3689 3690 vertex "" 3691 #version 300 es 3692 precision highp float; 3693 3694 in vec4 a_pos; 3695 3696 void main() 3697 { 3698 gl_Position = a_pos; 3699 } 3700 "" 3701 3702 fragment "" 3703 #version 300 es 3704 precision highp float; 3705 3706 layout(location=0) out vec4 o_color; 3707 3708 uniform UniformBlock 3709 { 3710 struct A 3711 { 3712 vec4 uniformMember; 3713 } a; 3714 } uniformBlock; 3715 3716 void main() 3717 { 3718 o_color = uniformBlock.a.uniformMember; 3719 } 3720 "" 3721 end 3722 case member_layout_shared_vertex 3723 version 300 es 3724 expect compile_fail 3725 3726 vertex "" 3727 #version 300 es 3728 precision highp float; 3729 3730 3731 3732 uniform UniformBlock 3733 { 3734 layout(shared) vec4 uniformMember; 3735 } uniformBlock; 3736 3737 void main() 3738 { 3739 gl_Position = uniformBlock.uniformMember; 3740 } 3741 "" 3742 3743 fragment "" 3744 #version 300 es 3745 precision highp float; 3746 3747 layout(location=0) out vec4 o_color; 3748 3749 void main() 3750 { 3751 o_color = vec4(1.0); 3752 } 3753 "" 3754 end 3755 case member_layout_shared_fragment 3756 version 300 es 3757 expect compile_fail 3758 3759 vertex "" 3760 #version 300 es 3761 precision highp float; 3762 3763 in vec4 a_pos; 3764 3765 void main() 3766 { 3767 gl_Position = a_pos; 3768 } 3769 "" 3770 3771 fragment "" 3772 #version 300 es 3773 precision highp float; 3774 3775 layout(location=0) out vec4 o_color; 3776 3777 uniform UniformBlock 3778 { 3779 layout(shared) vec4 uniformMember; 3780 } uniformBlock; 3781 3782 void main() 3783 { 3784 o_color = uniformBlock.uniformMember; 3785 } 3786 "" 3787 end 3788 case member_layout_packed_vertex 3789 version 300 es 3790 expect compile_fail 3791 3792 vertex "" 3793 #version 300 es 3794 precision highp float; 3795 3796 3797 3798 uniform UniformBlock 3799 { 3800 layout(packed) vec4 uniformMember; 3801 } uniformBlock; 3802 3803 void main() 3804 { 3805 gl_Position = uniformBlock.uniformMember; 3806 } 3807 "" 3808 3809 fragment "" 3810 #version 300 es 3811 precision highp float; 3812 3813 layout(location=0) out vec4 o_color; 3814 3815 void main() 3816 { 3817 o_color = vec4(1.0); 3818 } 3819 "" 3820 end 3821 case member_layout_packed_fragment 3822 version 300 es 3823 expect compile_fail 3824 3825 vertex "" 3826 #version 300 es 3827 precision highp float; 3828 3829 in vec4 a_pos; 3830 3831 void main() 3832 { 3833 gl_Position = a_pos; 3834 } 3835 "" 3836 3837 fragment "" 3838 #version 300 es 3839 precision highp float; 3840 3841 layout(location=0) out vec4 o_color; 3842 3843 uniform UniformBlock 3844 { 3845 layout(packed) vec4 uniformMember; 3846 } uniformBlock; 3847 3848 void main() 3849 { 3850 o_color = uniformBlock.uniformMember; 3851 } 3852 "" 3853 end 3854 case member_layout_std140_vertex 3855 version 300 es 3856 expect compile_fail 3857 3858 vertex "" 3859 #version 300 es 3860 precision highp float; 3861 3862 3863 3864 uniform UniformBlock 3865 { 3866 layout(std140) vec4 uniformMember; 3867 } uniformBlock; 3868 3869 void main() 3870 { 3871 gl_Position = uniformBlock.uniformMember; 3872 } 3873 "" 3874 3875 fragment "" 3876 #version 300 es 3877 precision highp float; 3878 3879 layout(location=0) out vec4 o_color; 3880 3881 void main() 3882 { 3883 o_color = vec4(1.0); 3884 } 3885 "" 3886 end 3887 case member_layout_std140_fragment 3888 version 300 es 3889 expect compile_fail 3890 3891 vertex "" 3892 #version 300 es 3893 precision highp float; 3894 3895 in vec4 a_pos; 3896 3897 void main() 3898 { 3899 gl_Position = a_pos; 3900 } 3901 "" 3902 3903 fragment "" 3904 #version 300 es 3905 precision highp float; 3906 3907 layout(location=0) out vec4 o_color; 3908 3909 uniform UniformBlock 3910 { 3911 layout(std140) vec4 uniformMember; 3912 } uniformBlock; 3913 3914 void main() 3915 { 3916 o_color = uniformBlock.uniformMember; 3917 } 3918 "" 3919 end 3920 case missing_block_name_vertex 3921 version 300 es 3922 expect compile_fail 3923 3924 vertex "" 3925 #version 300 es 3926 precision highp float; 3927 3928 3929 3930 uniform 3931 { 3932 vec4 uniformMember; 3933 } uniformBlock; 3934 3935 void main() 3936 { 3937 gl_Position = uniformBlock.uniformMember; 3938 } 3939 "" 3940 3941 fragment "" 3942 #version 300 es 3943 precision highp float; 3944 3945 layout(location=0) out vec4 o_color; 3946 3947 void main() 3948 { 3949 o_color = vec4(1.0); 3950 } 3951 "" 3952 end 3953 case missing_block_name_fragment 3954 version 300 es 3955 expect compile_fail 3956 3957 vertex "" 3958 #version 300 es 3959 precision highp float; 3960 3961 in vec4 a_pos; 3962 3963 void main() 3964 { 3965 gl_Position = a_pos; 3966 } 3967 "" 3968 3969 fragment "" 3970 #version 300 es 3971 precision highp float; 3972 3973 layout(location=0) out vec4 o_color; 3974 3975 uniform 3976 { 3977 vec4 uniformMember; 3978 } uniformBlock; 3979 3980 void main() 3981 { 3982 o_color = uniformBlock.uniformMember; 3983 } 3984 "" 3985 end 3986 case invalid_number_block_name_vertex 3987 version 300 es 3988 expect compile_fail 3989 3990 vertex "" 3991 #version 300 es 3992 precision highp float; 3993 3994 3995 3996 uniform 0UniformBlock 3997 { 3998 vec4 uniformMember; 3999 } uniformBlock; 4000 4001 void main() 4002 { 4003 gl_Position = uniformBlock.uniformMember; 4004 } 4005 "" 4006 4007 fragment "" 4008 #version 300 es 4009 precision highp float; 4010 4011 layout(location=0) out vec4 o_color; 4012 4013 void main() 4014 { 4015 o_color = vec4(1.0); 4016 } 4017 "" 4018 end 4019 case invalid_number_block_name_fragment 4020 version 300 es 4021 expect compile_fail 4022 4023 vertex "" 4024 #version 300 es 4025 precision highp float; 4026 4027 in vec4 a_pos; 4028 4029 void main() 4030 { 4031 gl_Position = a_pos; 4032 } 4033 "" 4034 4035 fragment "" 4036 #version 300 es 4037 precision highp float; 4038 4039 layout(location=0) out vec4 o_color; 4040 4041 uniform 0UniformBlock 4042 { 4043 vec4 uniformMember; 4044 } uniformBlock; 4045 4046 void main() 4047 { 4048 o_color = uniformBlock.uniformMember; 4049 } 4050 "" 4051 end 4052 case invalid_hash_block_name_vertex 4053 version 300 es 4054 expect compile_fail 4055 4056 vertex "" 4057 #version 300 es 4058 precision highp float; 4059 4060 4061 4062 uniform #UniformBlock 4063 { 4064 vec4 uniformMember; 4065 } uniformBlock; 4066 4067 void main() 4068 { 4069 gl_Position = uniformBlock.uniformMember; 4070 } 4071 "" 4072 4073 fragment "" 4074 #version 300 es 4075 precision highp float; 4076 4077 layout(location=0) out vec4 o_color; 4078 4079 void main() 4080 { 4081 o_color = vec4(1.0); 4082 } 4083 "" 4084 end 4085 case invalid_hash_block_name_fragment 4086 version 300 es 4087 expect compile_fail 4088 4089 vertex "" 4090 #version 300 es 4091 precision highp float; 4092 4093 in vec4 a_pos; 4094 4095 void main() 4096 { 4097 gl_Position = a_pos; 4098 } 4099 "" 4100 4101 fragment "" 4102 #version 300 es 4103 precision highp float; 4104 4105 layout(location=0) out vec4 o_color; 4106 4107 uniform #UniformBlock 4108 { 4109 vec4 uniformMember; 4110 } uniformBlock; 4111 4112 void main() 4113 { 4114 o_color = uniformBlock.uniformMember; 4115 } 4116 "" 4117 end 4118 case invalid_dollar_block_name_vertex 4119 version 300 es 4120 expect compile_fail 4121 4122 vertex "" 4123 #version 300 es 4124 precision highp float; 4125 4126 4127 4128 uniform $UniformBlock 4129 { 4130 vec4 uniformMember; 4131 } uniformBlock; 4132 4133 void main() 4134 { 4135 gl_Position = uniformBlock.uniformMember; 4136 } 4137 "" 4138 4139 fragment "" 4140 #version 300 es 4141 precision highp float; 4142 4143 layout(location=0) out vec4 o_color; 4144 4145 void main() 4146 { 4147 o_color = vec4(1.0); 4148 } 4149 "" 4150 end 4151 case invalid_dollar_block_name_fragment 4152 version 300 es 4153 expect compile_fail 4154 4155 vertex "" 4156 #version 300 es 4157 precision highp float; 4158 4159 in vec4 a_pos; 4160 4161 void main() 4162 { 4163 gl_Position = a_pos; 4164 } 4165 "" 4166 4167 fragment "" 4168 #version 300 es 4169 precision highp float; 4170 4171 layout(location=0) out vec4 o_color; 4172 4173 uniform $UniformBlock 4174 { 4175 vec4 uniformMember; 4176 } uniformBlock; 4177 4178 void main() 4179 { 4180 o_color = uniformBlock.uniformMember; 4181 } 4182 "" 4183 end 4184 case invalid_identifier_block_name_vertex 4185 version 300 es 4186 expect compile_fail 4187 4188 vertex "" 4189 #version 300 es 4190 precision highp float; 4191 4192 4193 4194 uniform gl_UniformBlock 4195 { 4196 vec4 uniformMember; 4197 } uniformBlock; 4198 4199 void main() 4200 { 4201 gl_Position = uniformBlock.uniformMember; 4202 } 4203 "" 4204 4205 fragment "" 4206 #version 300 es 4207 precision highp float; 4208 4209 layout(location=0) out vec4 o_color; 4210 4211 void main() 4212 { 4213 o_color = vec4(1.0); 4214 } 4215 "" 4216 end 4217 case invalid_identifier_block_name_fragment 4218 version 300 es 4219 expect compile_fail 4220 4221 vertex "" 4222 #version 300 es 4223 precision highp float; 4224 4225 in vec4 a_pos; 4226 4227 void main() 4228 { 4229 gl_Position = a_pos; 4230 } 4231 "" 4232 4233 fragment "" 4234 #version 300 es 4235 precision highp float; 4236 4237 layout(location=0) out vec4 o_color; 4238 4239 uniform gl_UniformBlock 4240 { 4241 vec4 uniformMember; 4242 } uniformBlock; 4243 4244 void main() 4245 { 4246 o_color = uniformBlock.uniformMember; 4247 } 4248 "" 4249 end 4250 case too_long_block_name_vertex 4251 version 300 es 4252 expect compile_fail 4253 4254 vertex "" 4255 #version 300 es 4256 precision highp float; 4257 4258 4259 4260 // Total of 1025 characters 4261 uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4262 { 4263 vec4 uniformMember; 4264 } uniformBlock; 4265 4266 void main() 4267 { 4268 gl_Position = uniformBlock.uniformMember; 4269 } 4270 "" 4271 4272 fragment "" 4273 #version 300 es 4274 precision highp float; 4275 4276 layout(location=0) out vec4 o_color; 4277 4278 void main() 4279 { 4280 o_color = vec4(1.0); 4281 } 4282 "" 4283 end 4284 case too_long_block_name_fragment 4285 version 300 es 4286 expect compile_fail 4287 4288 vertex "" 4289 #version 300 es 4290 precision highp float; 4291 4292 in vec4 a_pos; 4293 4294 void main() 4295 { 4296 gl_Position = a_pos; 4297 } 4298 "" 4299 4300 fragment "" 4301 #version 300 es 4302 precision highp float; 4303 4304 layout(location=0) out vec4 o_color; 4305 4306 // Total of 1025 characters 4307 uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4308 { 4309 vec4 uniformMember; 4310 } uniformBlock; 4311 4312 void main() 4313 { 4314 o_color = uniformBlock.uniformMember; 4315 } 4316 "" 4317 end 4318 case invalid_number_instance_name_vertex 4319 version 300 es 4320 expect compile_fail 4321 4322 vertex "" 4323 #version 300 es 4324 precision highp float; 4325 4326 4327 4328 uniform UniformInstance 4329 { 4330 vec4 uniformMember; 4331 } 0uniformBlock; 4332 4333 void main() 4334 { 4335 gl_Position = 0uniformBlock.uniformMember; 4336 } 4337 "" 4338 4339 fragment "" 4340 #version 300 es 4341 precision highp float; 4342 4343 layout(location=0) out vec4 o_color; 4344 4345 void main() 4346 { 4347 o_color = vec4(1.0); 4348 } 4349 "" 4350 end 4351 case invalid_number_instance_name_fragment 4352 version 300 es 4353 expect compile_fail 4354 4355 vertex "" 4356 #version 300 es 4357 precision highp float; 4358 4359 in vec4 a_pos; 4360 4361 void main() 4362 { 4363 gl_Position = a_pos; 4364 } 4365 "" 4366 4367 fragment "" 4368 #version 300 es 4369 precision highp float; 4370 4371 layout(location=0) out vec4 o_color; 4372 4373 uniform UniformInstance 4374 { 4375 vec4 uniformMember; 4376 } 0uniformBlock; 4377 4378 void main() 4379 { 4380 o_color = 0uniformBlock.uniformMember; 4381 } 4382 "" 4383 end 4384 case invalid_hash_instance_name_vertex 4385 version 300 es 4386 expect compile_fail 4387 4388 vertex "" 4389 #version 300 es 4390 precision highp float; 4391 4392 4393 4394 uniform UniformInstance 4395 { 4396 vec4 uniformMember; 4397 } $uniformBlock; 4398 4399 void main() 4400 { 4401 gl_Position = $uniformBlock.uniformMember; 4402 } 4403 "" 4404 4405 fragment "" 4406 #version 300 es 4407 precision highp float; 4408 4409 layout(location=0) out vec4 o_color; 4410 4411 void main() 4412 { 4413 o_color = vec4(1.0); 4414 } 4415 "" 4416 end 4417 case invalid_hash_instance_name_fragment 4418 version 300 es 4419 expect compile_fail 4420 4421 vertex "" 4422 #version 300 es 4423 precision highp float; 4424 4425 in vec4 a_pos; 4426 4427 void main() 4428 { 4429 gl_Position = a_pos; 4430 } 4431 "" 4432 4433 fragment "" 4434 #version 300 es 4435 precision highp float; 4436 4437 layout(location=0) out vec4 o_color; 4438 4439 uniform UniformInstance 4440 { 4441 vec4 uniformMember; 4442 } $uniformBlock; 4443 4444 void main() 4445 { 4446 o_color = $uniformBlock.uniformMember; 4447 } 4448 "" 4449 end 4450 case invalid_dollar_instance_name_vertex 4451 version 300 es 4452 expect compile_fail 4453 4454 vertex "" 4455 #version 300 es 4456 precision highp float; 4457 4458 4459 4460 uniform UniformInstance 4461 { 4462 vec4 uniformMember; 4463 } $uniformBlock; 4464 4465 void main() 4466 { 4467 gl_Position = $uniformBlock.uniformMember; 4468 } 4469 "" 4470 4471 fragment "" 4472 #version 300 es 4473 precision highp float; 4474 4475 layout(location=0) out vec4 o_color; 4476 4477 void main() 4478 { 4479 o_color = vec4(1.0); 4480 } 4481 "" 4482 end 4483 case invalid_dollar_instance_name_fragment 4484 version 300 es 4485 expect compile_fail 4486 4487 vertex "" 4488 #version 300 es 4489 precision highp float; 4490 4491 in vec4 a_pos; 4492 4493 void main() 4494 { 4495 gl_Position = a_pos; 4496 } 4497 "" 4498 4499 fragment "" 4500 #version 300 es 4501 precision highp float; 4502 4503 layout(location=0) out vec4 o_color; 4504 4505 uniform UniformInstance 4506 { 4507 vec4 uniformMember; 4508 } $uniformBlock; 4509 4510 void main() 4511 { 4512 o_color = $uniformBlock.uniformMember; 4513 } 4514 "" 4515 end 4516 case invalid_identifier_instance_name_vertex 4517 version 300 es 4518 expect compile_fail 4519 4520 vertex "" 4521 #version 300 es 4522 precision highp float; 4523 4524 4525 4526 uniform UniformBlock 4527 { 4528 vec4 uniformMember; 4529 } gl_uniformBlock; 4530 4531 void main() 4532 { 4533 gl_Position = gl_uniformBlock.uniformMember; 4534 } 4535 "" 4536 4537 fragment "" 4538 #version 300 es 4539 precision highp float; 4540 4541 layout(location=0) out vec4 o_color; 4542 4543 void main() 4544 { 4545 o_color = vec4(1.0); 4546 } 4547 "" 4548 end 4549 case invalid_identifier_instance_name_fragment 4550 version 300 es 4551 expect compile_fail 4552 4553 vertex "" 4554 #version 300 es 4555 precision highp float; 4556 4557 in vec4 a_pos; 4558 4559 void main() 4560 { 4561 gl_Position = a_pos; 4562 } 4563 "" 4564 4565 fragment "" 4566 #version 300 es 4567 precision highp float; 4568 4569 layout(location=0) out vec4 o_color; 4570 4571 uniform UniformBlock 4572 { 4573 vec4 uniformMember; 4574 } gl_uniformBlock; 4575 4576 void main() 4577 { 4578 o_color = gl_uniformBlock.uniformMember; 4579 } 4580 "" 4581 end 4582 case repeated_block_vertex 4583 version 300 es 4584 expect compile_fail 4585 4586 vertex "" 4587 #version 300 es 4588 precision highp float; 4589 4590 4591 4592 uniform UniformBlock 4593 { 4594 vec4 uniformMember; 4595 } uniformBlockA; 4596 4597 uniform UniformBlock 4598 { 4599 vec4 uniformMember; 4600 } uniformBlockB; 4601 4602 void main() 4603 { 4604 gl_Position = uniformBlockA.uniformMember + uniformBlockB.uniformMember; 4605 } 4606 "" 4607 4608 fragment "" 4609 #version 300 es 4610 precision highp float; 4611 4612 layout(location=0) out vec4 o_color; 4613 4614 void main() 4615 { 4616 o_color = vec4(1.0); 4617 } 4618 "" 4619 end 4620 case repeated_block_fragment 4621 version 300 es 4622 expect compile_fail 4623 4624 vertex "" 4625 #version 300 es 4626 precision highp float; 4627 4628 in vec4 a_pos; 4629 4630 void main() 4631 { 4632 gl_Position = a_pos; 4633 } 4634 "" 4635 4636 fragment "" 4637 #version 300 es 4638 precision highp float; 4639 4640 layout(location=0) out vec4 o_color; 4641 4642 uniform UniformBlock 4643 { 4644 vec4 uniformMember; 4645 } uniformBlockA; 4646 4647 uniform UniformBlock 4648 { 4649 vec4 uniformMember; 4650 } uniformBlockB; 4651 4652 void main() 4653 { 4654 o_color = uniformBlockA.uniformMember + uniformBlockB.uniformMember; 4655 } 4656 "" 4657 end 4658 case repeated_block_no_instance_name_vertex 4659 version 300 es 4660 expect compile_fail 4661 4662 vertex "" 4663 #version 300 es 4664 precision highp float; 4665 4666 4667 4668 uniform UniformBlock 4669 { 4670 vec4 uniformMember; 4671 } uniformBlock; 4672 4673 uniform UniformBlock 4674 { 4675 vec4 uniformMember; 4676 }; 4677 4678 void main() 4679 { 4680 gl_Position = uniformBlock.uniformMember + uniformMember; 4681 } 4682 "" 4683 4684 fragment "" 4685 #version 300 es 4686 precision highp float; 4687 4688 layout(location=0) out vec4 o_color; 4689 4690 void main() 4691 { 4692 o_color = vec4(1.0); 4693 } 4694 "" 4695 end 4696 case repeated_block_no_instance_name_fragment 4697 version 300 es 4698 expect compile_fail 4699 4700 vertex "" 4701 #version 300 es 4702 precision highp float; 4703 4704 in vec4 a_pos; 4705 4706 void main() 4707 { 4708 gl_Position = a_pos; 4709 } 4710 "" 4711 4712 fragment "" 4713 #version 300 es 4714 precision highp float; 4715 4716 layout(location=0) out vec4 o_color; 4717 4718 uniform UniformBlock 4719 { 4720 vec4 uniformMember; 4721 } uniformBlock; 4722 4723 uniform UniformBlock 4724 { 4725 vec4 uniformMember; 4726 }; 4727 4728 void main() 4729 { 4730 o_color = uniformBlock.uniformMember + uniformMember; 4731 } 4732 "" 4733 end 4734 4735end # invalid 4736