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

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

Issue 10796096: Add tracing of all memory allocated in all contexts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More trybot constructor fixes Created 8 years, 4 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 | Annotate | Revision Log
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 "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "gpu/command_buffer/common/gl_mock.h" 8 #include "gpu/command_buffer/common/gl_mock.h"
9 #include "gpu/command_buffer/service/feature_info.h" 9 #include "gpu/command_buffer/service/feature_info.h"
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
(...skipping 11 matching lines...) Expand all
22 public: 22 public:
23 static const GLint kMaxTextureSize = 16; 23 static const GLint kMaxTextureSize = 16;
24 static const GLint kMaxCubeMapTextureSize = 8; 24 static const GLint kMaxCubeMapTextureSize = 8;
25 static const GLint kMaxExternalTextureSize = 16; 25 static const GLint kMaxExternalTextureSize = 16;
26 static const GLint kMax2dLevels = 5; 26 static const GLint kMax2dLevels = 5;
27 static const GLint kMaxCubeMapLevels = 4; 27 static const GLint kMaxCubeMapLevels = 4;
28 static const GLint kMaxExternalLevels = 1; 28 static const GLint kMaxExternalLevels = 1;
29 29
30 TextureManagerTest() 30 TextureManagerTest()
31 : feature_info_(new FeatureInfo()), 31 : feature_info_(new FeatureInfo()),
32 manager_(feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize) { 32 manager_(
33 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize) {
33 } 34 }
34 35
35 ~TextureManagerTest() { 36 ~TextureManagerTest() {
36 manager_.Destroy(false); 37 manager_.Destroy(false);
37 } 38 }
38 39
39 protected: 40 protected:
40 virtual void SetUp() { 41 virtual void SetUp() {
41 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 42 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
42 ::gfx::GLInterface::SetGLInterface(gl_.get()); 43 ::gfx::GLInterface::SetGLInterface(gl_.get());
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 EXPECT_FALSE(manager_.SetParameter(info, GL_TEXTURE_WRAP_S, GL_NEAREST)); 121 EXPECT_FALSE(manager_.SetParameter(info, GL_TEXTURE_WRAP_S, GL_NEAREST));
121 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s()); 122 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s());
122 EXPECT_FALSE(manager_.SetParameter(info, GL_TEXTURE_WRAP_T, GL_NEAREST)); 123 EXPECT_FALSE(manager_.SetParameter(info, GL_TEXTURE_WRAP_T, GL_NEAREST));
123 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t()); 124 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t());
124 } 125 }
125 126
126 TEST_F(TextureManagerTest, TextureUsageExt) { 127 TEST_F(TextureManagerTest, TextureUsageExt) {
127 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), 128 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
128 "GL_ANGLE_texture_usage"); 129 "GL_ANGLE_texture_usage");
129 TextureManager manager( 130 TextureManager manager(
130 feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 131 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
131 manager.Initialize(); 132 manager.Initialize();
132 const GLuint kClient1Id = 1; 133 const GLuint kClient1Id = 1;
133 const GLuint kService1Id = 11; 134 const GLuint kService1Id = 11;
134 // Check we can create texture. 135 // Check we can create texture.
135 manager.CreateTextureInfo(kClient1Id, kService1Id); 136 manager.CreateTextureInfo(kClient1Id, kService1Id);
136 // Check texture got created. 137 // Check texture got created.
137 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 138 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
138 ASSERT_TRUE(info != NULL); 139 ASSERT_TRUE(info != NULL);
139 EXPECT_TRUE(manager.SetParameter( 140 EXPECT_TRUE(manager.SetParameter(
140 info, GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE)); 141 info, GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE));
141 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE), 142 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE),
142 info->usage()); 143 info->usage());
143 manager.Destroy(false); 144 manager.Destroy(false);
144 } 145 }
145 146
146 TEST_F(TextureManagerTest, Destroy) { 147 TEST_F(TextureManagerTest, Destroy) {
147 const GLuint kClient1Id = 1; 148 const GLuint kClient1Id = 1;
148 const GLuint kService1Id = 11; 149 const GLuint kService1Id = 11;
149 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); 150 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), "");
150 TextureManager manager( 151 TextureManager manager(
151 feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 152 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
152 manager.Initialize(); 153 manager.Initialize();
153 // Check we can create texture. 154 // Check we can create texture.
154 manager.CreateTextureInfo(kClient1Id, kService1Id); 155 manager.CreateTextureInfo(kClient1Id, kService1Id);
155 // Check texture got created. 156 // Check texture got created.
156 TextureManager::TextureInfo* info1 = manager.GetTextureInfo(kClient1Id); 157 TextureManager::TextureInfo* info1 = manager.GetTextureInfo(kClient1Id);
157 ASSERT_TRUE(info1 != NULL); 158 ASSERT_TRUE(info1 != NULL);
158 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) 159 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id)))
159 .Times(1) 160 .Times(1)
160 .RetiresOnSaturation(); 161 .RetiresOnSaturation();
161 TestHelper::SetupTextureManagerDestructionExpectations(gl_.get(), ""); 162 TestHelper::SetupTextureManagerDestructionExpectations(gl_.get(), "");
162 manager.Destroy(true); 163 manager.Destroy(true);
163 // Check that resources got freed. 164 // Check that resources got freed.
164 info1 = manager.GetTextureInfo(kClient1Id); 165 info1 = manager.GetTextureInfo(kClient1Id);
165 ASSERT_TRUE(info1 == NULL); 166 ASSERT_TRUE(info1 == NULL);
166 } 167 }
167 168
168 TEST_F(TextureManagerTest, DestroyUnowned) { 169 TEST_F(TextureManagerTest, DestroyUnowned) {
169 const GLuint kClient1Id = 1; 170 const GLuint kClient1Id = 1;
170 const GLuint kService1Id = 11; 171 const GLuint kService1Id = 11;
171 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); 172 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), "");
172 TextureManager manager( 173 TextureManager manager(
173 feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 174 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
174 manager.Initialize(); 175 manager.Initialize();
175 // Check we can create texture. 176 // Check we can create texture.
176 TextureManager::TextureInfo* created_info = 177 TextureManager::TextureInfo* created_info =
177 manager.CreateTextureInfo(kClient1Id, kService1Id); 178 manager.CreateTextureInfo(kClient1Id, kService1Id);
178 created_info->SetNotOwned(); 179 created_info->SetNotOwned();
179 180
180 // Check texture got created. 181 // Check texture got created.
181 TextureManager::TextureInfo* info1 = manager.GetTextureInfo(kClient1Id); 182 TextureManager::TextureInfo* info1 = manager.GetTextureInfo(kClient1Id);
182 ASSERT_TRUE(info1 != NULL); 183 ASSERT_TRUE(info1 != NULL);
183 184
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 GL_TEXTURE_CUBE_MAP, kMaxCubeMapLevels, 272 GL_TEXTURE_CUBE_MAP, kMaxCubeMapLevels,
272 kMaxCubeMapTextureSize, 1, 2)); 273 kMaxCubeMapTextureSize, 1, 2));
273 } 274 }
274 275
275 TEST_F(TextureManagerTest, ValidForTargetNPOT) { 276 TEST_F(TextureManagerTest, ValidForTargetNPOT) {
276 TestHelper::SetupFeatureInfoInitExpectations( 277 TestHelper::SetupFeatureInfoInitExpectations(
277 gl_.get(), "GL_OES_texture_npot"); 278 gl_.get(), "GL_OES_texture_npot");
278 FeatureInfo::Ref feature_info(new FeatureInfo()); 279 FeatureInfo::Ref feature_info(new FeatureInfo());
279 feature_info->Initialize(NULL); 280 feature_info->Initialize(NULL);
280 TextureManager manager( 281 TextureManager manager(
281 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 282 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
282 // Check NPOT width on level 0 283 // Check NPOT width on level 0
283 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1)); 284 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1));
284 // Check NPOT height on level 0 285 // Check NPOT height on level 0
285 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1)); 286 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1));
286 // Check NPOT width on level 1 287 // Check NPOT width on level 1
287 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); 288 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1));
288 // Check NPOT height on level 1 289 // Check NPOT height on level 1
289 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); 290 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1));
290 manager.Destroy(false); 291 manager.Destroy(false);
291 } 292 }
292 293
293 class TextureInfoTest : public testing::Test { 294 class TextureInfoTest : public testing::Test {
294 public: 295 public:
295 static const GLint kMaxTextureSize = 16; 296 static const GLint kMaxTextureSize = 16;
296 static const GLint kMaxCubeMapTextureSize = 8; 297 static const GLint kMaxCubeMapTextureSize = 8;
297 static const GLint kMax2dLevels = 5; 298 static const GLint kMax2dLevels = 5;
298 static const GLint kMaxCubeMapLevels = 4; 299 static const GLint kMaxCubeMapLevels = 4;
299 static const GLuint kClient1Id = 1; 300 static const GLuint kClient1Id = 1;
300 static const GLuint kService1Id = 11; 301 static const GLuint kService1Id = 11;
301 302
302 TextureInfoTest() 303 TextureInfoTest()
303 : feature_info_(new FeatureInfo()), 304 : feature_info_(new FeatureInfo()),
304 manager_(feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize) { 305 manager_(
306 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize) {
305 } 307 }
306 ~TextureInfoTest() { 308 ~TextureInfoTest() {
307 info_ = NULL; 309 info_ = NULL;
308 manager_.Destroy(false); 310 manager_.Destroy(false);
309 } 311 }
310 312
311 protected: 313 protected:
312 virtual void SetUp() { 314 virtual void SetUp() {
313 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); 315 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
314 ::gfx::GLInterface::SetGLInterface(gl_.get()); 316 ::gfx::GLInterface::SetGLInterface(gl_.get());
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 EXPECT_TRUE(manager_.CanGenerateMipmaps(info_)); 473 EXPECT_TRUE(manager_.CanGenerateMipmaps(info_));
472 EXPECT_FALSE(manager_.HaveUnrenderableTextures()); 474 EXPECT_FALSE(manager_.HaveUnrenderableTextures());
473 } 475 }
474 476
475 TEST_F(TextureInfoTest, NPOT2DNPOTOK) { 477 TEST_F(TextureInfoTest, NPOT2DNPOTOK) {
476 TestHelper::SetupFeatureInfoInitExpectations( 478 TestHelper::SetupFeatureInfoInitExpectations(
477 gl_.get(), "GL_OES_texture_npot"); 479 gl_.get(), "GL_OES_texture_npot");
478 FeatureInfo::Ref feature_info(new FeatureInfo()); 480 FeatureInfo::Ref feature_info(new FeatureInfo());
479 feature_info->Initialize(NULL); 481 feature_info->Initialize(NULL);
480 TextureManager manager( 482 TextureManager manager(
481 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 483 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
482 manager.CreateTextureInfo(kClient1Id, kService1Id); 484 manager.CreateTextureInfo(kClient1Id, kService1Id);
483 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 485 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
484 ASSERT_TRUE(info_ != NULL); 486 ASSERT_TRUE(info_ != NULL);
485 487
486 manager.SetInfoTarget(info, GL_TEXTURE_2D); 488 manager.SetInfoTarget(info, GL_TEXTURE_2D);
487 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); 489 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target());
488 // Check Setting level 0 to NPOT 490 // Check Setting level 0 to NPOT
489 manager.SetLevelInfo(info, 491 manager.SetLevelInfo(info,
490 GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); 492 GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true);
491 EXPECT_TRUE(info->npot()); 493 EXPECT_TRUE(info->npot());
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 EXPECT_TRUE(info_->ValidForTexture( 668 EXPECT_TRUE(info_->ValidForTexture(
667 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); 669 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE));
668 } 670 }
669 671
670 TEST_F(TextureInfoTest, FloatNotLinear) { 672 TEST_F(TextureInfoTest, FloatNotLinear) {
671 TestHelper::SetupFeatureInfoInitExpectations( 673 TestHelper::SetupFeatureInfoInitExpectations(
672 gl_.get(), "GL_OES_texture_float"); 674 gl_.get(), "GL_OES_texture_float");
673 FeatureInfo::Ref feature_info(new FeatureInfo()); 675 FeatureInfo::Ref feature_info(new FeatureInfo());
674 feature_info->Initialize(NULL); 676 feature_info->Initialize(NULL);
675 TextureManager manager( 677 TextureManager manager(
676 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 678 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
677 manager.CreateTextureInfo(kClient1Id, kService1Id); 679 manager.CreateTextureInfo(kClient1Id, kService1Id);
678 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 680 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
679 ASSERT_TRUE(info != NULL); 681 ASSERT_TRUE(info != NULL);
680 manager.SetInfoTarget(info, GL_TEXTURE_2D); 682 manager.SetInfoTarget(info, GL_TEXTURE_2D);
681 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); 683 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target());
682 manager.SetLevelInfo(info, 684 manager.SetLevelInfo(info,
683 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); 685 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true);
684 EXPECT_FALSE(info->texture_complete()); 686 EXPECT_FALSE(info->texture_complete());
685 manager.SetParameter(info, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 687 manager.SetParameter(info, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
686 EXPECT_FALSE(info->texture_complete()); 688 EXPECT_FALSE(info->texture_complete());
687 manager.SetParameter(info, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST); 689 manager.SetParameter(info, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
688 EXPECT_TRUE(info->texture_complete()); 690 EXPECT_TRUE(info->texture_complete());
689 manager.Destroy(false); 691 manager.Destroy(false);
690 } 692 }
691 693
692 TEST_F(TextureInfoTest, FloatLinear) { 694 TEST_F(TextureInfoTest, FloatLinear) {
693 TestHelper::SetupFeatureInfoInitExpectations( 695 TestHelper::SetupFeatureInfoInitExpectations(
694 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear"); 696 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear");
695 FeatureInfo::Ref feature_info(new FeatureInfo()); 697 FeatureInfo::Ref feature_info(new FeatureInfo());
696 feature_info->Initialize(NULL); 698 feature_info->Initialize(NULL);
697 TextureManager manager( 699 TextureManager manager(
698 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 700 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
699 manager.CreateTextureInfo(kClient1Id, kService1Id); 701 manager.CreateTextureInfo(kClient1Id, kService1Id);
700 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 702 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
701 ASSERT_TRUE(info != NULL); 703 ASSERT_TRUE(info != NULL);
702 manager.SetInfoTarget(info, GL_TEXTURE_2D); 704 manager.SetInfoTarget(info, GL_TEXTURE_2D);
703 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); 705 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target());
704 manager.SetLevelInfo(info, 706 manager.SetLevelInfo(info,
705 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); 707 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true);
706 EXPECT_TRUE(info->texture_complete()); 708 EXPECT_TRUE(info->texture_complete());
707 manager.Destroy(false); 709 manager.Destroy(false);
708 } 710 }
709 711
710 TEST_F(TextureInfoTest, HalfFloatNotLinear) { 712 TEST_F(TextureInfoTest, HalfFloatNotLinear) {
711 TestHelper::SetupFeatureInfoInitExpectations( 713 TestHelper::SetupFeatureInfoInitExpectations(
712 gl_.get(), "GL_OES_texture_half_float"); 714 gl_.get(), "GL_OES_texture_half_float");
713 FeatureInfo::Ref feature_info(new FeatureInfo()); 715 FeatureInfo::Ref feature_info(new FeatureInfo());
714 feature_info->Initialize(NULL); 716 feature_info->Initialize(NULL);
715 TextureManager manager( 717 TextureManager manager(
716 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 718 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
717 manager.CreateTextureInfo(kClient1Id, kService1Id); 719 manager.CreateTextureInfo(kClient1Id, kService1Id);
718 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 720 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
719 ASSERT_TRUE(info != NULL); 721 ASSERT_TRUE(info != NULL);
720 manager.SetInfoTarget(info, GL_TEXTURE_2D); 722 manager.SetInfoTarget(info, GL_TEXTURE_2D);
721 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); 723 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target());
722 manager.SetLevelInfo(info, 724 manager.SetLevelInfo(info,
723 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); 725 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true);
724 EXPECT_FALSE(info->texture_complete()); 726 EXPECT_FALSE(info->texture_complete());
725 manager.SetParameter(info, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 727 manager.SetParameter(info, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
726 EXPECT_FALSE(info->texture_complete()); 728 EXPECT_FALSE(info->texture_complete());
727 manager.SetParameter(info, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST); 729 manager.SetParameter(info, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
728 EXPECT_TRUE(info->texture_complete()); 730 EXPECT_TRUE(info->texture_complete());
729 manager.Destroy(false); 731 manager.Destroy(false);
730 } 732 }
731 733
732 TEST_F(TextureInfoTest, HalfFloatLinear) { 734 TEST_F(TextureInfoTest, HalfFloatLinear) {
733 TestHelper::SetupFeatureInfoInitExpectations( 735 TestHelper::SetupFeatureInfoInitExpectations(
734 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); 736 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear");
735 FeatureInfo::Ref feature_info(new FeatureInfo()); 737 FeatureInfo::Ref feature_info(new FeatureInfo());
736 feature_info->Initialize(NULL); 738 feature_info->Initialize(NULL);
737 TextureManager manager( 739 TextureManager manager(
738 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 740 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
739 manager.CreateTextureInfo(kClient1Id, kService1Id); 741 manager.CreateTextureInfo(kClient1Id, kService1Id);
740 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 742 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
741 ASSERT_TRUE(info != NULL); 743 ASSERT_TRUE(info != NULL);
742 manager.SetInfoTarget(info, GL_TEXTURE_2D); 744 manager.SetInfoTarget(info, GL_TEXTURE_2D);
743 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); 745 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target());
744 manager.SetLevelInfo(info, 746 manager.SetLevelInfo(info,
745 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); 747 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true);
746 EXPECT_TRUE(info->texture_complete()); 748 EXPECT_TRUE(info->texture_complete());
747 manager.Destroy(false); 749 manager.Destroy(false);
748 } 750 }
749 751
750 TEST_F(TextureInfoTest, EGLImageExternal) { 752 TEST_F(TextureInfoTest, EGLImageExternal) {
751 TestHelper::SetupFeatureInfoInitExpectations( 753 TestHelper::SetupFeatureInfoInitExpectations(
752 gl_.get(), "GL_OES_EGL_image_external"); 754 gl_.get(), "GL_OES_EGL_image_external");
753 FeatureInfo::Ref feature_info(new FeatureInfo()); 755 FeatureInfo::Ref feature_info(new FeatureInfo());
754 feature_info->Initialize(NULL); 756 feature_info->Initialize(NULL);
755 TextureManager manager( 757 TextureManager manager(
756 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 758 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
757 manager.CreateTextureInfo(kClient1Id, kService1Id); 759 manager.CreateTextureInfo(kClient1Id, kService1Id);
758 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 760 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
759 ASSERT_TRUE(info != NULL); 761 ASSERT_TRUE(info != NULL);
760 manager.SetInfoTarget(info, GL_TEXTURE_EXTERNAL_OES); 762 manager.SetInfoTarget(info, GL_TEXTURE_EXTERNAL_OES);
761 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), info->target()); 763 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), info->target());
762 EXPECT_FALSE(manager.CanGenerateMipmaps(info)); 764 EXPECT_FALSE(manager.CanGenerateMipmaps(info));
763 manager.Destroy(false); 765 manager.Destroy(false);
764 } 766 }
765 767
766 TEST_F(TextureInfoTest, DepthTexture) { 768 TEST_F(TextureInfoTest, DepthTexture) {
767 TestHelper::SetupFeatureInfoInitExpectations( 769 TestHelper::SetupFeatureInfoInitExpectations(
768 gl_.get(), "GL_ANGLE_depth_texture"); 770 gl_.get(), "GL_ANGLE_depth_texture");
769 FeatureInfo::Ref feature_info(new FeatureInfo()); 771 FeatureInfo::Ref feature_info(new FeatureInfo());
770 feature_info->Initialize(NULL); 772 feature_info->Initialize(NULL);
771 TextureManager manager( 773 TextureManager manager(
772 feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); 774 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize);
773 manager.CreateTextureInfo(kClient1Id, kService1Id); 775 manager.CreateTextureInfo(kClient1Id, kService1Id);
774 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id); 776 TextureManager::TextureInfo* info = manager.GetTextureInfo(kClient1Id);
775 ASSERT_TRUE(info != NULL); 777 ASSERT_TRUE(info != NULL);
776 manager.SetInfoTarget(info, GL_TEXTURE_2D); 778 manager.SetInfoTarget(info, GL_TEXTURE_2D);
777 manager.SetLevelInfo( 779 manager.SetLevelInfo(
778 info, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4, 1, 0, 780 info, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4, 1, 0,
779 GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, false); 781 GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, false);
780 EXPECT_FALSE(manager.CanGenerateMipmaps(info)); 782 EXPECT_FALSE(manager.CanGenerateMipmaps(info));
781 manager.Destroy(false); 783 manager.Destroy(false);
782 } 784 }
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) 971 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id)))
970 .Times(1) 972 .Times(1)
971 .RetiresOnSaturation(); 973 .RetiresOnSaturation();
972 info = NULL; 974 info = NULL;
973 } 975 }
974 976
975 } // namespace gles2 977 } // namespace gles2
976 } // namespace gpu 978 } // namespace gpu
977 979
978 980
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/texture_manager.cc ('k') | gpu/command_buffer/service/vertex_attrib_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698