1group invalid_declarations "Invalid declarations" 2 case in_in_vertex_main 3 version 300 es 4 expect compile_fail 5 vertex "" 6 #version 300 es 7 ${VERTEX_DECLARATIONS} 8 void main() 9 { 10 in mediump float val; 11 gl_Position = vec4(1.0); 12 } 13 "" 14 fragment "" 15 #version 300 es 16 ${FRAGMENT_DECLARATIONS} 17 void main() 18 { 19 ${FRAG_COLOR} = vec4(1.0); 20 } 21 "" 22 end 23 24 case out_in_vertex_main 25 version 300 es 26 expect compile_fail 27 vertex "" 28 #version 300 es 29 ${VERTEX_DECLARATIONS} 30 void main() 31 { 32 out mediump float val; 33 gl_Position = vec4(1.0); 34 } 35 "" 36 fragment "" 37 #version 300 es 38 in mediump float val; 39 ${FRAGMENT_DECLARATIONS} 40 void main() 41 { 42 ${FRAG_COLOR} = vec4(1.0); 43 } 44 "" 45 end 46 47 case in_in_fragment_main 48 version 300 es 49 expect compile_fail 50 vertex "" 51 #version 300 es 52 out mediump float val; 53 ${VERTEX_DECLARATIONS} 54 void main() 55 { 56 gl_Position = vec4(1.0); 57 } 58 "" 59 fragment "" 60 #version 300 es 61 ${FRAGMENT_DECLARATIONS} 62 void main() 63 { 64 in mediump float val; 65 ${FRAG_COLOR} = vec4(1.0); 66 } 67 "" 68 end 69 70 case out_in_fragment_main 71 version 300 es 72 expect compile_fail 73 vertex "" 74 #version 300 es 75 ${VERTEX_DECLARATIONS} 76 void main() 77 { 78 gl_Position = vec4(1.0); 79 } 80 "" 81 fragment "" 82 #version 300 es 83 ${FRAGMENT_DECLARATIONS} 84 void main() 85 { 86 out mediump float val; 87 ${FRAG_COLOR} = vec4(1.0); 88 } 89 "" 90 end 91 92 case uniform_in_vertex_main 93 version 300 es 94 expect compile_fail 95 vertex "" 96 #version 300 es 97 ${VERTEX_DECLARATIONS} 98 void main() 99 { 100 uniform mediump float val; 101 gl_Position = vec4(1.0); 102 } 103 "" 104 fragment "" 105 #version 300 es 106 ${FRAGMENT_DECLARATIONS} 107 void main() 108 { 109 ${FRAG_COLOR} = vec4(1.0); 110 } 111 "" 112 end 113 114 case uniform_in_fragment_main 115 version 300 es 116 expect compile_fail 117 vertex "" 118 #version 300 es 119 ${VERTEX_DECLARATIONS} 120 void main() 121 { 122 gl_Position = vec4(1.0); 123 } 124 "" 125 fragment "" 126 #version 300 es 127 ${FRAGMENT_DECLARATIONS} 128 void main() 129 { 130 uniform mediump float val; 131 ${FRAG_COLOR} = vec4(1.0); 132 } 133 "" 134 end 135 136 case uniform_block_in_main 137 version 300 es 138 expect compile_fail 139 both "" 140 #version 300 es 141 ${DECLARATIONS} 142 void main() 143 { 144 uniform Block { mediump float val; }; 145 ${OUTPUT} 146 } 147 "" 148 end 149 150 case invariant_attribute 151 version 300 es 152 expect compile_fail 153 vertex "" 154 #version 300 es 155 invariant in mediump float val; 156 ${VERTEX_DECLARATIONS} 157 void main() 158 { 159 gl_Position = vec4(1.0); 160 } 161 "" 162 fragment "" 163 #version 300 es 164 ${FRAGMENT_DECLARATIONS} 165 void main() 166 { 167 ${FRAG_COLOR} = vec4(1.0); 168 } 169 "" 170 end 171 172 case invariant_uniform 173 version 300 es 174 expect compile_fail 175 vertex "" 176 #version 300 es 177 invariant uniform mediump float val; 178 ${VERTEX_DECLARATIONS} 179 void main() 180 { 181 gl_Position = vec4(1.0); 182 } 183 "" 184 fragment "" 185 #version 300 es 186 ${FRAGMENT_DECLARATIONS} 187 void main() 188 { 189 ${FRAG_COLOR} = vec4(1.0); 190 } 191 "" 192 end 193 194 case invariant_uniform_block_1 195 version 300 es 196 expect compile_fail 197 both "" 198 #version 300 es 199 invariant uniform Block { mediump float val; }; 200 ${DECLARATIONS} 201 void main() 202 { 203 ${OUTPUT} 204 } 205 "" 206 end 207 208 case invariant_uniform_block_2 209 version 300 es 210 expect compile_fail 211 both "" 212 #version 300 es 213 uniform Block { invariant mediump float val; }; 214 ${DECLARATIONS} 215 void main() 216 { 217 ${OUTPUT} 218 } 219 "" 220 end 221 222 case uniform_block_layout_qualifier 223 version 300 es 224 expect compile_fail 225 both "" 226 #version 300 es 227 layout(foobar) uniform Block 228 { 229 mediump float val; 230 }; 231 ${DECLARATIONS} 232 void main() 233 { 234 ${OUTPUT} 235 } 236 "" 237 end 238 239 case uniform_block_member_layout_qualifier 240 version 300 es 241 expect compile_fail 242 both "" 243 #version 300 es 244 ${DECLARATIONS} 245 uniform Block 246 { 247 layout(foobar) uniform mediump float val; 248 }; 249 void main() 250 { 251 ${OUTPUT} 252 } 253 "" 254 end 255 256 case uniform_block_nested_struct_definition 257 version 300 es 258 expect compile_fail 259 both "" 260 #version 300 es 261 ${DECLARATIONS} 262 uniform Block 263 { 264 struct S 265 { 266 mediump float v; 267 struct T 268 { 269 highp int i; 270 } t; 271 } s; 272 }; 273 void main() 274 { 275 ${OUTPUT} 276 } 277 "" 278 end 279 280 case nested_uniform_block 281 version 300 es 282 expect compile_fail 283 both "" 284 #version 300 es 285 ${DECLARATIONS} 286 uniform Block 287 { 288 uniform Block2 289 { 290 mediump float v; 291 } block2; 292 } block; 293 void main() 294 { 295 ${OUTPUT} 296 } 297 "" 298 end 299 300 case uniform_block_sampler_2d 301 version 300 es 302 expect compile_fail 303 both "" 304 #version 300 es 305 ${DECLARATIONS} 306 uniform Block 307 { 308 uniform sampler2D s; 309 }; 310 void main() 311 { 312 ${OUTPUT} 313 } 314 "" 315 end 316 317 case uniform_block_sampler_cube 318 version 300 es 319 expect compile_fail 320 both "" 321 #version 300 es 322 ${DECLARATIONS} 323 uniform Block 324 { 325 uniform samplerCube s; 326 }; 327 void main() 328 { 329 ${OUTPUT} 330 } 331 "" 332 end 333 334 case uniform_block_missing_member_semicolon 335 version 300 es 336 expect compile_fail 337 both "" 338 #version 300 es 339 ${DECLARATIONS} 340 uniform Block 341 { 342 mediump float var 343 }; 344 void main() 345 { 346 ${OUTPUT} 347 } 348 "" 349 end 350 351 case uniform_block_missing_end_semicolon 352 version 300 es 353 expect compile_fail 354 both "" 355 #version 300 es 356 ${DECLARATIONS} 357 uniform Block 358 { 359 mediump float var; 360 } 361 void main() 362 { 363 ${OUTPUT} 364 } 365 "" 366 end 367 368 case uniform_block_duplicate_member_name_1 369 version 300 es 370 expect compile_fail 371 both "" 372 #version 300 es 373 ${DECLARATIONS} 374 uniform Block 375 { 376 mediump float var; 377 mediump float var; 378 }; 379 void main() 380 { 381 ${OUTPUT} 382 } 383 "" 384 end 385 386 case uniform_block_duplicate_member_name_2 387 version 300 es 388 expect compile_fail 389 both "" 390 #version 300 es 391 ${DECLARATIONS} 392 uniform Block 393 { 394 mediump float var; 395 }; 396 uniform Block2 397 { 398 mediump float var; 399 }; 400 void main() 401 { 402 ${OUTPUT} 403 } 404 "" 405 end 406 407 case uniform_block_duplicate_member_name_3 408 version 300 es 409 expect compile_fail 410 both "" 411 #version 300 es 412 ${DECLARATIONS} 413 uniform mediump float var; 414 uniform Block 415 { 416 mediump float var; 417 }; 418 void main() 419 { 420 ${OUTPUT} 421 } 422 "" 423 end 424 425 case uniform_block_duplicate_block_name 426 version 300 es 427 expect compile_fail 428 both "" 429 #version 300 es 430 ${DECLARATIONS} 431 uniform Block 432 { 433 mediump float var; 434 }; 435 uniform Block 436 { 437 mediump float var2; 438 }; 439 void main() 440 { 441 ${OUTPUT} 442 } 443 "" 444 end 445 446 case uniform_block_duplicate_instance_name_1 447 version 300 es 448 expect compile_fail 449 both "" 450 #version 300 es 451 ${DECLARATIONS} 452 uniform Block 453 { 454 mediump float var; 455 } block; 456 uniform Block2 457 { 458 mediump float var2; 459 } block; 460 void main() 461 { 462 ${OUTPUT} 463 } 464 "" 465 end 466 467 case uniform_block_duplicate_instance_name_2 468 version 300 es 469 expect compile_fail 470 both "" 471 #version 300 es 472 ${DECLARATIONS} 473 uniform mediump float block; 474 uniform Block 475 { 476 mediump float var; 477 } block; 478 void main() 479 { 480 ${OUTPUT} 481 } 482 "" 483 end 484 485 case uniform_block_duplicate_instance_name_3 486 version 300 es 487 expect compile_fail 488 both "" 489 #version 300 es 490 ${DECLARATIONS} 491 uniform Block 492 { 493 mediump float block; 494 }; 495 uniform Block2 496 { 497 mediump float var2; 498 } block; 499 void main() 500 { 501 ${OUTPUT} 502 } 503 "" 504 end 505 506 case uniform_block_array_without_instance_name_1 507 version 300 es 508 expect compile_fail 509 both "" 510 #version 300 es 511 ${DECLARATIONS} 512 uniform Block[2] 513 { 514 mediump float var; 515 }; 516 void main() 517 { 518 ${OUTPUT} 519 } 520 "" 521 end 522 523 case uniform_block_array_without_instance_name_2 524 version 300 es 525 expect compile_fail 526 both "" 527 #version 300 es 528 ${DECLARATIONS} 529 uniform Block 530 { 531 mediump float var; 532 } [2]; 533 void main() 534 { 535 ${OUTPUT} 536 } 537 "" 538 end 539 540 case uniform_block_in 541 version 300 es 542 expect compile_fail 543 both "" 544 #version 300 es 545 ${DECLARATIONS} 546 uniform Block 547 { 548 in mediump float var; 549 }; 550 void main() 551 { 552 ${OUTPUT} 553 } 554 "" 555 end 556 557 case uniform_block_out 558 version 300 es 559 expect compile_fail 560 both "" 561 #version 300 es 562 ${DECLARATIONS} 563 uniform Block 564 { 565 out mediump float var; 566 }; 567 void main() 568 { 569 ${OUTPUT} 570 } 571 "" 572 end 573 574 case uniform_block_const 575 version 300 es 576 expect compile_fail 577 both "" 578 #version 300 es 579 ${DECLARATIONS} 580 uniform Block 581 { 582 const mediump float var; 583 }; 584 void main() 585 { 586 ${OUTPUT} 587 } 588 "" 589 end 590 591end # invalid_declarations 592