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

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

Issue 1619453002: Revert of Check if internal_format is valid for GenerateMipmap(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months 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
« no previous file with comments | « gpu/command_buffer/service/texture_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <utility> 10 #include <utility>
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 703 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
704 // Set them back. 704 // Set them back.
705 SetParameter(texture_ref_.get(), 705 SetParameter(texture_ref_.get(),
706 GL_TEXTURE_MIN_FILTER, 706 GL_TEXTURE_MIN_FILTER,
707 GL_LINEAR_MIPMAP_LINEAR, 707 GL_LINEAR_MIPMAP_LINEAR,
708 GL_NO_ERROR); 708 GL_NO_ERROR);
709 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 709 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
710 710
711 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 711 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
712 // Make mips. 712 // Make mips.
713 manager_->MarkMipmapsGenerated(texture_ref_.get()); 713 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
714 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 714 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
715 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 715 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
716 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 716 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
717 // Change a mip. 717 // Change a mip.
718 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 718 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1,
719 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 719 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
720 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 720 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
721 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 721 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
722 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 722 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
723 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 723 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
724 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 724 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
725 // Set a level past the number of mips that would get generated. 725 // Set a level past the number of mips that would get generated.
726 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 726 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1,
727 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 727 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
728 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 728 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
729 // Make mips. 729 // Make mips.
730 manager_->MarkMipmapsGenerated(texture_ref_.get()); 730 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
731 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 731 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
732 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 732 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
733 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 733 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
734 } 734 }
735 735
736 TEST_F(TextureTest, BaseLevel) { 736 TEST_F(TextureTest, BaseLevel) {
737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
738 Texture* texture = texture_ref_->texture(); 738 Texture* texture = texture_ref_->texture();
739 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 739 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
740 // Check Setting level 1 to POT 740 // Check Setting level 1 to POT
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 782 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
783 } 783 }
784 784
785 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { 785 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) {
786 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 786 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
787 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); 787 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64);
788 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 788 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1,
789 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 789 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
790 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); 790 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0);
791 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); 791 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84);
792 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 792 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
793 manager_->MarkMipmapsGenerated(texture_ref_.get());
794 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); 793 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0);
795 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); 794 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0);
796 } 795 }
797 796
798 TEST_F(TextureTest, UnusedMips) { 797 TEST_F(TextureTest, UnusedMips) {
799 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 798 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
800 Texture* texture = texture_ref_->texture(); 799 Texture* texture = texture_ref_->texture();
801 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 800 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
802 // Set level zero to large size. 801 // Set level zero to large size.
803 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,
804 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 803 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
805 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 804 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
806 manager_->MarkMipmapsGenerated(texture_ref_.get());
807 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 805 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
808 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 806 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
809 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 807 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
810 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 808 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
811 // Set level zero to large smaller (levels unused mips) 809 // Set level zero to large smaller (levels unused mips)
812 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 810 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1,
813 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); 811 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
814 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 812 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
815 manager_->MarkMipmapsGenerated(texture_ref_.get());
816 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 813 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
817 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 814 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
818 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 815 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
819 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 816 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
820 // Set an unused level to some size 817 // Set an unused level to some size
821 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 818 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16,
822 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); 819 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16));
823 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 820 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
824 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 821 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
825 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 822 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 876 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
880 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 877 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
881 // Check Setting level 0 to NPOT 878 // Check Setting level 0 to NPOT
882 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, 879 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0,
883 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); 880 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
884 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); 881 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture));
885 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 882 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
886 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); 883 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref));
887 EXPECT_FALSE(manager.CanRender(texture_ref)); 884 EXPECT_FALSE(manager.CanRender(texture_ref));
888 EXPECT_TRUE(manager.HaveUnrenderableTextures()); 885 EXPECT_TRUE(manager.HaveUnrenderableTextures());
889 manager.MarkMipmapsGenerated(texture_ref); 886 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref));
890 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 887 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
891 EXPECT_TRUE(manager.CanRender(texture_ref)); 888 EXPECT_TRUE(manager.CanRender(texture_ref));
892 EXPECT_FALSE(manager.HaveUnrenderableTextures()); 889 EXPECT_FALSE(manager.HaveUnrenderableTextures());
893 manager.Destroy(false); 890 manager.Destroy(false);
894 } 891 }
895 892
896 TEST_F(TextureTest, POTCubeMap) { 893 TEST_F(TextureTest, POTCubeMap) {
897 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); 894 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP);
898 Texture* texture = texture_ref_->texture(); 895 Texture* texture = texture_ref_->texture();
899 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); 896 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target());
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 944 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
948 gfx::Rect(4, 4)); 945 gfx::Rect(4, 4));
949 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 946 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
950 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 947 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
951 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 948 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
952 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 949 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
953 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); 950 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
954 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); 951 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
955 952
956 // Make mips. 953 // Make mips.
957 manager_->MarkMipmapsGenerated(texture_ref_.get()); 954 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
958 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 955 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
959 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 956 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
960 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); 957 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
961 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); 958 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
962 959
963 // Change a mip. 960 // Change a mip.
964 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 961 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1,
965 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 962 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
966 gfx::Rect(4, 4)); 963 gfx::Rect(4, 4));
967 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 964 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
968 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 965 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
969 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 966 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
970 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 967 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
971 // Set a level past the number of mips that would get generated. 968 // Set a level past the number of mips that would get generated.
972 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 3, 969 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 3,
973 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 970 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
974 gfx::Rect(4, 4)); 971 gfx::Rect(4, 4));
975 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 972 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
976 // Make mips. 973 // Make mips.
977 manager_->MarkMipmapsGenerated(texture_ref_.get()); 974 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
978 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 975 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
979 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); 976 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture));
980 } 977 }
981 978
982 TEST_F(TextureTest, POTCubeMapWithoutMipmap) { 979 TEST_F(TextureTest, POTCubeMapWithoutMipmap) {
983 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); 980 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP);
984 SetParameter( 981 SetParameter(
985 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR); 982 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR);
986 SetParameter( 983 SetParameter(
987 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); 984 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR);
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 EXPECT_TRUE(texture->SafeToRenderFrom()); 1330 EXPECT_TRUE(texture->SafeToRenderFrom());
1334 EXPECT_FALSE(manager_->HaveUnsafeTextures()); 1331 EXPECT_FALSE(manager_->HaveUnsafeTextures());
1335 EXPECT_FALSE(manager_->HaveUnclearedMips()); 1332 EXPECT_FALSE(manager_->HaveUnclearedMips());
1336 EXPECT_EQ(0, texture->num_uncleared_mips()); 1333 EXPECT_EQ(0, texture->num_uncleared_mips());
1337 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, 1334 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1,
1338 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); 1335 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
1339 EXPECT_FALSE(texture->SafeToRenderFrom()); 1336 EXPECT_FALSE(texture->SafeToRenderFrom());
1340 EXPECT_TRUE(manager_->HaveUnsafeTextures()); 1337 EXPECT_TRUE(manager_->HaveUnsafeTextures());
1341 EXPECT_TRUE(manager_->HaveUnclearedMips()); 1338 EXPECT_TRUE(manager_->HaveUnclearedMips());
1342 EXPECT_EQ(1, texture->num_uncleared_mips()); 1339 EXPECT_EQ(1, texture->num_uncleared_mips());
1343 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
1344 manager_->MarkMipmapsGenerated(texture_ref_.get()); 1340 manager_->MarkMipmapsGenerated(texture_ref_.get());
1345 EXPECT_TRUE(texture->SafeToRenderFrom()); 1341 EXPECT_TRUE(texture->SafeToRenderFrom());
1346 EXPECT_FALSE(manager_->HaveUnsafeTextures()); 1342 EXPECT_FALSE(manager_->HaveUnsafeTextures());
1347 EXPECT_FALSE(manager_->HaveUnclearedMips()); 1343 EXPECT_FALSE(manager_->HaveUnclearedMips());
1348 EXPECT_EQ(0, texture->num_uncleared_mips()); 1344 EXPECT_EQ(0, texture->num_uncleared_mips());
1349 1345
1350 manager_->CreateTexture(kClient2Id, kService2Id); 1346 manager_->CreateTexture(kClient2Id, kService2Id);
1351 scoped_refptr<TextureRef> texture_ref2( 1347 scoped_refptr<TextureRef> texture_ref2(
1352 manager_->GetTexture(kClient2Id)); 1348 manager_->GetTexture(kClient2Id));
1353 ASSERT_TRUE(texture_ref2.get() != NULL); 1349 ASSERT_TRUE(texture_ref2.get() != NULL);
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
1744 const GLuint ProduceConsumeTextureTest::kClient2Id = 2; 1740 const GLuint ProduceConsumeTextureTest::kClient2Id = 2;
1745 const GLuint ProduceConsumeTextureTest::kService2Id = 12; 1741 const GLuint ProduceConsumeTextureTest::kService2Id = 12;
1746 1742
1747 TEST_F(ProduceConsumeTextureTest, ProduceConsume2D) { 1743 TEST_F(ProduceConsumeTextureTest, ProduceConsume2D) {
1748 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 1744 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
1749 Texture* texture = texture_ref_->texture(); 1745 Texture* texture = texture_ref_->texture();
1750 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 1746 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1751 LevelInfo level0(GL_TEXTURE_2D, GL_RGBA, 4, 4, 1, 0, GL_UNSIGNED_BYTE, 1747 LevelInfo level0(GL_TEXTURE_2D, GL_RGBA, 4, 4, 1, 0, GL_UNSIGNED_BYTE,
1752 gfx::Rect(4, 4)); 1748 gfx::Rect(4, 4));
1753 SetLevelInfo(texture_ref_.get(), 0, level0); 1749 SetLevelInfo(texture_ref_.get(), 0, level0);
1754 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 1750 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
1755 manager_->MarkMipmapsGenerated(texture_ref_.get());
1756 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 1751 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
1757 LevelInfo level1 = GetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1); 1752 LevelInfo level1 = GetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1);
1758 LevelInfo level2 = GetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2); 1753 LevelInfo level2 = GetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2);
1759 Texture* produced_texture = Produce(texture_ref_.get()); 1754 Texture* produced_texture = Produce(texture_ref_.get());
1760 EXPECT_EQ(produced_texture, texture); 1755 EXPECT_EQ(produced_texture, texture);
1761 1756
1762 // Make this texture bigger with more levels, and make sure they get 1757 // Make this texture bigger with more levels, and make sure they get
1763 // clobbered correctly during Consume(). 1758 // clobbered correctly during Consume().
1764 manager_->SetTarget(texture2_.get(), GL_TEXTURE_2D); 1759 manager_->SetTarget(texture2_.get(), GL_TEXTURE_2D);
1765 SetLevelInfo(texture2_.get(), 0, LevelInfo(GL_TEXTURE_2D, GL_RGBA, 16, 16, 1, 1760 SetLevelInfo(texture2_.get(), 0, LevelInfo(GL_TEXTURE_2D, GL_RGBA, 16, 16, 1,
1766 0, GL_UNSIGNED_BYTE, gfx::Rect())); 1761 0, GL_UNSIGNED_BYTE, gfx::Rect()));
1767 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 1762 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture2_.get()));
1768 manager_->MarkMipmapsGenerated(texture2_.get());
1769 texture = texture2_->texture(); 1763 texture = texture2_->texture();
1770 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); 1764 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture));
1771 EXPECT_EQ(1024U + 256U + 64U + 16U + 4U, texture->estimated_size()); 1765 EXPECT_EQ(1024U + 256U + 64U + 16U + 4U, texture->estimated_size());
1772 1766
1773 GLuint client_id = texture2_->client_id(); 1767 GLuint client_id = texture2_->client_id();
1774 manager_->RemoveTexture(client_id); 1768 manager_->RemoveTexture(client_id);
1775 Consume(client_id, produced_texture); 1769 Consume(client_id, produced_texture);
1776 scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id); 1770 scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id);
1777 EXPECT_EQ(produced_texture, restored_texture->texture()); 1771 EXPECT_EQ(produced_texture, restored_texture->texture());
1778 EXPECT_EQ(level0, GetLevelInfo(restored_texture.get(), GL_TEXTURE_2D, 0)); 1772 EXPECT_EQ(level0, GetLevelInfo(restored_texture.get(), GL_TEXTURE_2D, 0));
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after
2433 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); 2427 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F);
2434 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); 2428 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8);
2435 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 2429 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
2436 GL_DEPTH32F_STENCIL8); 2430 GL_DEPTH32F_STENCIL8);
2437 2431
2438 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); 2432 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8);
2439 } 2433 }
2440 2434
2441 } // namespace gles2 2435 } // namespace gles2
2442 } // namespace gpu 2436 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/texture_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698