OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/command_buffer/service/feature_info.h" | 5 #include "gpu/command_buffer/service/feature_info.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "gpu/command_buffer/service/gpu_service_test.h" | 10 #include "gpu/command_buffer/service/gpu_service_test.h" |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 EXPECT_FALSE(info_->validators()->texture_format.IsValid( | 426 EXPECT_FALSE(info_->validators()->texture_format.IsValid( |
427 GL_BGRA_EXT)); | 427 GL_BGRA_EXT)); |
428 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( | 428 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
429 GL_BGRA_EXT)); | 429 GL_BGRA_EXT)); |
430 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( | 430 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( |
431 GL_BGRA_EXT)); | 431 GL_BGRA_EXT)); |
432 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid( | 432 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid( |
433 GL_BGRA8_EXT)); | 433 GL_BGRA8_EXT)); |
434 } | 434 } |
435 | 435 |
| 436 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage) { |
| 437 SetupInitExpectations("GL_EXT_texture_storage"); |
| 438 EXPECT_TRUE(info_->feature_flags().ext_texture_storage); |
| 439 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 440 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( |
| 441 GL_TEXTURE_IMMUTABLE_FORMAT_EXT)); |
| 442 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 443 GL_BGRA8_EXT)); |
| 444 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 445 GL_RGBA32F_EXT)); |
| 446 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 447 GL_RGB32F_EXT)); |
| 448 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 449 GL_ALPHA32F_EXT)); |
| 450 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 451 GL_LUMINANCE32F_EXT)); |
| 452 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 453 GL_LUMINANCE_ALPHA32F_EXT)); |
| 454 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 455 GL_RGBA16F_EXT)); |
| 456 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 457 GL_RGB16F_EXT)); |
| 458 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 459 GL_ALPHA16F_EXT)); |
| 460 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 461 GL_LUMINANCE16F_EXT)); |
| 462 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 463 GL_LUMINANCE_ALPHA16F_EXT)); |
| 464 } |
| 465 |
| 466 TEST_F(FeatureInfoTest, InitializeARB_texture_storage) { |
| 467 SetupInitExpectations("GL_ARB_texture_storage"); |
| 468 EXPECT_TRUE(info_->feature_flags().ext_texture_storage); |
| 469 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 470 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( |
| 471 GL_TEXTURE_IMMUTABLE_FORMAT_EXT)); |
| 472 } |
| 473 |
| 474 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BGRA) { |
| 475 SetupInitExpectations("GL_EXT_texture_storage GL_EXT_bgra"); |
| 476 EXPECT_TRUE(info_->feature_flags().ext_texture_storage); |
| 477 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 478 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 479 GL_BGRA8_EXT)); |
| 480 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 481 } |
| 482 |
| 483 TEST_F(FeatureInfoTest, InitializeARB_texture_storage_BGRA) { |
| 484 SetupInitExpectations("GL_ARB_texture_storage GL_EXT_bgra"); |
| 485 EXPECT_TRUE(info_->feature_flags().ext_texture_storage); |
| 486 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 487 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 488 GL_BGRA8_EXT)); |
| 489 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 490 } |
| 491 |
| 492 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BGRA8888) { |
| 493 SetupInitExpectations( |
| 494 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888"); |
| 495 EXPECT_TRUE(info_->feature_flags().ext_texture_storage); |
| 496 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 497 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 498 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 499 GL_BGRA8_EXT)); |
| 500 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 501 } |
| 502 |
| 503 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_float) { |
| 504 SetupInitExpectations("GL_EXT_texture_storage GL_OES_texture_float"); |
| 505 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 506 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); |
| 507 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 508 GL_RGBA32F_EXT)); |
| 509 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 510 GL_RGB32F_EXT)); |
| 511 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 512 GL_ALPHA32F_EXT)); |
| 513 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 514 GL_LUMINANCE32F_EXT)); |
| 515 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 516 GL_LUMINANCE_ALPHA32F_EXT)); |
| 517 } |
| 518 |
| 519 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_half_float) { |
| 520 SetupInitExpectations("GL_EXT_texture_storage GL_OES_texture_half_float"); |
| 521 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 522 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); |
| 523 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 524 GL_RGBA16F_EXT)); |
| 525 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 526 GL_RGB16F_EXT)); |
| 527 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 528 GL_ALPHA16F_EXT)); |
| 529 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 530 GL_LUMINANCE16F_EXT)); |
| 531 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid( |
| 532 GL_LUMINANCE_ALPHA16F_EXT)); |
| 533 } |
| 534 |
| 535 // Check how to handle ES, texture_storage and BGRA combination; 8 tests. |
| 536 |
| 537 // 1- ES2 + GL_EXT_texture_storage -> GL_EXT_texture_storage (and no |
| 538 // GL_EXT_texture_format_BGRA8888 - we don't claim to handle GL_BGRA8 in |
| 539 // glTexStorage2DEXT) |
| 540 TEST_F(FeatureInfoTest, InitializeGLES2_texture_storage) { |
| 541 SetupInitExpectationsWithGLVersion( |
| 542 "GL_EXT_texture_storage", "", "OpenGL ES 2.0"); |
| 543 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 544 EXPECT_THAT(info_->extensions(), |
| 545 Not(HasSubstr("GL_EXT_texture_format_BGRA8888"))); |
| 546 } |
| 547 |
| 548 // 2- ES2 + GL_EXT_texture_storage + (GL_EXT_texture_format_BGRA8888 or |
| 549 // GL_APPLE_texture_format_bgra8888) |
| 550 TEST_F(FeatureInfoTest, InitializeGLES2_texture_storage_BGRA) { |
| 551 SetupInitExpectationsWithGLVersion( |
| 552 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888", |
| 553 "", |
| 554 "OpenGL ES 2.0"); |
| 555 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 556 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 557 } |
| 558 |
| 559 // 3- ES2 + GL_EXT_texture_format_BGRA8888 or GL_APPLE_texture_format_bgra8888 |
| 560 TEST_F(FeatureInfoTest, InitializeGLES2_texture_format_BGRA) { |
| 561 SetupInitExpectationsWithGLVersion( |
| 562 "GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 2.0"); |
| 563 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage"))); |
| 564 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 565 } |
| 566 |
| 567 // 4- ES2 (neither GL_EXT_texture_storage nor GL_EXT_texture_format_BGRA8888) -> |
| 568 // nothing |
| 569 TEST_F(FeatureInfoTest, InitializeGLES2_neither_texture_storage_nor_BGRA) { |
| 570 SetupInitExpectationsWithGLVersion("", "", "OpenGL ES 2.0"); |
| 571 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage"))); |
| 572 EXPECT_THAT(info_->extensions(), |
| 573 Not(HasSubstr("GL_EXT_texture_format_BGRA8888"))); |
| 574 } |
| 575 |
| 576 // 5- ES3 + GL_EXT_texture_format_BGRA8888 -> GL_EXT_texture_format_BGRA8888 |
| 577 // (we can't expose GL_EXT_texture_storage because we fail the GL_BGRA8 |
| 578 // requirement) |
| 579 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage_EXT_BGRA) { |
| 580 SetupInitExpectationsWithGLVersion( |
| 581 "GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 3.0"); |
| 582 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage"))); |
| 583 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 584 } |
| 585 |
| 586 // 6- ES3 + GL_APPLE_texture_format_bgra8888 -> GL_EXT_texture_storage + |
| 587 // GL_EXT_texture_format_BGRA8888 (driver promises to handle GL_BGRA8 by |
| 588 // exposing GL_APPLE_texture_format_bgra8888) |
| 589 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage_APPLE_BGRA) { |
| 590 SetupInitExpectationsWithGLVersion( |
| 591 "GL_APPLE_texture_format_BGRA8888", "", "OpenGL ES 3.0"); |
| 592 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 593 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 594 } |
| 595 |
| 596 // 7- ES3 + GL_EXT_texture_storage + GL_EXT_texture_format_BGRA8888 -> |
| 597 // GL_EXT_texture_storage + GL_EXT_texture_format_BGRA8888 (driver promises to |
| 598 // handle GL_BGRA8 by exposing GL_EXT_texture_storage) |
| 599 TEST_F(FeatureInfoTest, InitializeGLES3_EXT_texture_storage_EXT_BGRA) { |
| 600 SetupInitExpectationsWithGLVersion( |
| 601 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888", |
| 602 "", |
| 603 "OpenGL ES 3.0"); |
| 604 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 605 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 606 } |
| 607 |
| 608 // 8- ES3 + none of the above -> GL_EXT_texture_storage (and no |
| 609 // GL_EXT_texture_format_BGRA8888 - we don't claim to handle GL_BGRA8) |
| 610 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage) { |
| 611 SetupInitExpectationsWithGLVersion("", "", "OpenGL ES 3.0"); |
| 612 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage")); |
| 613 EXPECT_THAT(info_->extensions(), |
| 614 Not(HasSubstr("GL_EXT_texture_format_BGRA8888"))); |
| 615 } |
| 616 |
436 TEST_F(FeatureInfoTest, InitializeARB_texture_float) { | 617 TEST_F(FeatureInfoTest, InitializeARB_texture_float) { |
437 SetupInitExpectations("GL_ARB_texture_float"); | 618 SetupInitExpectations("GL_ARB_texture_float"); |
438 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba); | 619 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba); |
439 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb); | 620 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb); |
440 std::string extensions = info_->extensions() + " "; | 621 std::string extensions = info_->extensions() + " "; |
441 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb ")); | 622 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb ")); |
442 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba")); | 623 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba")); |
443 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 624 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
444 GL_RGBA32F)); | 625 GL_RGBA32F)); |
445 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 626 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 | 1276 |
1096 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { | 1277 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { |
1097 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3"); | 1278 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3"); |
1098 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); | 1279 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); |
1099 EXPECT_THAT(info_->extensions(), | 1280 EXPECT_THAT(info_->extensions(), |
1100 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); | 1281 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); |
1101 } | 1282 } |
1102 | 1283 |
1103 } // namespace gles2 | 1284 } // namespace gles2 |
1104 } // namespace gpu | 1285 } // namespace gpu |
OLD | NEW |