1 2# Varying tests 3group varying "Varying linkage" 4 group component "Component qualifier" 5 group vert_in "Vertex shader input" 6 group vec2 "vec2" 7 case as_float_float 8 version 440 core 9 desc "Read vertex input (vec2) as float float." 10 output_color vec2 11 values 12 { 13 input vec2 in0 = [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ]; 14 output vec2 out0 = [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ]; 15 } 16 vertex "" 17 #version 440 core 18 precision highp float; 19 precision highp int; 20 layout(location = 0) in vec4 dEQP_Position; 21 layout(location = 1, component = 0) in float in0_0; 22 layout(location = 1, component = 1) in float in0_1; 23 layout(location = 0) out vec2 var0; 24 25 void main() 26 { 27 vec2 in0 = vec2(in0_0, in0_1); 28 var0 = in0 + in0; 29 ${VERTEX_OUTPUT} 30 } 31 "" 32 fragment "" 33 #version 440 core 34 precision highp float; 35 precision highp int; 36 layout(location = 0) in vec2 var0; 37 layout(location = 0) out vec2 dEQP_FragColor; 38 39 void main() 40 { 41 vec2 out0 = var0; 42 out0 /= vec2(255.0); 43 dEQP_FragColor = out0; 44 } 45 "" 46 end 47 case as_float_float_unused 48 version 440 core 49 desc "Read vertex input (vec2) as float float. Read unused fourth component." 50 output_color vec2 51 values 52 { 53 input vec2 in0 = [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ]; 54 output vec2 out0 = [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ]; 55 } 56 vertex "" 57 #version 440 core 58 precision highp float; 59 precision highp int; 60 layout(location = 0) in vec4 dEQP_Position; 61 layout(location = 1, component = 0) in float in0_0; 62 layout(location = 1, component = 1) in float in0_1; 63 layout(location = 1, component = 3) in float in0_3; 64 layout(location = 0) out vec2 var0; 65 66 void main() 67 { 68 vec2 in0 = vec2(in0_0, in0_1); 69 var0 = in0_3 * in0 + in0; 70 ${VERTEX_OUTPUT} 71 } 72 "" 73 fragment "" 74 #version 440 core 75 precision highp float; 76 precision highp int; 77 layout(location = 0) in vec2 var0; 78 layout(location = 0) out vec2 dEQP_FragColor; 79 80 void main() 81 { 82 vec2 out0 = var0; 83 out0 /= vec2(255.0); 84 dEQP_FragColor = out0; 85 } 86 "" 87 end 88 end 89 group vec3 "vec3" 90 case as_float_float_float 91 version 440 core 92 desc "Read vertex input (vec3) as float float float." 93 output_color vec3 94 values 95 { 96 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 97 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 98 } 99 vertex "" 100 #version 440 core 101 precision highp float; 102 precision highp int; 103 layout(location = 0) in vec4 dEQP_Position; 104 layout(location = 1, component = 0) in float in0_0; 105 layout(location = 1, component = 1) in float in0_1; 106 layout(location = 1, component = 2) in float in0_2; 107 layout(location = 0) out vec3 var0; 108 109 void main() 110 { 111 vec3 in0 = vec3(in0_0, in0_1, in0_2); 112 var0 = in0 + in0; 113 ${VERTEX_OUTPUT} 114 } 115 "" 116 fragment "" 117 #version 440 core 118 precision highp float; 119 precision highp int; 120 layout(location = 0) in vec3 var0; 121 layout(location = 0) out vec3 dEQP_FragColor; 122 123 void main() 124 { 125 vec3 out0 = var0; 126 out0 /= vec3(31.0, 63.0, 31.0); 127 dEQP_FragColor = out0; 128 } 129 "" 130 end 131 case as_float_float_float_unused 132 version 440 core 133 desc "Read vertex input (vec3) as float float float. Read unused fourth component." 134 output_color vec3 135 values 136 { 137 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 138 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 139 } 140 vertex "" 141 #version 440 core 142 precision highp float; 143 precision highp int; 144 layout(location = 0) in vec4 dEQP_Position; 145 layout(location = 1, component = 0) in float in0_0; 146 layout(location = 1, component = 1) in float in0_1; 147 layout(location = 1, component = 2) in float in0_2; 148 layout(location = 1, component = 3) in float in0_3; 149 layout(location = 0) out vec3 var0; 150 151 void main() 152 { 153 vec3 in0 = vec3(in0_0, in0_1, in0_2); 154 var0 = in0_3 * in0 + in0; 155 ${VERTEX_OUTPUT} 156 } 157 "" 158 fragment "" 159 #version 440 core 160 precision highp float; 161 precision highp int; 162 layout(location = 0) in vec3 var0; 163 layout(location = 0) out vec3 dEQP_FragColor; 164 165 void main() 166 { 167 vec3 out0 = var0; 168 out0 /= vec3(31.0, 63.0, 31.0); 169 dEQP_FragColor = out0; 170 } 171 "" 172 end 173 case as_float_vec2 174 version 440 core 175 desc "Read vertex input (vec3) as float vec2." 176 output_color vec3 177 values 178 { 179 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 180 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 181 } 182 vertex "" 183 #version 440 core 184 precision highp float; 185 precision highp int; 186 layout(location = 0) in vec4 dEQP_Position; 187 layout(location = 1, component = 0) in float in0_0; 188 layout(location = 1, component = 1) in vec2 in0_1; 189 layout(location = 0) out vec3 var0; 190 191 void main() 192 { 193 vec3 in0 = vec3(in0_0, in0_1); 194 var0 = in0 + in0; 195 ${VERTEX_OUTPUT} 196 } 197 "" 198 fragment "" 199 #version 440 core 200 precision highp float; 201 precision highp int; 202 layout(location = 0) in vec3 var0; 203 layout(location = 0) out vec3 dEQP_FragColor; 204 205 void main() 206 { 207 vec3 out0 = var0; 208 out0 /= vec3(31.0, 63.0, 31.0); 209 dEQP_FragColor = out0; 210 } 211 "" 212 end 213 case as_float_vec2_unused 214 version 440 core 215 desc "Read vertex input (vec3) as float vec2. Read unused fourth component." 216 output_color vec3 217 values 218 { 219 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 220 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 221 } 222 vertex "" 223 #version 440 core 224 precision highp float; 225 precision highp int; 226 layout(location = 0) in vec4 dEQP_Position; 227 layout(location = 1, component = 0) in float in0_0; 228 layout(location = 1, component = 1) in vec2 in0_1; 229 layout(location = 1, component = 3) in float in0_3; 230 layout(location = 0) out vec3 var0; 231 232 void main() 233 { 234 vec3 in0 = vec3(in0_0, in0_1); 235 var0 = in0_3 * in0 + in0; 236 ${VERTEX_OUTPUT} 237 } 238 "" 239 fragment "" 240 #version 440 core 241 precision highp float; 242 precision highp int; 243 layout(location = 0) in vec3 var0; 244 layout(location = 0) out vec3 dEQP_FragColor; 245 246 void main() 247 { 248 vec3 out0 = var0; 249 out0 /= vec3(31.0, 63.0, 31.0); 250 dEQP_FragColor = out0; 251 } 252 "" 253 end 254 case as_vec2_float 255 version 440 core 256 desc "Read vertex input (vec3) as vec2 float." 257 output_color vec3 258 values 259 { 260 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 261 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 262 } 263 vertex "" 264 #version 440 core 265 precision highp float; 266 precision highp int; 267 layout(location = 0) in vec4 dEQP_Position; 268 layout(location = 1, component = 0) in vec2 in0_0; 269 layout(location = 1, component = 2) in float in0_1; 270 layout(location = 0) out vec3 var0; 271 272 void main() 273 { 274 vec3 in0 = vec3(in0_0, in0_1); 275 var0 = in0 + in0; 276 ${VERTEX_OUTPUT} 277 } 278 "" 279 fragment "" 280 #version 440 core 281 precision highp float; 282 precision highp int; 283 layout(location = 0) in vec3 var0; 284 layout(location = 0) out vec3 dEQP_FragColor; 285 286 void main() 287 { 288 vec3 out0 = var0; 289 out0 /= vec3(31.0, 63.0, 31.0); 290 dEQP_FragColor = out0; 291 } 292 "" 293 end 294 case as_vec2_float_unused 295 version 440 core 296 desc "Read vertex input (vec3) as vec2 float. Read unused fourth component." 297 output_color vec3 298 values 299 { 300 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 301 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 302 } 303 vertex "" 304 #version 440 core 305 precision highp float; 306 precision highp int; 307 layout(location = 0) in vec4 dEQP_Position; 308 layout(location = 1, component = 0) in vec2 in0_0; 309 layout(location = 1, component = 2) in float in0_1; 310 layout(location = 1, component = 3) in float in0_3; 311 layout(location = 0) out vec3 var0; 312 313 void main() 314 { 315 vec3 in0 = vec3(in0_0, in0_1); 316 var0 = in0_3 * in0 + in0; 317 ${VERTEX_OUTPUT} 318 } 319 "" 320 fragment "" 321 #version 440 core 322 precision highp float; 323 precision highp int; 324 layout(location = 0) in vec3 var0; 325 layout(location = 0) out vec3 dEQP_FragColor; 326 327 void main() 328 { 329 vec3 out0 = var0; 330 out0 /= vec3(31.0, 63.0, 31.0); 331 dEQP_FragColor = out0; 332 } 333 "" 334 end 335 end 336 group vec4 "vec4" 337 case as_float_float_float_float 338 version 440 core 339 desc "Read vertex input (vec4) as float float float float." 340 output_color vec4 341 values 342 { 343 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 344 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 345 } 346 vertex "" 347 #version 440 core 348 precision highp float; 349 precision highp int; 350 layout(location = 0) in vec4 dEQP_Position; 351 layout(location = 1, component = 0) in float in0_0; 352 layout(location = 1, component = 1) in float in0_1; 353 layout(location = 1, component = 2) in float in0_2; 354 layout(location = 1, component = 3) in float in0_3; 355 layout(location = 0) out vec4 var0; 356 357 void main() 358 { 359 vec4 in0 = vec4(in0_0, in0_1, in0_2, in0_3); 360 var0 = in0 + in0; 361 ${VERTEX_OUTPUT} 362 } 363 "" 364 fragment "" 365 #version 440 core 366 precision highp float; 367 precision highp int; 368 layout(location = 0) in vec4 var0; 369 layout(location = 0) out vec4 dEQP_FragColor; 370 371 void main() 372 { 373 vec4 out0 = var0; 374 out0 /= vec4(255.0); 375 dEQP_FragColor = out0; 376 } 377 "" 378 end 379 case as_float_float_vec2 380 version 440 core 381 desc "Read vertex input (vec4) as float float vec2." 382 output_color vec4 383 values 384 { 385 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 386 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 387 } 388 vertex "" 389 #version 440 core 390 precision highp float; 391 precision highp int; 392 layout(location = 0) in vec4 dEQP_Position; 393 layout(location = 1, component = 0) in float in0_0; 394 layout(location = 1, component = 1) in float in0_1; 395 layout(location = 1, component = 2) in vec2 in0_2; 396 layout(location = 0) out vec4 var0; 397 398 void main() 399 { 400 vec4 in0 = vec4(in0_0, in0_1, in0_2); 401 var0 = in0 + in0; 402 ${VERTEX_OUTPUT} 403 } 404 "" 405 fragment "" 406 #version 440 core 407 precision highp float; 408 precision highp int; 409 layout(location = 0) in vec4 var0; 410 layout(location = 0) out vec4 dEQP_FragColor; 411 412 void main() 413 { 414 vec4 out0 = var0; 415 out0 /= vec4(255.0); 416 dEQP_FragColor = out0; 417 } 418 "" 419 end 420 case as_float_vec2_float 421 version 440 core 422 desc "Read vertex input (vec4) as float vec2 float." 423 output_color vec4 424 values 425 { 426 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 427 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 428 } 429 vertex "" 430 #version 440 core 431 precision highp float; 432 precision highp int; 433 layout(location = 0) in vec4 dEQP_Position; 434 layout(location = 1, component = 0) in float in0_0; 435 layout(location = 1, component = 1) in vec2 in0_1; 436 layout(location = 1, component = 3) in float in0_2; 437 layout(location = 0) out vec4 var0; 438 439 void main() 440 { 441 vec4 in0 = vec4(in0_0, in0_1, in0_2); 442 var0 = in0 + in0; 443 ${VERTEX_OUTPUT} 444 } 445 "" 446 fragment "" 447 #version 440 core 448 precision highp float; 449 precision highp int; 450 layout(location = 0) in vec4 var0; 451 layout(location = 0) out vec4 dEQP_FragColor; 452 453 void main() 454 { 455 vec4 out0 = var0; 456 out0 /= vec4(255.0); 457 dEQP_FragColor = out0; 458 } 459 "" 460 end 461 case as_float_vec3 462 version 440 core 463 desc "Read vertex input (vec4) as float vec3." 464 output_color vec4 465 values 466 { 467 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 468 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 469 } 470 vertex "" 471 #version 440 core 472 precision highp float; 473 precision highp int; 474 layout(location = 0) in vec4 dEQP_Position; 475 layout(location = 1, component = 0) in float in0_0; 476 layout(location = 1, component = 1) in vec3 in0_1; 477 layout(location = 0) out vec4 var0; 478 479 void main() 480 { 481 vec4 in0 = vec4(in0_0, in0_1); 482 var0 = in0 + in0; 483 ${VERTEX_OUTPUT} 484 } 485 "" 486 fragment "" 487 #version 440 core 488 precision highp float; 489 precision highp int; 490 layout(location = 0) in vec4 var0; 491 layout(location = 0) out vec4 dEQP_FragColor; 492 493 void main() 494 { 495 vec4 out0 = var0; 496 out0 /= vec4(255.0); 497 dEQP_FragColor = out0; 498 } 499 "" 500 end 501 case as_vec2_float_float 502 version 440 core 503 desc "Read vertex input (vec4) as vec2 float float." 504 output_color vec4 505 values 506 { 507 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 508 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 509 } 510 vertex "" 511 #version 440 core 512 precision highp float; 513 precision highp int; 514 layout(location = 0) in vec4 dEQP_Position; 515 layout(location = 1, component = 0) in vec2 in0_0; 516 layout(location = 1, component = 2) in float in0_1; 517 layout(location = 1, component = 3) in float in0_2; 518 layout(location = 0) out vec4 var0; 519 520 void main() 521 { 522 vec4 in0 = vec4(in0_0, in0_1, in0_2); 523 var0 = in0 + in0; 524 ${VERTEX_OUTPUT} 525 } 526 "" 527 fragment "" 528 #version 440 core 529 precision highp float; 530 precision highp int; 531 layout(location = 0) in vec4 var0; 532 layout(location = 0) out vec4 dEQP_FragColor; 533 534 void main() 535 { 536 vec4 out0 = var0; 537 out0 /= vec4(255.0); 538 dEQP_FragColor = out0; 539 } 540 "" 541 end 542 case as_vec2_vec2 543 version 440 core 544 desc "Read vertex input (vec4) as vec2 vec2." 545 output_color vec4 546 values 547 { 548 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 549 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 550 } 551 vertex "" 552 #version 440 core 553 precision highp float; 554 precision highp int; 555 layout(location = 0) in vec4 dEQP_Position; 556 layout(location = 1, component = 0) in vec2 in0_0; 557 layout(location = 1, component = 2) in vec2 in0_1; 558 layout(location = 0) out vec4 var0; 559 560 void main() 561 { 562 vec4 in0 = vec4(in0_0, in0_1); 563 var0 = in0 + in0; 564 ${VERTEX_OUTPUT} 565 } 566 "" 567 fragment "" 568 #version 440 core 569 precision highp float; 570 precision highp int; 571 layout(location = 0) in vec4 var0; 572 layout(location = 0) out vec4 dEQP_FragColor; 573 574 void main() 575 { 576 vec4 out0 = var0; 577 out0 /= vec4(255.0); 578 dEQP_FragColor = out0; 579 } 580 "" 581 end 582 case as_vec3_float 583 version 440 core 584 desc "Read vertex input (vec4) as vec3 float." 585 output_color vec4 586 values 587 { 588 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 589 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 590 } 591 vertex "" 592 #version 440 core 593 precision highp float; 594 precision highp int; 595 layout(location = 0) in vec4 dEQP_Position; 596 layout(location = 1, component = 0) in vec3 in0_0; 597 layout(location = 1, component = 3) in float in0_1; 598 layout(location = 0) out vec4 var0; 599 600 void main() 601 { 602 vec4 in0 = vec4(in0_0, in0_1); 603 var0 = in0 + in0; 604 ${VERTEX_OUTPUT} 605 } 606 "" 607 fragment "" 608 #version 440 core 609 precision highp float; 610 precision highp int; 611 layout(location = 0) in vec4 var0; 612 layout(location = 0) out vec4 dEQP_FragColor; 613 614 void main() 615 { 616 vec4 out0 = var0; 617 out0 /= vec4(255.0); 618 dEQP_FragColor = out0; 619 } 620 "" 621 end 622 end 623 group ivec2 "ivec2" 624 case as_int_int 625 version 440 core 626 desc "Read vertex input (ivec2) as int int." 627 output_color ivec2 628 values 629 { 630 input ivec2 in0 = [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ]; 631 output ivec2 out0 = [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ]; 632 } 633 vertex "" 634 #version 440 core 635 precision highp float; 636 precision highp int; 637 layout(location = 0) in vec4 dEQP_Position; 638 layout(location = 1, component = 0) in int in0_0; 639 layout(location = 1, component = 1) in int in0_1; 640 layout(location = 0) out ivec2 var0; 641 642 void main() 643 { 644 ivec2 in0 = ivec2(in0_0, in0_1); 645 var0 = in0 + in0; 646 ${VERTEX_OUTPUT} 647 } 648 "" 649 fragment "" 650 #version 440 core 651 precision highp float; 652 precision highp int; 653 layout(location = 0) flat in ivec2 var0; 654 layout(location = 0) out ivec2 dEQP_FragColor; 655 656 void main() 657 { 658 ivec2 out0 = var0; 659 dEQP_FragColor = out0; 660 } 661 "" 662 end 663 case as_int_int_unused 664 version 440 core 665 desc "Read vertex input (ivec2) as int int. Read unused fourth component." 666 output_color ivec2 667 values 668 { 669 input ivec2 in0 = [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ]; 670 output ivec2 out0 = [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ]; 671 } 672 vertex "" 673 #version 440 core 674 precision highp float; 675 precision highp int; 676 layout(location = 0) in vec4 dEQP_Position; 677 layout(location = 1, component = 0) in int in0_0; 678 layout(location = 1, component = 1) in int in0_1; 679 layout(location = 1, component = 3) in int in0_3; 680 layout(location = 0) out ivec2 var0; 681 682 void main() 683 { 684 ivec2 in0 = ivec2(in0_0, in0_1); 685 var0 = in0_3 * in0 + in0; 686 ${VERTEX_OUTPUT} 687 } 688 "" 689 fragment "" 690 #version 440 core 691 precision highp float; 692 precision highp int; 693 layout(location = 0) flat in ivec2 var0; 694 layout(location = 0) out ivec2 dEQP_FragColor; 695 696 void main() 697 { 698 ivec2 out0 = var0; 699 dEQP_FragColor = out0; 700 } 701 "" 702 end 703 end 704 group ivec4 "ivec4" 705 case as_int_int_int_int 706 version 440 core 707 desc "Read vertex input (ivec4) as int int int int." 708 output_color ivec4 709 values 710 { 711 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 712 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 713 } 714 vertex "" 715 #version 440 core 716 precision highp float; 717 precision highp int; 718 layout(location = 0) in vec4 dEQP_Position; 719 layout(location = 1, component = 0) in int in0_0; 720 layout(location = 1, component = 1) in int in0_1; 721 layout(location = 1, component = 2) in int in0_2; 722 layout(location = 1, component = 3) in int in0_3; 723 layout(location = 0) out ivec4 var0; 724 725 void main() 726 { 727 ivec4 in0 = ivec4(in0_0, in0_1, in0_2, in0_3); 728 var0 = in0 + in0; 729 ${VERTEX_OUTPUT} 730 } 731 "" 732 fragment "" 733 #version 440 core 734 precision highp float; 735 precision highp int; 736 layout(location = 0) flat in ivec4 var0; 737 layout(location = 0) out ivec4 dEQP_FragColor; 738 739 void main() 740 { 741 ivec4 out0 = var0; 742 dEQP_FragColor = out0; 743 } 744 "" 745 end 746 case as_int_int_ivec2 747 version 440 core 748 desc "Read vertex input (ivec4) as int int ivec2." 749 output_color ivec4 750 values 751 { 752 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 753 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 754 } 755 vertex "" 756 #version 440 core 757 precision highp float; 758 precision highp int; 759 layout(location = 0) in vec4 dEQP_Position; 760 layout(location = 1, component = 0) in int in0_0; 761 layout(location = 1, component = 1) in int in0_1; 762 layout(location = 1, component = 2) in ivec2 in0_2; 763 layout(location = 0) out ivec4 var0; 764 765 void main() 766 { 767 ivec4 in0 = ivec4(in0_0, in0_1, in0_2); 768 var0 = in0 + in0; 769 ${VERTEX_OUTPUT} 770 } 771 "" 772 fragment "" 773 #version 440 core 774 precision highp float; 775 precision highp int; 776 layout(location = 0) flat in ivec4 var0; 777 layout(location = 0) out ivec4 dEQP_FragColor; 778 779 void main() 780 { 781 ivec4 out0 = var0; 782 dEQP_FragColor = out0; 783 } 784 "" 785 end 786 case as_int_ivec2_int 787 version 440 core 788 desc "Read vertex input (ivec4) as int ivec2 int." 789 output_color ivec4 790 values 791 { 792 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 793 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 794 } 795 vertex "" 796 #version 440 core 797 precision highp float; 798 precision highp int; 799 layout(location = 0) in vec4 dEQP_Position; 800 layout(location = 1, component = 0) in int in0_0; 801 layout(location = 1, component = 1) in ivec2 in0_1; 802 layout(location = 1, component = 3) in int in0_2; 803 layout(location = 0) out ivec4 var0; 804 805 void main() 806 { 807 ivec4 in0 = ivec4(in0_0, in0_1, in0_2); 808 var0 = in0 + in0; 809 ${VERTEX_OUTPUT} 810 } 811 "" 812 fragment "" 813 #version 440 core 814 precision highp float; 815 precision highp int; 816 layout(location = 0) flat in ivec4 var0; 817 layout(location = 0) out ivec4 dEQP_FragColor; 818 819 void main() 820 { 821 ivec4 out0 = var0; 822 dEQP_FragColor = out0; 823 } 824 "" 825 end 826 case as_int_ivec3 827 version 440 core 828 desc "Read vertex input (ivec4) as int ivec3." 829 output_color ivec4 830 values 831 { 832 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 833 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 834 } 835 vertex "" 836 #version 440 core 837 precision highp float; 838 precision highp int; 839 layout(location = 0) in vec4 dEQP_Position; 840 layout(location = 1, component = 0) in int in0_0; 841 layout(location = 1, component = 1) in ivec3 in0_1; 842 layout(location = 0) out ivec4 var0; 843 844 void main() 845 { 846 ivec4 in0 = ivec4(in0_0, in0_1); 847 var0 = in0 + in0; 848 ${VERTEX_OUTPUT} 849 } 850 "" 851 fragment "" 852 #version 440 core 853 precision highp float; 854 precision highp int; 855 layout(location = 0) flat in ivec4 var0; 856 layout(location = 0) out ivec4 dEQP_FragColor; 857 858 void main() 859 { 860 ivec4 out0 = var0; 861 dEQP_FragColor = out0; 862 } 863 "" 864 end 865 case as_ivec2_int_int 866 version 440 core 867 desc "Read vertex input (ivec4) as ivec2 int int." 868 output_color ivec4 869 values 870 { 871 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 872 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 873 } 874 vertex "" 875 #version 440 core 876 precision highp float; 877 precision highp int; 878 layout(location = 0) in vec4 dEQP_Position; 879 layout(location = 1, component = 0) in ivec2 in0_0; 880 layout(location = 1, component = 2) in int in0_1; 881 layout(location = 1, component = 3) in int in0_2; 882 layout(location = 0) out ivec4 var0; 883 884 void main() 885 { 886 ivec4 in0 = ivec4(in0_0, in0_1, in0_2); 887 var0 = in0 + in0; 888 ${VERTEX_OUTPUT} 889 } 890 "" 891 fragment "" 892 #version 440 core 893 precision highp float; 894 precision highp int; 895 layout(location = 0) flat in ivec4 var0; 896 layout(location = 0) out ivec4 dEQP_FragColor; 897 898 void main() 899 { 900 ivec4 out0 = var0; 901 dEQP_FragColor = out0; 902 } 903 "" 904 end 905 case as_ivec2_ivec2 906 version 440 core 907 desc "Read vertex input (ivec4) as ivec2 ivec2." 908 output_color ivec4 909 values 910 { 911 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 912 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 913 } 914 vertex "" 915 #version 440 core 916 precision highp float; 917 precision highp int; 918 layout(location = 0) in vec4 dEQP_Position; 919 layout(location = 1, component = 0) in ivec2 in0_0; 920 layout(location = 1, component = 2) in ivec2 in0_1; 921 layout(location = 0) out ivec4 var0; 922 923 void main() 924 { 925 ivec4 in0 = ivec4(in0_0, in0_1); 926 var0 = in0 + in0; 927 ${VERTEX_OUTPUT} 928 } 929 "" 930 fragment "" 931 #version 440 core 932 precision highp float; 933 precision highp int; 934 layout(location = 0) flat in ivec4 var0; 935 layout(location = 0) out ivec4 dEQP_FragColor; 936 937 void main() 938 { 939 ivec4 out0 = var0; 940 dEQP_FragColor = out0; 941 } 942 "" 943 end 944 case as_ivec3_int 945 version 440 core 946 desc "Read vertex input (ivec4) as ivec3 int." 947 output_color ivec4 948 values 949 { 950 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 951 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 952 } 953 vertex "" 954 #version 440 core 955 precision highp float; 956 precision highp int; 957 layout(location = 0) in vec4 dEQP_Position; 958 layout(location = 1, component = 0) in ivec3 in0_0; 959 layout(location = 1, component = 3) in int in0_1; 960 layout(location = 0) out ivec4 var0; 961 962 void main() 963 { 964 ivec4 in0 = ivec4(in0_0, in0_1); 965 var0 = in0 + in0; 966 ${VERTEX_OUTPUT} 967 } 968 "" 969 fragment "" 970 #version 440 core 971 precision highp float; 972 precision highp int; 973 layout(location = 0) flat in ivec4 var0; 974 layout(location = 0) out ivec4 dEQP_FragColor; 975 976 void main() 977 { 978 ivec4 out0 = var0; 979 dEQP_FragColor = out0; 980 } 981 "" 982 end 983 end 984 end 985 group vert_out_frag_in "Vertex shader output and fragment shader input" 986 group vec2 "vec2" 987 case as_float_float 988 version 440 core 989 desc "Write vertex output and read fragment input (vec2) as float float." 990 output_color vec2 991 values 992 { 993 input vec2 in0 = [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ]; 994 output vec2 out0 = [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ]; 995 } 996 vertex "" 997 #version 440 core 998 precision highp float; 999 precision highp int; 1000 layout(location = 0) in vec4 dEQP_Position; 1001 layout(location = 1) in vec2 in0; 1002 layout(location = 0, component = 0) out float var0_0; 1003 layout(location = 0, component = 1) out float var0_1; 1004 1005 void main() 1006 { 1007 var0_0 = in0.x + in0.x; 1008 var0_1 = in0.y + in0.y; 1009 ${VERTEX_OUTPUT} 1010 } 1011 "" 1012 fragment "" 1013 #version 440 core 1014 precision highp float; 1015 precision highp int; 1016 layout(location = 0, component = 0) in float var0_0; 1017 layout(location = 0, component = 1) in float var0_1; 1018 layout(location = 0) out vec2 dEQP_FragColor; 1019 1020 void main() 1021 { 1022 vec2 var0 = vec2(var0_0, var0_1); 1023 vec2 out0 = var0; 1024 out0 /= vec2(255.0); 1025 dEQP_FragColor = out0; 1026 } 1027 "" 1028 end 1029 end 1030 group vec3 "vec3" 1031 case as_float_float_float 1032 version 440 core 1033 desc "Write vertex output and read fragment input (vec3) as float float float." 1034 output_color vec3 1035 values 1036 { 1037 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1038 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1039 } 1040 vertex "" 1041 #version 440 core 1042 precision highp float; 1043 precision highp int; 1044 layout(location = 0) in vec4 dEQP_Position; 1045 layout(location = 1) in vec3 in0; 1046 layout(location = 0, component = 0) out float var0_0; 1047 layout(location = 0, component = 1) out float var0_1; 1048 layout(location = 0, component = 2) out float var0_2; 1049 1050 void main() 1051 { 1052 var0_0 = in0.x + in0.x; 1053 var0_1 = in0.y + in0.y; 1054 var0_2 = in0.z + in0.z; 1055 ${VERTEX_OUTPUT} 1056 } 1057 "" 1058 fragment "" 1059 #version 440 core 1060 precision highp float; 1061 precision highp int; 1062 layout(location = 0, component = 0) in float var0_0; 1063 layout(location = 0, component = 1) in float var0_1; 1064 layout(location = 0, component = 2) in float var0_2; 1065 layout(location = 0) out vec3 dEQP_FragColor; 1066 1067 void main() 1068 { 1069 vec3 var0 = vec3(var0_0, var0_1, var0_2); 1070 vec3 out0 = var0; 1071 out0 /= vec3(31.0, 63.0, 31.0); 1072 dEQP_FragColor = out0; 1073 } 1074 "" 1075 end 1076 case as_float_vec2 1077 version 440 core 1078 desc "Write vertex output and read fragment input (vec3) as float vec2." 1079 output_color vec3 1080 values 1081 { 1082 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1083 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1084 } 1085 vertex "" 1086 #version 440 core 1087 precision highp float; 1088 precision highp int; 1089 layout(location = 0) in vec4 dEQP_Position; 1090 layout(location = 1) in vec3 in0; 1091 layout(location = 0, component = 0) out float var0_0; 1092 layout(location = 0, component = 1) out vec2 var0_1; 1093 1094 void main() 1095 { 1096 var0_0 = in0.x + in0.x; 1097 var0_1 = in0.yz + in0.yz; 1098 ${VERTEX_OUTPUT} 1099 } 1100 "" 1101 fragment "" 1102 #version 440 core 1103 precision highp float; 1104 precision highp int; 1105 layout(location = 0, component = 0) in float var0_0; 1106 layout(location = 0, component = 1) in vec2 var0_1; 1107 layout(location = 0) out vec3 dEQP_FragColor; 1108 1109 void main() 1110 { 1111 vec3 var0 = vec3(var0_0, var0_1); 1112 vec3 out0 = var0; 1113 out0 /= vec3(31.0, 63.0, 31.0); 1114 dEQP_FragColor = out0; 1115 } 1116 "" 1117 end 1118 case as_vec2_float 1119 version 440 core 1120 desc "Write vertex output and read fragment input (vec3) as vec2 float." 1121 output_color vec3 1122 values 1123 { 1124 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1125 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1126 } 1127 vertex "" 1128 #version 440 core 1129 precision highp float; 1130 precision highp int; 1131 layout(location = 0) in vec4 dEQP_Position; 1132 layout(location = 1) in vec3 in0; 1133 layout(location = 0, component = 0) out vec2 var0_0; 1134 layout(location = 0, component = 2) out float var0_1; 1135 1136 void main() 1137 { 1138 var0_0 = in0.xy + in0.xy; 1139 var0_1 = in0.z + in0.z; 1140 ${VERTEX_OUTPUT} 1141 } 1142 "" 1143 fragment "" 1144 #version 440 core 1145 precision highp float; 1146 precision highp int; 1147 layout(location = 0, component = 0) in vec2 var0_0; 1148 layout(location = 0, component = 2) in float var0_1; 1149 layout(location = 0) out vec3 dEQP_FragColor; 1150 1151 void main() 1152 { 1153 vec3 var0 = vec3(var0_0, var0_1); 1154 vec3 out0 = var0; 1155 out0 /= vec3(31.0, 63.0, 31.0); 1156 dEQP_FragColor = out0; 1157 } 1158 "" 1159 end 1160 end 1161 group vec4 "vec4" 1162 case as_float_float_float_float 1163 version 440 core 1164 desc "Write vertex output and read fragment input (vec4) as float float float float." 1165 output_color vec4 1166 values 1167 { 1168 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1169 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1170 } 1171 vertex "" 1172 #version 440 core 1173 precision highp float; 1174 precision highp int; 1175 layout(location = 0) in vec4 dEQP_Position; 1176 layout(location = 1) in vec4 in0; 1177 layout(location = 0, component = 0) out float var0_0; 1178 layout(location = 0, component = 1) out float var0_1; 1179 layout(location = 0, component = 2) out float var0_2; 1180 layout(location = 0, component = 3) out float var0_3; 1181 1182 void main() 1183 { 1184 var0_0 = in0.x + in0.x; 1185 var0_1 = in0.y + in0.y; 1186 var0_2 = in0.z + in0.z; 1187 var0_3 = in0.w + in0.w; 1188 ${VERTEX_OUTPUT} 1189 } 1190 "" 1191 fragment "" 1192 #version 440 core 1193 precision highp float; 1194 precision highp int; 1195 layout(location = 0, component = 0) in float var0_0; 1196 layout(location = 0, component = 1) in float var0_1; 1197 layout(location = 0, component = 2) in float var0_2; 1198 layout(location = 0, component = 3) in float var0_3; 1199 layout(location = 0) out vec4 dEQP_FragColor; 1200 1201 void main() 1202 { 1203 vec4 var0 = vec4(var0_0, var0_1, var0_2, var0_3); 1204 vec4 out0 = var0; 1205 out0 /= vec4(255.0); 1206 dEQP_FragColor = out0; 1207 } 1208 "" 1209 end 1210 case as_float_float_vec2 1211 version 440 core 1212 desc "Write vertex output and read fragment input (vec4) as float float vec2." 1213 output_color vec4 1214 values 1215 { 1216 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1217 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1218 } 1219 vertex "" 1220 #version 440 core 1221 precision highp float; 1222 precision highp int; 1223 layout(location = 0) in vec4 dEQP_Position; 1224 layout(location = 1) in vec4 in0; 1225 layout(location = 0, component = 0) out float var0_0; 1226 layout(location = 0, component = 1) out float var0_1; 1227 layout(location = 0, component = 2) out vec2 var0_2; 1228 1229 void main() 1230 { 1231 var0_0 = in0.x + in0.x; 1232 var0_1 = in0.y + in0.y; 1233 var0_2 = in0.zw + in0.zw; 1234 ${VERTEX_OUTPUT} 1235 } 1236 "" 1237 fragment "" 1238 #version 440 core 1239 precision highp float; 1240 precision highp int; 1241 layout(location = 0, component = 0) in float var0_0; 1242 layout(location = 0, component = 1) in float var0_1; 1243 layout(location = 0, component = 2) in vec2 var0_2; 1244 layout(location = 0) out vec4 dEQP_FragColor; 1245 1246 void main() 1247 { 1248 vec4 var0 = vec4(var0_0, var0_1, var0_2); 1249 vec4 out0 = var0; 1250 out0 /= vec4(255.0); 1251 dEQP_FragColor = out0; 1252 } 1253 "" 1254 end 1255 case as_float_vec2_float 1256 version 440 core 1257 desc "Write vertex output and read fragment input (vec4) as float vec2 float." 1258 output_color vec4 1259 values 1260 { 1261 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1262 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1263 } 1264 vertex "" 1265 #version 440 core 1266 precision highp float; 1267 precision highp int; 1268 layout(location = 0) in vec4 dEQP_Position; 1269 layout(location = 1) in vec4 in0; 1270 layout(location = 0, component = 0) out float var0_0; 1271 layout(location = 0, component = 1) out vec2 var0_1; 1272 layout(location = 0, component = 3) out float var0_2; 1273 1274 void main() 1275 { 1276 var0_0 = in0.x + in0.x; 1277 var0_1 = in0.yz + in0.yz; 1278 var0_2 = in0.w + in0.w; 1279 ${VERTEX_OUTPUT} 1280 } 1281 "" 1282 fragment "" 1283 #version 440 core 1284 precision highp float; 1285 precision highp int; 1286 layout(location = 0, component = 0) in float var0_0; 1287 layout(location = 0, component = 1) in vec2 var0_1; 1288 layout(location = 0, component = 3) in float var0_2; 1289 layout(location = 0) out vec4 dEQP_FragColor; 1290 1291 void main() 1292 { 1293 vec4 var0 = vec4(var0_0, var0_1, var0_2); 1294 vec4 out0 = var0; 1295 out0 /= vec4(255.0); 1296 dEQP_FragColor = out0; 1297 } 1298 "" 1299 end 1300 case as_float_vec3 1301 version 440 core 1302 desc "Write vertex output and read fragment input (vec4) as float vec3." 1303 output_color vec4 1304 values 1305 { 1306 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1307 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1308 } 1309 vertex "" 1310 #version 440 core 1311 precision highp float; 1312 precision highp int; 1313 layout(location = 0) in vec4 dEQP_Position; 1314 layout(location = 1) in vec4 in0; 1315 layout(location = 0, component = 0) out float var0_0; 1316 layout(location = 0, component = 1) out vec3 var0_1; 1317 1318 void main() 1319 { 1320 var0_0 = in0.x + in0.x; 1321 var0_1 = in0.yzw + in0.yzw; 1322 ${VERTEX_OUTPUT} 1323 } 1324 "" 1325 fragment "" 1326 #version 440 core 1327 precision highp float; 1328 precision highp int; 1329 layout(location = 0, component = 0) in float var0_0; 1330 layout(location = 0, component = 1) in vec3 var0_1; 1331 layout(location = 0) out vec4 dEQP_FragColor; 1332 1333 void main() 1334 { 1335 vec4 var0 = vec4(var0_0, var0_1); 1336 vec4 out0 = var0; 1337 out0 /= vec4(255.0); 1338 dEQP_FragColor = out0; 1339 } 1340 "" 1341 end 1342 case as_vec2_float_float 1343 version 440 core 1344 desc "Write vertex output and read fragment input (vec4) as vec2 float float." 1345 output_color vec4 1346 values 1347 { 1348 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1349 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1350 } 1351 vertex "" 1352 #version 440 core 1353 precision highp float; 1354 precision highp int; 1355 layout(location = 0) in vec4 dEQP_Position; 1356 layout(location = 1) in vec4 in0; 1357 layout(location = 0, component = 0) out vec2 var0_0; 1358 layout(location = 0, component = 2) out float var0_1; 1359 layout(location = 0, component = 3) out float var0_2; 1360 1361 void main() 1362 { 1363 var0_0 = in0.xy + in0.xy; 1364 var0_1 = in0.z + in0.z; 1365 var0_2 = in0.w + in0.w; 1366 ${VERTEX_OUTPUT} 1367 } 1368 "" 1369 fragment "" 1370 #version 440 core 1371 precision highp float; 1372 precision highp int; 1373 layout(location = 0, component = 0) in vec2 var0_0; 1374 layout(location = 0, component = 2) in float var0_1; 1375 layout(location = 0, component = 3) in float var0_2; 1376 layout(location = 0) out vec4 dEQP_FragColor; 1377 1378 void main() 1379 { 1380 vec4 var0 = vec4(var0_0, var0_1, var0_2); 1381 vec4 out0 = var0; 1382 out0 /= vec4(255.0); 1383 dEQP_FragColor = out0; 1384 } 1385 "" 1386 end 1387 case as_vec2_vec2 1388 version 440 core 1389 desc "Write vertex output and read fragment input (vec4) as vec2 vec2." 1390 output_color vec4 1391 values 1392 { 1393 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1394 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1395 } 1396 vertex "" 1397 #version 440 core 1398 precision highp float; 1399 precision highp int; 1400 layout(location = 0) in vec4 dEQP_Position; 1401 layout(location = 1) in vec4 in0; 1402 layout(location = 0, component = 0) out vec2 var0_0; 1403 layout(location = 0, component = 2) out vec2 var0_1; 1404 1405 void main() 1406 { 1407 var0_0 = in0.xy + in0.xy; 1408 var0_1 = in0.zw + in0.zw; 1409 ${VERTEX_OUTPUT} 1410 } 1411 "" 1412 fragment "" 1413 #version 440 core 1414 precision highp float; 1415 precision highp int; 1416 layout(location = 0, component = 0) in vec2 var0_0; 1417 layout(location = 0, component = 2) in vec2 var0_1; 1418 layout(location = 0) out vec4 dEQP_FragColor; 1419 1420 void main() 1421 { 1422 vec4 var0 = vec4(var0_0, var0_1); 1423 vec4 out0 = var0; 1424 out0 /= vec4(255.0); 1425 dEQP_FragColor = out0; 1426 } 1427 "" 1428 end 1429 case as_vec3_float 1430 version 440 core 1431 desc "Write vertex output and read fragment input (vec4) as vec3 float." 1432 output_color vec4 1433 values 1434 { 1435 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1436 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1437 } 1438 vertex "" 1439 #version 440 core 1440 precision highp float; 1441 precision highp int; 1442 layout(location = 0) in vec4 dEQP_Position; 1443 layout(location = 1) in vec4 in0; 1444 layout(location = 0, component = 0) out vec3 var0_0; 1445 layout(location = 0, component = 3) out float var0_1; 1446 1447 void main() 1448 { 1449 var0_0 = in0.xyz + in0.xyz; 1450 var0_1 = in0.w + in0.w; 1451 ${VERTEX_OUTPUT} 1452 } 1453 "" 1454 fragment "" 1455 #version 440 core 1456 precision highp float; 1457 precision highp int; 1458 layout(location = 0, component = 0) in vec3 var0_0; 1459 layout(location = 0, component = 3) in float var0_1; 1460 layout(location = 0) out vec4 dEQP_FragColor; 1461 1462 void main() 1463 { 1464 vec4 var0 = vec4(var0_0, var0_1); 1465 vec4 out0 = var0; 1466 out0 /= vec4(255.0); 1467 dEQP_FragColor = out0; 1468 } 1469 "" 1470 end 1471 end 1472 group ivec2 "ivec2" 1473 case as_int_int 1474 version 440 core 1475 desc "Write vertex output and read fragment input (ivec2) as int int." 1476 output_color ivec2 1477 values 1478 { 1479 input ivec2 in0 = [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ]; 1480 output ivec2 out0 = [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ]; 1481 } 1482 vertex "" 1483 #version 440 core 1484 precision highp float; 1485 precision highp int; 1486 layout(location = 0) in vec4 dEQP_Position; 1487 layout(location = 1) in ivec2 in0; 1488 layout(location = 0, component = 0) out int var0_0; 1489 layout(location = 0, component = 1) out int var0_1; 1490 1491 void main() 1492 { 1493 var0_0 = in0.x + in0.x; 1494 var0_1 = in0.y + in0.y; 1495 ${VERTEX_OUTPUT} 1496 } 1497 "" 1498 fragment "" 1499 #version 440 core 1500 precision highp float; 1501 precision highp int; 1502 layout(location = 0, component = 0) flat in int var0_0; 1503 layout(location = 0, component = 1) flat in int var0_1; 1504 layout(location = 0) out ivec2 dEQP_FragColor; 1505 1506 void main() 1507 { 1508 ivec2 var0 = ivec2(var0_0, var0_1); 1509 ivec2 out0 = var0; 1510 dEQP_FragColor = out0; 1511 } 1512 "" 1513 end 1514 end 1515 group ivec4 "ivec4" 1516 case as_int_int_int_int 1517 version 440 core 1518 desc "Write vertex output and read fragment input (ivec4) as int int int int." 1519 output_color ivec4 1520 values 1521 { 1522 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1523 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1524 } 1525 vertex "" 1526 #version 440 core 1527 precision highp float; 1528 precision highp int; 1529 layout(location = 0) in vec4 dEQP_Position; 1530 layout(location = 1) in ivec4 in0; 1531 layout(location = 0, component = 0) out int var0_0; 1532 layout(location = 0, component = 1) out int var0_1; 1533 layout(location = 0, component = 2) out int var0_2; 1534 layout(location = 0, component = 3) out int var0_3; 1535 1536 void main() 1537 { 1538 var0_0 = in0.x + in0.x; 1539 var0_1 = in0.y + in0.y; 1540 var0_2 = in0.z + in0.z; 1541 var0_3 = in0.w + in0.w; 1542 ${VERTEX_OUTPUT} 1543 } 1544 "" 1545 fragment "" 1546 #version 440 core 1547 precision highp float; 1548 precision highp int; 1549 layout(location = 0, component = 0) flat in int var0_0; 1550 layout(location = 0, component = 1) flat in int var0_1; 1551 layout(location = 0, component = 2) flat in int var0_2; 1552 layout(location = 0, component = 3) flat in int var0_3; 1553 layout(location = 0) out ivec4 dEQP_FragColor; 1554 1555 void main() 1556 { 1557 ivec4 var0 = ivec4(var0_0, var0_1, var0_2, var0_3); 1558 ivec4 out0 = var0; 1559 dEQP_FragColor = out0; 1560 } 1561 "" 1562 end 1563 case as_int_int_ivec2 1564 version 440 core 1565 desc "Write vertex output and read fragment input (ivec4) as int int ivec2." 1566 output_color ivec4 1567 values 1568 { 1569 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1570 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1571 } 1572 vertex "" 1573 #version 440 core 1574 precision highp float; 1575 precision highp int; 1576 layout(location = 0) in vec4 dEQP_Position; 1577 layout(location = 1) in ivec4 in0; 1578 layout(location = 0, component = 0) out int var0_0; 1579 layout(location = 0, component = 1) out int var0_1; 1580 layout(location = 0, component = 2) out ivec2 var0_2; 1581 1582 void main() 1583 { 1584 var0_0 = in0.x + in0.x; 1585 var0_1 = in0.y + in0.y; 1586 var0_2 = in0.zw + in0.zw; 1587 ${VERTEX_OUTPUT} 1588 } 1589 "" 1590 fragment "" 1591 #version 440 core 1592 precision highp float; 1593 precision highp int; 1594 layout(location = 0, component = 0) flat in int var0_0; 1595 layout(location = 0, component = 1) flat in int var0_1; 1596 layout(location = 0, component = 2) flat in ivec2 var0_2; 1597 layout(location = 0) out ivec4 dEQP_FragColor; 1598 1599 void main() 1600 { 1601 ivec4 var0 = ivec4(var0_0, var0_1, var0_2); 1602 ivec4 out0 = var0; 1603 dEQP_FragColor = out0; 1604 } 1605 "" 1606 end 1607 case as_int_ivec2_int 1608 version 440 core 1609 desc "Write vertex output and read fragment input (ivec4) as int ivec2 int." 1610 output_color ivec4 1611 values 1612 { 1613 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1614 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1615 } 1616 vertex "" 1617 #version 440 core 1618 precision highp float; 1619 precision highp int; 1620 layout(location = 0) in vec4 dEQP_Position; 1621 layout(location = 1) in ivec4 in0; 1622 layout(location = 0, component = 0) out int var0_0; 1623 layout(location = 0, component = 1) out ivec2 var0_1; 1624 layout(location = 0, component = 3) out int var0_2; 1625 1626 void main() 1627 { 1628 var0_0 = in0.x + in0.x; 1629 var0_1 = in0.yz + in0.yz; 1630 var0_2 = in0.w + in0.w; 1631 ${VERTEX_OUTPUT} 1632 } 1633 "" 1634 fragment "" 1635 #version 440 core 1636 precision highp float; 1637 precision highp int; 1638 layout(location = 0, component = 0) flat in int var0_0; 1639 layout(location = 0, component = 1) flat in ivec2 var0_1; 1640 layout(location = 0, component = 3) flat in int var0_2; 1641 layout(location = 0) out ivec4 dEQP_FragColor; 1642 1643 void main() 1644 { 1645 ivec4 var0 = ivec4(var0_0, var0_1, var0_2); 1646 ivec4 out0 = var0; 1647 dEQP_FragColor = out0; 1648 } 1649 "" 1650 end 1651 case as_int_ivec3 1652 version 440 core 1653 desc "Write vertex output and read fragment input (ivec4) as int ivec3." 1654 output_color ivec4 1655 values 1656 { 1657 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1658 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1659 } 1660 vertex "" 1661 #version 440 core 1662 precision highp float; 1663 precision highp int; 1664 layout(location = 0) in vec4 dEQP_Position; 1665 layout(location = 1) in ivec4 in0; 1666 layout(location = 0, component = 0) out int var0_0; 1667 layout(location = 0, component = 1) out ivec3 var0_1; 1668 1669 void main() 1670 { 1671 var0_0 = in0.x + in0.x; 1672 var0_1 = in0.yzw + in0.yzw; 1673 ${VERTEX_OUTPUT} 1674 } 1675 "" 1676 fragment "" 1677 #version 440 core 1678 precision highp float; 1679 precision highp int; 1680 layout(location = 0, component = 0) flat in int var0_0; 1681 layout(location = 0, component = 1) flat in ivec3 var0_1; 1682 layout(location = 0) out ivec4 dEQP_FragColor; 1683 1684 void main() 1685 { 1686 ivec4 var0 = ivec4(var0_0, var0_1); 1687 ivec4 out0 = var0; 1688 dEQP_FragColor = out0; 1689 } 1690 "" 1691 end 1692 case as_ivec2_int_int 1693 version 440 core 1694 desc "Write vertex output and read fragment input (ivec4) as ivec2 int int." 1695 output_color ivec4 1696 values 1697 { 1698 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1699 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1700 } 1701 vertex "" 1702 #version 440 core 1703 precision highp float; 1704 precision highp int; 1705 layout(location = 0) in vec4 dEQP_Position; 1706 layout(location = 1) in ivec4 in0; 1707 layout(location = 0, component = 0) out ivec2 var0_0; 1708 layout(location = 0, component = 2) out int var0_1; 1709 layout(location = 0, component = 3) out int var0_2; 1710 1711 void main() 1712 { 1713 var0_0 = in0.xy + in0.xy; 1714 var0_1 = in0.z + in0.z; 1715 var0_2 = in0.w + in0.w; 1716 ${VERTEX_OUTPUT} 1717 } 1718 "" 1719 fragment "" 1720 #version 440 core 1721 precision highp float; 1722 precision highp int; 1723 layout(location = 0, component = 0) flat in ivec2 var0_0; 1724 layout(location = 0, component = 2) flat in int var0_1; 1725 layout(location = 0, component = 3) flat in int var0_2; 1726 layout(location = 0) out ivec4 dEQP_FragColor; 1727 1728 void main() 1729 { 1730 ivec4 var0 = ivec4(var0_0, var0_1, var0_2); 1731 ivec4 out0 = var0; 1732 dEQP_FragColor = out0; 1733 } 1734 "" 1735 end 1736 case as_ivec2_ivec2 1737 version 440 core 1738 desc "Write vertex output and read fragment input (ivec4) as ivec2 ivec2." 1739 output_color ivec4 1740 values 1741 { 1742 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1743 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1744 } 1745 vertex "" 1746 #version 440 core 1747 precision highp float; 1748 precision highp int; 1749 layout(location = 0) in vec4 dEQP_Position; 1750 layout(location = 1) in ivec4 in0; 1751 layout(location = 0, component = 0) out ivec2 var0_0; 1752 layout(location = 0, component = 2) out ivec2 var0_1; 1753 1754 void main() 1755 { 1756 var0_0 = in0.xy + in0.xy; 1757 var0_1 = in0.zw + in0.zw; 1758 ${VERTEX_OUTPUT} 1759 } 1760 "" 1761 fragment "" 1762 #version 440 core 1763 precision highp float; 1764 precision highp int; 1765 layout(location = 0, component = 0) flat in ivec2 var0_0; 1766 layout(location = 0, component = 2) flat in ivec2 var0_1; 1767 layout(location = 0) out ivec4 dEQP_FragColor; 1768 1769 void main() 1770 { 1771 ivec4 var0 = ivec4(var0_0, var0_1); 1772 ivec4 out0 = var0; 1773 dEQP_FragColor = out0; 1774 } 1775 "" 1776 end 1777 case as_ivec3_int 1778 version 440 core 1779 desc "Write vertex output and read fragment input (ivec4) as ivec3 int." 1780 output_color ivec4 1781 values 1782 { 1783 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 1784 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 1785 } 1786 vertex "" 1787 #version 440 core 1788 precision highp float; 1789 precision highp int; 1790 layout(location = 0) in vec4 dEQP_Position; 1791 layout(location = 1) in ivec4 in0; 1792 layout(location = 0, component = 0) out ivec3 var0_0; 1793 layout(location = 0, component = 3) out int var0_1; 1794 1795 void main() 1796 { 1797 var0_0 = in0.xyz + in0.xyz; 1798 var0_1 = in0.w + in0.w; 1799 ${VERTEX_OUTPUT} 1800 } 1801 "" 1802 fragment "" 1803 #version 440 core 1804 precision highp float; 1805 precision highp int; 1806 layout(location = 0, component = 0) flat in ivec3 var0_0; 1807 layout(location = 0, component = 3) flat in int var0_1; 1808 layout(location = 0) out ivec4 dEQP_FragColor; 1809 1810 void main() 1811 { 1812 ivec4 var0 = ivec4(var0_0, var0_1); 1813 ivec4 out0 = var0; 1814 dEQP_FragColor = out0; 1815 } 1816 "" 1817 end 1818 end 1819 end 1820 group frag_out "Fragment shader output" 1821 group vec2 "vec2" 1822 case as_float_float 1823 version 440 core 1824 desc "Write fragment output (vec2) as float float." 1825 output_color vec2 1826 values 1827 { 1828 input vec2 in0 = [ vec2(1.0, 11.0) | vec2(1.0, 9.0) | vec2(13.0, 7.0) | vec2(8.0, 3.0) ]; 1829 output vec2 out0 = [ vec2(2.0, 22.0) | vec2(2.0, 18.0) | vec2(26.0, 14.0) | vec2(16.0, 6.0) ]; 1830 } 1831 vertex "" 1832 #version 440 core 1833 precision highp float; 1834 precision highp int; 1835 layout(location = 0) in vec4 dEQP_Position; 1836 layout(location = 1) in vec2 in0; 1837 layout(location = 0) out vec2 var0; 1838 1839 void main() 1840 { 1841 var0 = in0 + in0; 1842 ${VERTEX_OUTPUT} 1843 } 1844 "" 1845 fragment "" 1846 #version 440 core 1847 precision highp float; 1848 precision highp int; 1849 layout(location = 0) in vec2 var0; 1850 layout(location = 0, component = 0) out float dEQP_FragColor_0; 1851 layout(location = 0, component = 1) out float dEQP_FragColor_1; 1852 1853 void main() 1854 { 1855 vec2 out0 = var0; 1856 out0 /= vec2(255.0); 1857 dEQP_FragColor_0 = out0.x; 1858 dEQP_FragColor_1 = out0.y; 1859 } 1860 "" 1861 end 1862 end 1863 group vec3 "vec3" 1864 case as_float_float_float 1865 version 440 core 1866 desc "Write fragment output (vec3) as float float float." 1867 output_color vec3 1868 values 1869 { 1870 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1871 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1872 } 1873 vertex "" 1874 #version 440 core 1875 precision highp float; 1876 precision highp int; 1877 layout(location = 0) in vec4 dEQP_Position; 1878 layout(location = 1) in vec3 in0; 1879 layout(location = 0) out vec3 var0; 1880 1881 void main() 1882 { 1883 var0 = in0 + in0; 1884 ${VERTEX_OUTPUT} 1885 } 1886 "" 1887 fragment "" 1888 #version 440 core 1889 precision highp float; 1890 precision highp int; 1891 layout(location = 0) in vec3 var0; 1892 layout(location = 0, component = 0) out float dEQP_FragColor_0; 1893 layout(location = 0, component = 1) out float dEQP_FragColor_1; 1894 layout(location = 0, component = 2) out float dEQP_FragColor_2; 1895 1896 void main() 1897 { 1898 vec3 out0 = var0; 1899 out0 /= vec3(31.0, 63.0, 31.0); 1900 dEQP_FragColor_0 = out0.x; 1901 dEQP_FragColor_1 = out0.y; 1902 dEQP_FragColor_2 = out0.z; 1903 } 1904 "" 1905 end 1906 case as_float_vec2 1907 version 440 core 1908 desc "Write fragment output (vec3) as float vec2." 1909 output_color vec3 1910 values 1911 { 1912 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1913 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1914 } 1915 vertex "" 1916 #version 440 core 1917 precision highp float; 1918 precision highp int; 1919 layout(location = 0) in vec4 dEQP_Position; 1920 layout(location = 1) in vec3 in0; 1921 layout(location = 0) out vec3 var0; 1922 1923 void main() 1924 { 1925 var0 = in0 + in0; 1926 ${VERTEX_OUTPUT} 1927 } 1928 "" 1929 fragment "" 1930 #version 440 core 1931 precision highp float; 1932 precision highp int; 1933 layout(location = 0) in vec3 var0; 1934 layout(location = 0, component = 0) out float dEQP_FragColor_0; 1935 layout(location = 0, component = 1) out vec2 dEQP_FragColor_1; 1936 1937 void main() 1938 { 1939 vec3 out0 = var0; 1940 out0 /= vec3(31.0, 63.0, 31.0); 1941 dEQP_FragColor_0 = out0.x; 1942 dEQP_FragColor_1 = out0.yz; 1943 } 1944 "" 1945 end 1946 case as_vec2_float 1947 version 440 core 1948 desc "Write fragment output (vec3) as vec2 float." 1949 output_color vec3 1950 values 1951 { 1952 input vec3 in0 = [ vec3(6.0, 8.0, 7.0) | vec3(14.0, 10.0, 15.0) | vec3(9.0, 5.0, 4.0) | vec3(7.0, 3.0, 1.0) ]; 1953 output vec3 out0 = [ vec3(12.0, 16.0, 14.0) | vec3(28.0, 20.0, 30.0) | vec3(18.0, 10.0, 8.0) | vec3(14.0, 6.0, 2.0) ]; 1954 } 1955 vertex "" 1956 #version 440 core 1957 precision highp float; 1958 precision highp int; 1959 layout(location = 0) in vec4 dEQP_Position; 1960 layout(location = 1) in vec3 in0; 1961 layout(location = 0) out vec3 var0; 1962 1963 void main() 1964 { 1965 var0 = in0 + in0; 1966 ${VERTEX_OUTPUT} 1967 } 1968 "" 1969 fragment "" 1970 #version 440 core 1971 precision highp float; 1972 precision highp int; 1973 layout(location = 0) in vec3 var0; 1974 layout(location = 0, component = 0) out vec2 dEQP_FragColor_0; 1975 layout(location = 0, component = 2) out float dEQP_FragColor_1; 1976 1977 void main() 1978 { 1979 vec3 out0 = var0; 1980 out0 /= vec3(31.0, 63.0, 31.0); 1981 dEQP_FragColor_0 = out0.xy; 1982 dEQP_FragColor_1 = out0.z; 1983 } 1984 "" 1985 end 1986 end 1987 group two_vec4 "two_vec4" 1988 group array_writes "array_writes" 1989 case as_float_vec3-2_float 1990 version 440 core 1991 desc "Write fragment output 0 as float and vec3, output 1 as float and vec3" 1992 output_color vec4 1993 1994 values 1995 { 1996 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 1997 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 1998 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 1999 } 2000 vertex "" 2001 #version 440 core 2002 precision highp float; 2003 precision highp int; 2004 layout(location = 0) in vec4 dEQP_Position; 2005 layout(location = 1) in vec4 in0; 2006 layout(location = 0) out vec4 var0; 2007 layout(location = 1) out vec4 var1; 2008 2009 void main() 2010 { 2011 var0 = in0 + in0; 2012 var1 = in0 + in0 + in0 + in0; 2013 ${VERTEX_OUTPUT} 2014 } 2015 "" 2016 fragment "" 2017 #version 440 core 2018 precision highp float; 2019 precision highp int; 2020 layout(location = 0) in vec4 var0; 2021 layout(location = 1) in vec4 var1; 2022 layout(location = 0, component = 0) out float dEQP_FragColor_0_0; 2023 layout(location = 0, component = 1) out vec3 dEQP_FragColor_0_1[2]; 2024 layout(location = 1, component = 0) out float dEQP_FragColor_1_0; 2025 void main() 2026 { 2027 vec4 out0 = var0; 2028 out0 /= vec4(255.0); 2029 dEQP_FragColor_0_0 = out0.x; 2030 dEQP_FragColor_0_1[0] = out0.yzw; 2031 2032 vec4 out1 = var1; 2033 out1 /= vec4(255.0); 2034 dEQP_FragColor_1_0 = out1.x; 2035 dEQP_FragColor_0_1[1] = out1.yzw; 2036 } 2037 "" 2038 end 2039 case as_vec3-2_float_float 2040 version 440 core 2041 desc "Write fragment output 0 as vec3 and float, output 1 as vec3 and float." 2042 output_color vec4 2043 2044 values 2045 { 2046 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2047 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2048 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 2049 } 2050 vertex "" 2051 #version 440 core 2052 precision highp float; 2053 precision highp int; 2054 layout(location = 0) in vec4 dEQP_Position; 2055 layout(location = 1) in vec4 in0; 2056 layout(location = 0) out vec4 var0; 2057 layout(location = 1) out vec4 var1; 2058 2059 void main() 2060 { 2061 var0 = in0 + in0; 2062 var1 = in0 + in0 + in0 + in0; 2063 ${VERTEX_OUTPUT} 2064 } 2065 "" 2066 fragment "" 2067 #version 440 core 2068 precision highp float; 2069 precision highp int; 2070 layout(location = 0) in vec4 var0; 2071 layout(location = 1) in vec4 var1; 2072 layout(location = 0, component = 0) out vec3 dEQP_FragColor_0_0[2]; 2073 layout(location = 0, component = 3) out float dEQP_FragColor_0_3; 2074 layout(location = 1, component = 3) out float dEQP_FragColor_1_3; 2075 void main() 2076 { 2077 vec4 out0 = var0; 2078 out0 /= vec4(255.0); 2079 dEQP_FragColor_0_0[0] = out0.xyz; 2080 dEQP_FragColor_0_3 = out0.w; 2081 2082 vec4 out1 = var1; 2083 out1 /= vec4(255.0); 2084 dEQP_FragColor_0_0[1] = out1.xyz; 2085 dEQP_FragColor_1_3 = out1.w; 2086 } 2087 "" 2088 end 2089 case as_vec2_vec2-2_vec2 2090 version 440 core 2091 desc "Write fragment output 0 as two vec2, output 1 as two vec2." 2092 output_color vec4 2093 2094 values 2095 { 2096 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2097 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2098 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 2099 } 2100 vertex "" 2101 #version 440 core 2102 precision highp float; 2103 precision highp int; 2104 layout(location = 0) in vec4 dEQP_Position; 2105 layout(location = 1) in vec4 in0; 2106 layout(location = 0) out vec4 var0; 2107 layout(location = 1) out vec4 var1; 2108 2109 void main() 2110 { 2111 var0 = in0 + in0; 2112 var1 = in0 + in0 + in0 + in0; 2113 ${VERTEX_OUTPUT} 2114 } 2115 "" 2116 fragment "" 2117 #version 440 core 2118 precision highp float; 2119 precision highp int; 2120 layout(location = 0) in vec4 var0; 2121 layout(location = 1) in vec4 var1; 2122 layout(location = 0, component = 0) out vec2 dEQP_FragColor_0_0; 2123 layout(location = 0, component = 2) out vec2 dEQP_FragColor_0_2[2]; 2124 layout(location = 1, component = 0) out vec2 dEQP_FragColor_1_0; 2125 void main() 2126 { 2127 vec4 out0 = var0; 2128 out0 /= vec4(255.0); 2129 dEQP_FragColor_0_0 = out0.xy; 2130 dEQP_FragColor_0_2[0] = out0.zw; 2131 2132 vec4 out1 = var1; 2133 out1 /= vec4(255.0); 2134 dEQP_FragColor_1_0 = out1.xy; 2135 dEQP_FragColor_0_2[1] = out1.zw; 2136 } 2137 "" 2138 end 2139 case as_vec2-2_vec2_vec2 2140 version 440 core 2141 desc "Write fragment output 0 as two vec2, output 1 as two vec2." 2142 output_color vec4 2143 2144 values 2145 { 2146 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2147 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2148 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 2149 } 2150 vertex "" 2151 #version 440 core 2152 precision highp float; 2153 precision highp int; 2154 layout(location = 0) in vec4 dEQP_Position; 2155 layout(location = 1) in vec4 in0; 2156 layout(location = 0) out vec4 var0; 2157 layout(location = 1) out vec4 var1; 2158 2159 void main() 2160 { 2161 var0 = in0 + in0; 2162 var1 = in0 + in0 + in0 + in0; 2163 ${VERTEX_OUTPUT} 2164 } 2165 "" 2166 fragment "" 2167 #version 440 core 2168 precision highp float; 2169 precision highp int; 2170 layout(location = 0) in vec4 var0; 2171 layout(location = 1) in vec4 var1; 2172 layout(location = 0, component = 0) out vec2 dEQP_FragColor_0_0[2]; 2173 layout(location = 0, component = 2) out vec2 dEQP_FragColor_0_2; 2174 layout(location = 1, component = 2) out vec2 dEQP_FragColor_1_2; 2175 void main() 2176 { 2177 vec4 out0 = var0; 2178 out0 /= vec4(255.0); 2179 dEQP_FragColor_0_0[0] = out0.xy; 2180 dEQP_FragColor_0_2 = out0.zw; 2181 2182 vec4 out1 = var1; 2183 out1 /= vec4(255.0); 2184 dEQP_FragColor_0_0[1] = out1.xy; 2185 dEQP_FragColor_1_2 = out1.zw; 2186 } 2187 "" 2188 end 2189 case as_float_float-2_vec2-2_float 2190 version 440 core 2191 desc "Write fragment output 0 as two floats and vec2, output 1 as two floats and vec2." 2192 output_color vec4 2193 2194 values 2195 { 2196 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2197 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2198 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 2199 } 2200 vertex "" 2201 #version 440 core 2202 precision highp float; 2203 precision highp int; 2204 layout(location = 0) in vec4 dEQP_Position; 2205 layout(location = 1) in vec4 in0; 2206 layout(location = 0) out vec4 var0; 2207 layout(location = 1) out vec4 var1; 2208 2209 void main() 2210 { 2211 var0 = in0 + in0; 2212 var1 = in0 + in0 + in0 + in0; 2213 ${VERTEX_OUTPUT} 2214 } 2215 "" 2216 fragment "" 2217 #version 440 core 2218 precision highp float; 2219 precision highp int; 2220 layout(location = 0) in vec4 var0; 2221 layout(location = 1) in vec4 var1; 2222 layout(location = 0, component = 0) out float dEQP_FragColor_0_0; 2223 layout(location = 0, component = 1) out float dEQP_FragColor_0_1[2]; 2224 layout(location = 0, component = 2) out vec2 dEQP_FragColor_0_2[2]; 2225 layout(location = 1, component = 0) out float dEQP_FragColor_1_0; 2226 void main() 2227 { 2228 vec4 out0 = var0; 2229 out0 /= vec4(255.0); 2230 dEQP_FragColor_0_0 = out0.x; 2231 dEQP_FragColor_0_1[0] = out0.y; 2232 dEQP_FragColor_0_2[0] = out0.zw; 2233 2234 vec4 out1 = var1; 2235 out1 /= vec4(255.0); 2236 dEQP_FragColor_1_0 = out1.x; 2237 dEQP_FragColor_0_1[1] = out1.y; 2238 dEQP_FragColor_0_2[1] = out1.zw; 2239 } 2240 "" 2241 end 2242 case as_float-2_float-2_float-2_float-2_float-2 2243 version 440 core 2244 desc "Write fragment output 0 as four floats, output 1 as four floats." 2245 output_color vec4 2246 2247 values 2248 { 2249 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2250 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2251 output vec4 out1 = [ vec4(52.0, 8.0, 44.0, 4.0) | vec4(16.0, 52.0, 32.0, 12.0) | vec4(28.0, 20.0, 4.0, 48.0) | vec4(56.0, 60.0, 44.0, 4.0) ]; 2252 } 2253 vertex "" 2254 #version 440 core 2255 precision highp float; 2256 precision highp int; 2257 layout(location = 0) in vec4 dEQP_Position; 2258 layout(location = 1) in vec4 in0; 2259 layout(location = 0) out vec4 var0; 2260 layout(location = 1) out vec4 var1; 2261 2262 void main() 2263 { 2264 var0 = in0 + in0; 2265 var1 = in0 + in0 + in0 + in0; 2266 ${VERTEX_OUTPUT} 2267 } 2268 "" 2269 fragment "" 2270 #version 440 core 2271 precision highp float; 2272 precision highp int; 2273 layout(location = 0) in vec4 var0; 2274 layout(location = 1) in vec4 var1; 2275 layout(location = 0, component = 0) out float dEQP_FragColor_0_0[2]; 2276 layout(location = 0, component = 1) out float dEQP_FragColor_0_1[2]; 2277 layout(location = 0, component = 2) out float dEQP_FragColor_0_2[2]; 2278 layout(location = 0, component = 3) out float dEQP_FragColor_0_3[2]; 2279 void main() 2280 { 2281 vec4 out0 = var0; 2282 out0 /= vec4(255.0); 2283 dEQP_FragColor_0_0[0] = out0.x; 2284 dEQP_FragColor_0_1[0] = out0.y; 2285 dEQP_FragColor_0_2[0] = out0.z; 2286 dEQP_FragColor_0_3[0] = out0.w; 2287 2288 vec4 out1 = var1; 2289 out1 /= vec4(255.0); 2290 dEQP_FragColor_0_0[1] = out1.x; 2291 dEQP_FragColor_0_1[1] = out1.y; 2292 dEQP_FragColor_0_2[1] = out1.z; 2293 dEQP_FragColor_0_3[1] = out1.w; 2294 } 2295 "" 2296 end 2297 end 2298 end 2299 group vec4 "vec4" 2300 case as_float_float_float_float 2301 version 440 core 2302 desc "Write fragment output (vec4) as float float float float." 2303 output_color vec4 2304 values 2305 { 2306 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2307 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2308 } 2309 vertex "" 2310 #version 440 core 2311 precision highp float; 2312 precision highp int; 2313 layout(location = 0) in vec4 dEQP_Position; 2314 layout(location = 1) in vec4 in0; 2315 layout(location = 0) out vec4 var0; 2316 2317 void main() 2318 { 2319 var0 = in0 + in0; 2320 ${VERTEX_OUTPUT} 2321 } 2322 "" 2323 fragment "" 2324 #version 440 core 2325 precision highp float; 2326 precision highp int; 2327 layout(location = 0) in vec4 var0; 2328 layout(location = 0, component = 0) out float dEQP_FragColor_0; 2329 layout(location = 0, component = 1) out float dEQP_FragColor_1; 2330 layout(location = 0, component = 2) out float dEQP_FragColor_2; 2331 layout(location = 0, component = 3) out float dEQP_FragColor_3; 2332 2333 void main() 2334 { 2335 vec4 out0 = var0; 2336 out0 /= vec4(255.0); 2337 dEQP_FragColor_0 = out0.x; 2338 dEQP_FragColor_1 = out0.y; 2339 dEQP_FragColor_2 = out0.z; 2340 dEQP_FragColor_3 = out0.w; 2341 } 2342 "" 2343 end 2344 case as_float_float_vec2 2345 version 440 core 2346 desc "Write fragment output (vec4) as float float vec2." 2347 output_color vec4 2348 values 2349 { 2350 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2351 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2352 } 2353 vertex "" 2354 #version 440 core 2355 precision highp float; 2356 precision highp int; 2357 layout(location = 0) in vec4 dEQP_Position; 2358 layout(location = 1) in vec4 in0; 2359 layout(location = 0) out vec4 var0; 2360 2361 void main() 2362 { 2363 var0 = in0 + in0; 2364 ${VERTEX_OUTPUT} 2365 } 2366 "" 2367 fragment "" 2368 #version 440 core 2369 precision highp float; 2370 precision highp int; 2371 layout(location = 0) in vec4 var0; 2372 layout(location = 0, component = 0) out float dEQP_FragColor_0; 2373 layout(location = 0, component = 1) out float dEQP_FragColor_1; 2374 layout(location = 0, component = 2) out vec2 dEQP_FragColor_2; 2375 2376 void main() 2377 { 2378 vec4 out0 = var0; 2379 out0 /= vec4(255.0); 2380 dEQP_FragColor_0 = out0.x; 2381 dEQP_FragColor_1 = out0.y; 2382 dEQP_FragColor_2 = out0.zw; 2383 } 2384 "" 2385 end 2386 case as_float_vec2_float 2387 version 440 core 2388 desc "Write fragment output (vec4) as float vec2 float." 2389 output_color vec4 2390 values 2391 { 2392 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2393 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2394 } 2395 vertex "" 2396 #version 440 core 2397 precision highp float; 2398 precision highp int; 2399 layout(location = 0) in vec4 dEQP_Position; 2400 layout(location = 1) in vec4 in0; 2401 layout(location = 0) out vec4 var0; 2402 2403 void main() 2404 { 2405 var0 = in0 + in0; 2406 ${VERTEX_OUTPUT} 2407 } 2408 "" 2409 fragment "" 2410 #version 440 core 2411 precision highp float; 2412 precision highp int; 2413 layout(location = 0) in vec4 var0; 2414 layout(location = 0, component = 0) out float dEQP_FragColor_0; 2415 layout(location = 0, component = 1) out vec2 dEQP_FragColor_1; 2416 layout(location = 0, component = 3) out float dEQP_FragColor_2; 2417 2418 void main() 2419 { 2420 vec4 out0 = var0; 2421 out0 /= vec4(255.0); 2422 dEQP_FragColor_0 = out0.x; 2423 dEQP_FragColor_1 = out0.yz; 2424 dEQP_FragColor_2 = out0.w; 2425 } 2426 "" 2427 end 2428 case as_float_vec3 2429 version 440 core 2430 desc "Write fragment output (vec4) as float vec3." 2431 output_color vec4 2432 values 2433 { 2434 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2435 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2436 } 2437 vertex "" 2438 #version 440 core 2439 precision highp float; 2440 precision highp int; 2441 layout(location = 0) in vec4 dEQP_Position; 2442 layout(location = 1) in vec4 in0; 2443 layout(location = 0) out vec4 var0; 2444 2445 void main() 2446 { 2447 var0 = in0 + in0; 2448 ${VERTEX_OUTPUT} 2449 } 2450 "" 2451 fragment "" 2452 #version 440 core 2453 precision highp float; 2454 precision highp int; 2455 layout(location = 0) in vec4 var0; 2456 layout(location = 0, component = 0) out float dEQP_FragColor_0; 2457 layout(location = 0, component = 1) out vec3 dEQP_FragColor_1; 2458 2459 void main() 2460 { 2461 vec4 out0 = var0; 2462 out0 /= vec4(255.0); 2463 dEQP_FragColor_0 = out0.x; 2464 dEQP_FragColor_1 = out0.yzw; 2465 } 2466 "" 2467 end 2468 case as_vec2_float_float 2469 version 440 core 2470 desc "Write fragment output (vec4) as vec2 float float." 2471 output_color vec4 2472 values 2473 { 2474 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2475 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2476 } 2477 vertex "" 2478 #version 440 core 2479 precision highp float; 2480 precision highp int; 2481 layout(location = 0) in vec4 dEQP_Position; 2482 layout(location = 1) in vec4 in0; 2483 layout(location = 0) out vec4 var0; 2484 2485 void main() 2486 { 2487 var0 = in0 + in0; 2488 ${VERTEX_OUTPUT} 2489 } 2490 "" 2491 fragment "" 2492 #version 440 core 2493 precision highp float; 2494 precision highp int; 2495 layout(location = 0) in vec4 var0; 2496 layout(location = 0, component = 0) out vec2 dEQP_FragColor_0; 2497 layout(location = 0, component = 2) out float dEQP_FragColor_1; 2498 layout(location = 0, component = 3) out float dEQP_FragColor_2; 2499 2500 void main() 2501 { 2502 vec4 out0 = var0; 2503 out0 /= vec4(255.0); 2504 dEQP_FragColor_0 = out0.xy; 2505 dEQP_FragColor_1 = out0.z; 2506 dEQP_FragColor_2 = out0.w; 2507 } 2508 "" 2509 end 2510 case as_vec2_vec2 2511 version 440 core 2512 desc "Write fragment output (vec4) as vec2 vec2." 2513 output_color vec4 2514 values 2515 { 2516 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2517 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2518 } 2519 vertex "" 2520 #version 440 core 2521 precision highp float; 2522 precision highp int; 2523 layout(location = 0) in vec4 dEQP_Position; 2524 layout(location = 1) in vec4 in0; 2525 layout(location = 0) out vec4 var0; 2526 2527 void main() 2528 { 2529 var0 = in0 + in0; 2530 ${VERTEX_OUTPUT} 2531 } 2532 "" 2533 fragment "" 2534 #version 440 core 2535 precision highp float; 2536 precision highp int; 2537 layout(location = 0) in vec4 var0; 2538 layout(location = 0, component = 0) out vec2 dEQP_FragColor_0; 2539 layout(location = 0, component = 2) out vec2 dEQP_FragColor_1; 2540 2541 void main() 2542 { 2543 vec4 out0 = var0; 2544 out0 /= vec4(255.0); 2545 dEQP_FragColor_0 = out0.xy; 2546 dEQP_FragColor_1 = out0.zw; 2547 } 2548 "" 2549 end 2550 case as_vec3_float 2551 version 440 core 2552 desc "Write fragment output (vec4) as vec3 float." 2553 output_color vec4 2554 values 2555 { 2556 input vec4 in0 = [ vec4(13.0, 2.0, 11.0, 1.0) | vec4(4.0, 13.0, 8.0, 3.0) | vec4(7.0, 5.0, 1.0, 12.0) | vec4(14.0, 15.0, 11.0, 1.0) ]; 2557 output vec4 out0 = [ vec4(26.0, 4.0, 22.0, 2.0) | vec4(8.0, 26.0, 16.0, 6.0) | vec4(14.0, 10.0, 2.0, 24.0) | vec4(28.0, 30.0, 22.0, 2.0) ]; 2558 } 2559 vertex "" 2560 #version 440 core 2561 precision highp float; 2562 precision highp int; 2563 layout(location = 0) in vec4 dEQP_Position; 2564 layout(location = 1) in vec4 in0; 2565 layout(location = 0) out vec4 var0; 2566 2567 void main() 2568 { 2569 var0 = in0 + in0; 2570 ${VERTEX_OUTPUT} 2571 } 2572 "" 2573 fragment "" 2574 #version 440 core 2575 precision highp float; 2576 precision highp int; 2577 layout(location = 0) in vec4 var0; 2578 layout(location = 0, component = 0) out vec3 dEQP_FragColor_0; 2579 layout(location = 0, component = 3) out float dEQP_FragColor_1; 2580 2581 void main() 2582 { 2583 vec4 out0 = var0; 2584 out0 /= vec4(255.0); 2585 dEQP_FragColor_0 = out0.xyz; 2586 dEQP_FragColor_1 = out0.w; 2587 } 2588 "" 2589 end 2590 end 2591 group ivec2 "ivec2" 2592 case as_int_int 2593 version 440 core 2594 desc "Write fragment output (ivec2) as int int." 2595 output_color ivec2 2596 values 2597 { 2598 input ivec2 in0 = [ ivec2(7, 13) | ivec2(9, 7) | ivec2(13, 1) | ivec2(15, 11) ]; 2599 output ivec2 out0 = [ ivec2(14, 26) | ivec2(18, 14) | ivec2(26, 2) | ivec2(30, 22) ]; 2600 } 2601 vertex "" 2602 #version 440 core 2603 precision highp float; 2604 precision highp int; 2605 layout(location = 0) in vec4 dEQP_Position; 2606 layout(location = 1) in ivec2 in0; 2607 layout(location = 0) out ivec2 var0; 2608 2609 void main() 2610 { 2611 var0 = in0 + in0; 2612 ${VERTEX_OUTPUT} 2613 } 2614 "" 2615 fragment "" 2616 #version 440 core 2617 precision highp float; 2618 precision highp int; 2619 layout(location = 0) flat in ivec2 var0; 2620 layout(location = 0, component = 0) out int dEQP_FragColor_0; 2621 layout(location = 0, component = 1) out int dEQP_FragColor_1; 2622 2623 void main() 2624 { 2625 ivec2 out0 = var0; 2626 dEQP_FragColor_0 = out0.x; 2627 dEQP_FragColor_1 = out0.y; 2628 } 2629 "" 2630 end 2631 end 2632 group ivec4 "ivec4" 2633 case as_int_int_int_int 2634 version 440 core 2635 desc "Write fragment output (ivec4) as int int int int." 2636 output_color ivec4 2637 values 2638 { 2639 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2640 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2641 } 2642 vertex "" 2643 #version 440 core 2644 precision highp float; 2645 precision highp int; 2646 layout(location = 0) in vec4 dEQP_Position; 2647 layout(location = 1) in ivec4 in0; 2648 layout(location = 0) out ivec4 var0; 2649 2650 void main() 2651 { 2652 var0 = in0 + in0; 2653 ${VERTEX_OUTPUT} 2654 } 2655 "" 2656 fragment "" 2657 #version 440 core 2658 precision highp float; 2659 precision highp int; 2660 layout(location = 0) flat in ivec4 var0; 2661 layout(location = 0, component = 0) out int dEQP_FragColor_0; 2662 layout(location = 0, component = 1) out int dEQP_FragColor_1; 2663 layout(location = 0, component = 2) out int dEQP_FragColor_2; 2664 layout(location = 0, component = 3) out int dEQP_FragColor_3; 2665 2666 void main() 2667 { 2668 ivec4 out0 = var0; 2669 dEQP_FragColor_0 = out0.x; 2670 dEQP_FragColor_1 = out0.y; 2671 dEQP_FragColor_2 = out0.z; 2672 dEQP_FragColor_3 = out0.w; 2673 } 2674 "" 2675 end 2676 case as_int_int_ivec2 2677 version 440 core 2678 desc "Write fragment output (ivec4) as int int ivec2." 2679 output_color ivec4 2680 values 2681 { 2682 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2683 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2684 } 2685 vertex "" 2686 #version 440 core 2687 precision highp float; 2688 precision highp int; 2689 layout(location = 0) in vec4 dEQP_Position; 2690 layout(location = 1) in ivec4 in0; 2691 layout(location = 0) out ivec4 var0; 2692 2693 void main() 2694 { 2695 var0 = in0 + in0; 2696 ${VERTEX_OUTPUT} 2697 } 2698 "" 2699 fragment "" 2700 #version 440 core 2701 precision highp float; 2702 precision highp int; 2703 layout(location = 0) flat in ivec4 var0; 2704 layout(location = 0, component = 0) out int dEQP_FragColor_0; 2705 layout(location = 0, component = 1) out int dEQP_FragColor_1; 2706 layout(location = 0, component = 2) out ivec2 dEQP_FragColor_2; 2707 2708 void main() 2709 { 2710 ivec4 out0 = var0; 2711 dEQP_FragColor_0 = out0.x; 2712 dEQP_FragColor_1 = out0.y; 2713 dEQP_FragColor_2 = out0.zw; 2714 } 2715 "" 2716 end 2717 case as_int_ivec2_int 2718 version 440 core 2719 desc "Write fragment output (ivec4) as int ivec2 int." 2720 output_color ivec4 2721 values 2722 { 2723 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2724 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2725 } 2726 vertex "" 2727 #version 440 core 2728 precision highp float; 2729 precision highp int; 2730 layout(location = 0) in vec4 dEQP_Position; 2731 layout(location = 1) in ivec4 in0; 2732 layout(location = 0) out ivec4 var0; 2733 2734 void main() 2735 { 2736 var0 = in0 + in0; 2737 ${VERTEX_OUTPUT} 2738 } 2739 "" 2740 fragment "" 2741 #version 440 core 2742 precision highp float; 2743 precision highp int; 2744 layout(location = 0) flat in ivec4 var0; 2745 layout(location = 0, component = 0) out int dEQP_FragColor_0; 2746 layout(location = 0, component = 1) out ivec2 dEQP_FragColor_1; 2747 layout(location = 0, component = 3) out int dEQP_FragColor_2; 2748 2749 void main() 2750 { 2751 ivec4 out0 = var0; 2752 dEQP_FragColor_0 = out0.x; 2753 dEQP_FragColor_1 = out0.yz; 2754 dEQP_FragColor_2 = out0.w; 2755 } 2756 "" 2757 end 2758 case as_int_ivec3 2759 version 440 core 2760 desc "Write fragment output (ivec4) as int ivec3." 2761 output_color ivec4 2762 values 2763 { 2764 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2765 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2766 } 2767 vertex "" 2768 #version 440 core 2769 precision highp float; 2770 precision highp int; 2771 layout(location = 0) in vec4 dEQP_Position; 2772 layout(location = 1) in ivec4 in0; 2773 layout(location = 0) out ivec4 var0; 2774 2775 void main() 2776 { 2777 var0 = in0 + in0; 2778 ${VERTEX_OUTPUT} 2779 } 2780 "" 2781 fragment "" 2782 #version 440 core 2783 precision highp float; 2784 precision highp int; 2785 layout(location = 0) flat in ivec4 var0; 2786 layout(location = 0, component = 0) out int dEQP_FragColor_0; 2787 layout(location = 0, component = 1) out ivec3 dEQP_FragColor_1; 2788 2789 void main() 2790 { 2791 ivec4 out0 = var0; 2792 dEQP_FragColor_0 = out0.x; 2793 dEQP_FragColor_1 = out0.yzw; 2794 } 2795 "" 2796 end 2797 case as_ivec2_int_int 2798 version 440 core 2799 desc "Write fragment output (ivec4) as ivec2 int int." 2800 output_color ivec4 2801 values 2802 { 2803 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2804 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2805 } 2806 vertex "" 2807 #version 440 core 2808 precision highp float; 2809 precision highp int; 2810 layout(location = 0) in vec4 dEQP_Position; 2811 layout(location = 1) in ivec4 in0; 2812 layout(location = 0) out ivec4 var0; 2813 2814 void main() 2815 { 2816 var0 = in0 + in0; 2817 ${VERTEX_OUTPUT} 2818 } 2819 "" 2820 fragment "" 2821 #version 440 core 2822 precision highp float; 2823 precision highp int; 2824 layout(location = 0) flat in ivec4 var0; 2825 layout(location = 0, component = 0) out ivec2 dEQP_FragColor_0; 2826 layout(location = 0, component = 2) out int dEQP_FragColor_1; 2827 layout(location = 0, component = 3) out int dEQP_FragColor_2; 2828 2829 void main() 2830 { 2831 ivec4 out0 = var0; 2832 dEQP_FragColor_0 = out0.xy; 2833 dEQP_FragColor_1 = out0.z; 2834 dEQP_FragColor_2 = out0.w; 2835 } 2836 "" 2837 end 2838 case as_ivec2_ivec2 2839 version 440 core 2840 desc "Write fragment output (ivec4) as ivec2 ivec2." 2841 output_color ivec4 2842 values 2843 { 2844 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2845 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2846 } 2847 vertex "" 2848 #version 440 core 2849 precision highp float; 2850 precision highp int; 2851 layout(location = 0) in vec4 dEQP_Position; 2852 layout(location = 1) in ivec4 in0; 2853 layout(location = 0) out ivec4 var0; 2854 2855 void main() 2856 { 2857 var0 = in0 + in0; 2858 ${VERTEX_OUTPUT} 2859 } 2860 "" 2861 fragment "" 2862 #version 440 core 2863 precision highp float; 2864 precision highp int; 2865 layout(location = 0) flat in ivec4 var0; 2866 layout(location = 0, component = 0) out ivec2 dEQP_FragColor_0; 2867 layout(location = 0, component = 2) out ivec2 dEQP_FragColor_1; 2868 2869 void main() 2870 { 2871 ivec4 out0 = var0; 2872 dEQP_FragColor_0 = out0.xy; 2873 dEQP_FragColor_1 = out0.zw; 2874 } 2875 "" 2876 end 2877 case as_ivec3_int 2878 version 440 core 2879 desc "Write fragment output (ivec4) as ivec3 int." 2880 output_color ivec4 2881 values 2882 { 2883 input ivec4 in0 = [ ivec4(2, 4, 13, 12) | ivec4(7, 3, 2, 11) | ivec4(6, 2, 9, 5) | ivec4(10, 15, 1, 9) ]; 2884 output ivec4 out0 = [ ivec4(4, 8, 26, 24) | ivec4(14, 6, 4, 22) | ivec4(12, 4, 18, 10) | ivec4(20, 30, 2, 18) ]; 2885 } 2886 vertex "" 2887 #version 440 core 2888 precision highp float; 2889 precision highp int; 2890 layout(location = 0) in vec4 dEQP_Position; 2891 layout(location = 1) in ivec4 in0; 2892 layout(location = 0) out ivec4 var0; 2893 2894 void main() 2895 { 2896 var0 = in0 + in0; 2897 ${VERTEX_OUTPUT} 2898 } 2899 "" 2900 fragment "" 2901 #version 440 core 2902 precision highp float; 2903 precision highp int; 2904 layout(location = 0) flat in ivec4 var0; 2905 layout(location = 0, component = 0) out ivec3 dEQP_FragColor_0; 2906 layout(location = 0, component = 3) out int dEQP_FragColor_1; 2907 2908 void main() 2909 { 2910 ivec4 out0 = var0; 2911 dEQP_FragColor_0 = out0.xyz; 2912 dEQP_FragColor_1 = out0.w; 2913 } 2914 "" 2915 end 2916 end 2917 end 2918 end 2919end 2920