Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: gpu/command_buffer/service/texture_manager_unittest.cc

Issue 1505343003: Updating texture validation to account for sampler objects in ES3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed DCHECK that was causing bots to fail Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/texture_manager.h" 5 #include "gpu/command_buffer/service/texture_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 const GLint TextureManagerTest::kMaxExternalTextureSize; 126 const GLint TextureManagerTest::kMaxExternalTextureSize;
127 const GLint TextureManagerTest::kMax2dLevels; 127 const GLint TextureManagerTest::kMax2dLevels;
128 const GLint TextureManagerTest::kMaxCubeMapLevels; 128 const GLint TextureManagerTest::kMaxCubeMapLevels;
129 const GLint TextureManagerTest::kMaxExternalLevels; 129 const GLint TextureManagerTest::kMaxExternalLevels;
130 #endif 130 #endif
131 131
132 TEST_F(TextureManagerTest, Basic) { 132 TEST_F(TextureManagerTest, Basic) {
133 const GLuint kClient1Id = 1; 133 const GLuint kClient1Id = 1;
134 const GLuint kService1Id = 11; 134 const GLuint kService1Id = 11;
135 const GLuint kClient2Id = 2; 135 const GLuint kClient2Id = 2;
136 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 136 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
137 EXPECT_FALSE(manager_->HaveUnsafeTextures()); 137 EXPECT_FALSE(manager_->HaveUnsafeTextures());
138 EXPECT_FALSE(manager_->HaveUnclearedMips()); 138 EXPECT_FALSE(manager_->HaveUnclearedMips());
139 // Check we can create texture. 139 // Check we can create texture.
140 manager_->CreateTexture(kClient1Id, kService1Id); 140 manager_->CreateTexture(kClient1Id, kService1Id);
141 // Check texture got created. 141 // Check texture got created.
142 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id); 142 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id);
143 ASSERT_TRUE(texture.get() != NULL); 143 ASSERT_TRUE(texture.get() != NULL);
144 EXPECT_EQ(kService1Id, texture->service_id()); 144 EXPECT_EQ(kService1Id, texture->service_id());
145 EXPECT_EQ(kClient1Id, texture->client_id()); 145 EXPECT_EQ(kClient1Id, texture->client_id());
146 EXPECT_EQ(texture->texture(), manager_->GetTextureForServiceId( 146 EXPECT_EQ(texture->texture(), manager_->GetTextureForServiceId(
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 564 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
565 EXPECT_EQ(0, texture->num_uncleared_mips()); 565 EXPECT_EQ(0, texture->num_uncleared_mips());
566 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 566 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
567 EXPECT_TRUE(texture->SafeToRenderFrom()); 567 EXPECT_TRUE(texture->SafeToRenderFrom());
568 EXPECT_FALSE(texture->IsImmutable()); 568 EXPECT_FALSE(texture->IsImmutable());
569 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), 569 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR),
570 texture->min_filter()); 570 texture->min_filter());
571 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter()); 571 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter());
572 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s()); 572 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s());
573 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t()); 573 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t());
574 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 574 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
575 EXPECT_FALSE(manager_->HaveUnsafeTextures()); 575 EXPECT_FALSE(manager_->HaveUnsafeTextures());
576 EXPECT_EQ(0u, texture->estimated_size()); 576 EXPECT_EQ(0u, texture->estimated_size());
577 } 577 }
578 578
579 TEST_F(TextureTest, SetTargetTexture2D) { 579 TEST_F(TextureTest, SetTargetTexture2D) {
580 Texture* texture = texture_ref_->texture(); 580 Texture* texture = texture_ref_->texture();
581 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 581 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
582 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 582 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
583 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 583 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
584 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 584 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 639 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
640 Texture* texture = texture_ref_->texture(); 640 Texture* texture = texture_ref_->texture();
641 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 641 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
642 // Check Setting level 0 to POT 642 // Check Setting level 0 to POT
643 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 643 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1,
644 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 644 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
645 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 645 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
646 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 646 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
647 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 647 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
648 EXPECT_TRUE(texture->SafeToRenderFrom()); 648 EXPECT_TRUE(texture->SafeToRenderFrom());
649 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 649 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
650 // Set filters to something that will work with a single mip. 650 // Set filters to something that will work with a single mip.
651 SetParameter( 651 SetParameter(
652 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); 652 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR);
653 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 653 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
654 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 654 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
655 // Set them back. 655 // Set them back.
656 SetParameter(texture_ref_.get(), 656 SetParameter(texture_ref_.get(),
657 GL_TEXTURE_MIN_FILTER, 657 GL_TEXTURE_MIN_FILTER,
658 GL_LINEAR_MIPMAP_LINEAR, 658 GL_LINEAR_MIPMAP_LINEAR,
659 GL_NO_ERROR); 659 GL_NO_ERROR);
660 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 660 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
661 661
662 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 662 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
663 // Make mips. 663 // Make mips.
664 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 664 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
665 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 665 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
666 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 666 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
667 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 667 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
668 // Change a mip. 668 // Change a mip.
669 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 669 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1,
670 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 670 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
671 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 671 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
672 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 672 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
673 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 673 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
674 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 674 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
675 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 675 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
676 // Set a level past the number of mips that would get generated. 676 // Set a level past the number of mips that would get generated.
677 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 677 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1,
678 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 678 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
679 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 679 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
680 // Make mips. 680 // Make mips.
681 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 681 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
682 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 682 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
683 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 683 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
684 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 684 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
685 } 685 }
686 686
687 TEST_F(TextureTest, BaseLevel) { 687 TEST_F(TextureTest, BaseLevel) {
688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
689 Texture* texture = texture_ref_->texture(); 689 Texture* texture = texture_ref_->texture();
690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
691 // Check Setting level 1 to POT 691 // Check Setting level 1 to POT
692 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 692 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1,
693 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 693 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
694 SetParameter( 694 SetParameter(
695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); 695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR);
696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
697 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 697 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
698 SetParameter( 698 SetParameter(
699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR); 699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR);
700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
701 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 701 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
702 } 702 }
703 703
704 TEST_F(TextureTest, BaseLevelMaxLevel) { 704 TEST_F(TextureTest, BaseLevelMaxLevel) {
705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
706 Texture* texture = texture_ref_->texture(); 706 Texture* texture = texture_ref_->texture();
707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
708 // Set up level 2, 3, 4. 708 // Set up level 2, 3, 4.
709 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 1, 709 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 1,
710 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 8)); 710 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 8));
711 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 711 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1,
712 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 712 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
713 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 1, 713 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 1,
714 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); 714 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
715 SetParameter( 715 SetParameter(
716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR, 716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR,
717 GL_NO_ERROR); 717 GL_NO_ERROR);
718 SetParameter( 718 SetParameter(
719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); 719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR);
720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
721 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 721 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
722 SetParameter( 722 SetParameter(
723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR); 723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR);
724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
725 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 725 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
726 SetParameter( 726 SetParameter(
727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR); 727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR);
728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
729 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 729 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
730 SetParameter( 730 SetParameter(
731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR); 731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR);
732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
733 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 733 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
734 } 734 }
735 735
736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { 736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) {
737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); 738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64);
739 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 739 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1,
740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); 741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0);
742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); 742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84);
743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); 744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0);
745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); 745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0);
746 } 746 }
747 747
748 TEST_F(TextureTest, UnusedMips) { 748 TEST_F(TextureTest, UnusedMips) {
749 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 749 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
750 Texture* texture = texture_ref_->texture(); 750 Texture* texture = texture_ref_->texture();
751 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 751 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
752 // Set level zero to large size. 752 // Set level zero to large size.
753 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 753 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1,
754 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 754 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
755 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 755 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
756 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 756 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
757 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 757 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
758 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 758 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
759 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 759 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
760 // Set level zero to large smaller (levels unused mips) 760 // Set level zero to large smaller (levels unused mips)
761 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 761 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1,
762 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); 762 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
763 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 763 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
764 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 764 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
765 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 765 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
766 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 766 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
767 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 767 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
768 // Set an unused level to some size 768 // Set an unused level to some size
769 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 769 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16,
770 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); 770 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16));
771 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 771 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
772 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 772 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
773 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 773 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
774 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 774 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
775 } 775 }
776 776
777 TEST_F(TextureTest, NPOT2D) { 777 TEST_F(TextureTest, NPOT2D) {
778 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 778 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
779 Texture* texture = texture_ref_->texture(); 779 Texture* texture = texture_ref_->texture();
780 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 780 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
781 // Check Setting level 0 to NPOT 781 // Check Setting level 0 to NPOT
782 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 782 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1,
783 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); 783 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
784 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); 784 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture));
785 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 785 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
787 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 787 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
788 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 788 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
789 SetParameter( 789 SetParameter(
790 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); 790 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR);
791 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 791 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
792 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 792 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
793 SetParameter( 793 SetParameter(
794 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); 794 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR);
795 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 795 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
796 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 796 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
797 SetParameter( 797 SetParameter(
798 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); 798 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR);
799 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 799 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
800 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 800 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
801 // Change it to POT. 801 // Change it to POT.
802 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 802 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1,
803 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 803 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
804 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 804 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
805 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 805 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
806 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 806 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
807 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 807 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
808 } 808 }
809 809
810 TEST_F(TextureTest, NPOT2DNPOTOK) { 810 TEST_F(TextureTest, NPOT2DNPOTOK) {
811 TestHelper::SetupFeatureInfoInitExpectations( 811 TestHelper::SetupFeatureInfoInitExpectations(
812 gl_.get(), "GL_OES_texture_npot"); 812 gl_.get(), "GL_OES_texture_npot");
813 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 813 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
814 feature_info->InitializeForTesting(); 814 feature_info->InitializeForTesting();
815 TextureManager manager(NULL, 815 TextureManager manager(NULL,
816 feature_info.get(), 816 feature_info.get(),
817 kMaxTextureSize, 817 kMaxTextureSize,
818 kMaxCubeMapTextureSize, 818 kMaxCubeMapTextureSize,
819 kMaxRectangleTextureSize, 819 kMaxRectangleTextureSize,
820 kMax3DTextureSize, 820 kMax3DTextureSize,
821 kUseDefaultTextures); 821 kUseDefaultTextures);
822 manager.CreateTexture(kClient1Id, kService1Id); 822 manager.CreateTexture(kClient1Id, kService1Id);
823 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 823 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
824 ASSERT_TRUE(texture_ref != NULL); 824 ASSERT_TRUE(texture_ref != NULL);
825 Texture* texture = texture_ref->texture(); 825 Texture* texture = texture_ref->texture();
826 826
827 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 827 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
828 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 828 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
829 // Check Setting level 0 to NPOT 829 // Check Setting level 0 to NPOT
830 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, 830 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0,
831 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); 831 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
832 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); 832 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture));
833 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 833 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
834 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); 834 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref));
835 EXPECT_FALSE(manager.CanRender(texture_ref)); 835 EXPECT_FALSE(manager.CanRender(texture_ref));
836 EXPECT_TRUE(manager.HaveUnrenderableTextures()); 836 EXPECT_TRUE(manager.NeedsTextureRenderChecks());
837 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref)); 837 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref));
838 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 838 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
839 EXPECT_TRUE(manager.CanRender(texture_ref)); 839 EXPECT_TRUE(manager.CanRender(texture_ref));
840 EXPECT_FALSE(manager.HaveUnrenderableTextures()); 840 EXPECT_FALSE(manager.NeedsTextureRenderChecks());
841 manager.Destroy(false); 841 manager.Destroy(false);
842 } 842 }
843 843
844 TEST_F(TextureTest, POTCubeMap) { 844 TEST_F(TextureTest, POTCubeMap) {
845 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); 845 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP);
846 Texture* texture = texture_ref_->texture(); 846 Texture* texture = texture_ref_->texture();
847 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); 847 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target());
848 // Check Setting level 0 each face to POT 848 // Check Setting level 0 each face to POT
849 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, 849 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0,
850 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 850 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
851 gfx::Rect(4, 4)); 851 gfx::Rect(4, 4));
852 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 852 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
853 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 853 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
854 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 854 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
855 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 855 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
856 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 856 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
857 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 857 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
858 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, 858 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0,
859 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 859 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
860 gfx::Rect(4, 4)); 860 gfx::Rect(4, 4));
861 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 861 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
862 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 862 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
863 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 863 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
864 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 864 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
865 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 865 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
866 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 866 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
867 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, 867 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0,
868 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 868 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
869 gfx::Rect(4, 4)); 869 gfx::Rect(4, 4));
870 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 870 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
871 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 871 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
872 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 872 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
873 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 873 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
874 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 874 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
875 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 875 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
876 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, 876 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0,
877 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 877 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
878 gfx::Rect(4, 4)); 878 gfx::Rect(4, 4));
879 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 879 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
880 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 880 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
881 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 881 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
882 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 882 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
883 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 883 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
884 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 884 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
885 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, 885 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0,
886 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 886 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
887 gfx::Rect(4, 4)); 887 gfx::Rect(4, 4));
888 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 888 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
889 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 889 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
890 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 890 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
891 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 891 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
892 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 892 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
893 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 893 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
894 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, 894 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0,
895 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 895 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
896 gfx::Rect(4, 4)); 896 gfx::Rect(4, 4));
897 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 897 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
898 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 898 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
899 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 899 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
900 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 900 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
901 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 901 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
902 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 902 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
903 903
904 // Make mips. 904 // Make mips.
905 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 905 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
906 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 906 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
907 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 907 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
908 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 908 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
909 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 909 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
910 910
911 // Change a mip. 911 // Change a mip.
912 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 912 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1,
913 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 913 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
914 gfx::Rect(4, 4)); 914 gfx::Rect(4, 4));
915 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 915 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
916 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 916 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
917 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 917 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
918 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 918 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
919 // Set a level past the number of mips that would get generated. 919 // Set a level past the number of mips that would get generated.
(...skipping 22 matching lines...) Expand all
942 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); 942 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target());
943 // Check Setting level 0 each face to POT 943 // Check Setting level 0 each face to POT
944 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, 944 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0,
945 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 945 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
946 gfx::Rect(4, 4)); 946 gfx::Rect(4, 4));
947 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 947 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
948 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 948 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
949 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 949 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
950 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 950 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
951 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 951 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
952 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 952 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
953 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, 953 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0,
954 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 954 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
955 gfx::Rect(4, 4)); 955 gfx::Rect(4, 4));
956 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 956 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
957 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 957 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
958 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 958 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
959 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 959 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
960 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 960 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
961 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 961 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
962 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, 962 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0,
963 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 963 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
964 gfx::Rect(4, 4)); 964 gfx::Rect(4, 4));
965 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 965 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
966 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 966 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
967 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 967 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
968 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 968 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
969 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 969 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
970 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 970 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
971 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, 971 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0,
972 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 972 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
973 gfx::Rect(4, 4)); 973 gfx::Rect(4, 4));
974 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 974 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
975 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 975 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
976 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 976 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
977 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 977 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
978 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 978 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
979 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 979 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
980 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, 980 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0,
981 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 981 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
982 gfx::Rect(4, 4)); 982 gfx::Rect(4, 4));
983 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 983 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
984 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 984 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
985 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); 985 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture));
986 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); 986 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get()));
987 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 987 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
988 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 988 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
989 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, 989 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0,
990 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 990 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
991 gfx::Rect(4, 4)); 991 gfx::Rect(4, 4));
992 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 992 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
993 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 993 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
994 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 994 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
995 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 995 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
996 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 996 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
997 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 997 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
998 } 998 }
999 999
1000 TEST_F(TextureTest, GetLevelSize) { 1000 TEST_F(TextureTest, GetLevelSize) {
1001 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_3D); 1001 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_3D);
1002 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_3D, 1, GL_RGBA, 4, 5, 6, 1002 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_3D, 1, GL_RGBA, 4, 5, 6,
1003 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); 1003 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
1004 GLsizei width = -1; 1004 GLsizei width = -1;
1005 GLsizei height = -1; 1005 GLsizei height = -1;
1006 GLsizei depth = -1; 1006 GLsizei depth = -1;
1007 Texture* texture = texture_ref_->texture(); 1007 Texture* texture = texture_ref_->texture();
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 EXPECT_EQ(0, texture->num_uncleared_mips()); 1402 EXPECT_EQ(0, texture->num_uncleared_mips());
1403 } 1403 }
1404 1404
1405 TEST_F(TextureTest, UseDeletedTexture) { 1405 TEST_F(TextureTest, UseDeletedTexture) {
1406 static const GLuint kClient2Id = 2; 1406 static const GLuint kClient2Id = 2;
1407 static const GLuint kService2Id = 12; 1407 static const GLuint kService2Id = 12;
1408 // Make the default texture renderable 1408 // Make the default texture renderable
1409 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 1409 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
1410 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 1410 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1,
1411 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); 1411 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
1412 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 1412 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
1413 // Make a new texture 1413 // Make a new texture
1414 manager_->CreateTexture(kClient2Id, kService2Id); 1414 manager_->CreateTexture(kClient2Id, kService2Id);
1415 scoped_refptr<TextureRef> texture_ref( 1415 scoped_refptr<TextureRef> texture_ref(
1416 manager_->GetTexture(kClient2Id)); 1416 manager_->GetTexture(kClient2Id));
1417 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D); 1417 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D);
1418 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); 1418 EXPECT_FALSE(manager_->CanRender(texture_ref.get()));
1419 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 1419 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
1420 // Remove it. 1420 // Remove it.
1421 manager_->RemoveTexture(kClient2Id); 1421 manager_->RemoveTexture(kClient2Id);
1422 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); 1422 EXPECT_FALSE(manager_->CanRender(texture_ref.get()));
1423 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 1423 EXPECT_TRUE(manager_->NeedsTextureRenderChecks());
1424 // Check that we can still manipulate it and it effects the manager. 1424 // Check that we can still manipulate it and it effects the manager.
1425 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 1425 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1,
1426 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); 1426 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
1427 EXPECT_TRUE(manager_->CanRender(texture_ref.get())); 1427 EXPECT_TRUE(manager_->CanRender(texture_ref.get()));
1428 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 1428 EXPECT_FALSE(manager_->NeedsTextureRenderChecks());
1429 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) 1429 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id)))
1430 .Times(1) 1430 .Times(1)
1431 .RetiresOnSaturation(); 1431 .RetiresOnSaturation();
1432 texture_ref = NULL; 1432 texture_ref = NULL;
1433 } 1433 }
1434 1434
1435 TEST_F(TextureTest, GetLevelImage) { 1435 TEST_F(TextureTest, GetLevelImage) {
1436 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 1436 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
1437 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, 1437 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
1438 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); 1438 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
1931 1931
1932 EXPECT_CALL(*gl_, DeleteTextures(1, _)) 1932 EXPECT_CALL(*gl_, DeleteTextures(1, _))
1933 .Times(1) 1933 .Times(1)
1934 .RetiresOnSaturation(); 1934 .RetiresOnSaturation();
1935 ref2 = NULL; 1935 ref2 = NULL;
1936 texture_manager2_->RemoveTexture(20); 1936 texture_manager2_->RemoveTexture(20);
1937 testing::Mock::VerifyAndClearExpectations(gl_.get()); 1937 testing::Mock::VerifyAndClearExpectations(gl_.get());
1938 } 1938 }
1939 1939
1940 TEST_F(SharedTextureTest, TextureSafetyAccounting) { 1940 TEST_F(SharedTextureTest, TextureSafetyAccounting) {
1941 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); 1941 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks());
1942 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); 1942 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures());
1943 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); 1943 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips());
1944 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); 1944 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks());
1945 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); 1945 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures());
1946 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); 1946 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips());
1947 1947
1948 // Newly created texture is renderable. 1948 // Newly created texture is renderable.
1949 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); 1949 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10);
1950 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); 1950 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks());
1951 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); 1951 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures());
1952 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); 1952 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips());
1953 1953
1954 // Associate new texture ref to other texture manager, should account for it 1954 // Associate new texture ref to other texture manager, should account for it
1955 // too. 1955 // too.
1956 scoped_refptr<TextureRef> ref2 = 1956 scoped_refptr<TextureRef> ref2 =
1957 texture_manager2_->Consume(20, ref1->texture()); 1957 texture_manager2_->Consume(20, ref1->texture());
1958 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); 1958 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks());
1959 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); 1959 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures());
1960 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); 1960 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips());
1961 1961
1962 // Make texture renderable but uncleared on one texture manager, should affect 1962 // Make texture renderable but uncleared on one texture manager, should affect
1963 // other one. 1963 // other one.
1964 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); 1964 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D);
1965 EXPECT_TRUE(texture_manager1_->HaveUnrenderableTextures()); 1965 EXPECT_TRUE(texture_manager1_->NeedsTextureRenderChecks());
1966 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); 1966 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures());
1967 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); 1967 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips());
1968 EXPECT_TRUE(texture_manager2_->HaveUnrenderableTextures()); 1968 EXPECT_TRUE(texture_manager2_->NeedsTextureRenderChecks());
1969 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); 1969 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures());
1970 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); 1970 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips());
1971 1971
1972 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1972 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1,
1973 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); 1973 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
1974 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); 1974 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks());
1975 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures()); 1975 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures());
1976 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips()); 1976 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips());
1977 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); 1977 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks());
1978 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures()); 1978 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures());
1979 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips()); 1979 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips());
1980 1980
1981 // Make texture cleared on one texture manager, should affect other one. 1981 // Make texture cleared on one texture manager, should affect other one.
1982 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true); 1982 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true);
1983 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); 1983 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures());
1984 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); 1984 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips());
1985 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); 1985 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures());
1986 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); 1986 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips());
1987 1987
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
2378 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); 2378 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F);
2379 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); 2379 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8);
2380 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 2380 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
2381 GL_DEPTH32F_STENCIL8); 2381 GL_DEPTH32F_STENCIL8);
2382 2382
2383 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); 2383 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8);
2384 } 2384 }
2385 2385
2386 } // namespace gles2 2386 } // namespace gles2
2387 } // namespace gpu 2387 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698