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

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

Issue 2378583003: Ping watchdog thread during GpuChannel destruction (Closed)
Patch Set: Fix lifetime and use nullptr Created 4 years, 2 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
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 <memory> 10 #include <memory>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 command_line.AppendSwitch(switches::kEnableUnsafeES3APIs); 74 command_line.AppendSwitch(switches::kEnableUnsafeES3APIs);
75 GpuDriverBugWorkarounds gpu_driver_bug_workaround(&command_line); 75 GpuDriverBugWorkarounds gpu_driver_bug_workaround(&command_line);
76 feature_info_ = new FeatureInfo(command_line, gpu_driver_bug_workaround); 76 feature_info_ = new FeatureInfo(command_line, gpu_driver_bug_workaround);
77 } 77 }
78 78
79 ~TextureManagerTest() override {} 79 ~TextureManagerTest() override {}
80 80
81 protected: 81 protected:
82 void SetUp() override { 82 void SetUp() override {
83 GpuServiceTest::SetUp(); 83 GpuServiceTest::SetUp();
84 manager_.reset(new TextureManager(NULL, 84 manager_.reset(new TextureManager(
85 feature_info_.get(), 85 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize,
86 kMaxTextureSize, 86 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers,
87 kMaxCubeMapTextureSize, 87 kUseDefaultTextures, nullptr));
88 kMaxRectangleTextureSize,
89 kMax3DTextureSize,
90 kMaxArrayTextureLayers,
91 kUseDefaultTextures));
92 SetupFeatureInfo("", "OpenGL ES 2.0", false); 88 SetupFeatureInfo("", "OpenGL ES 2.0", false);
93 TestHelper::SetupTextureManagerInitExpectations( 89 TestHelper::SetupTextureManagerInitExpectations(
94 gl_.get(), false, false, false, "", kUseDefaultTextures); 90 gl_.get(), false, false, false, "", kUseDefaultTextures);
95 manager_->Initialize(); 91 manager_->Initialize();
96 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); 92 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>());
97 } 93 }
98 94
99 void TearDown() override { 95 void TearDown() override {
100 manager_->Destroy(false); 96 manager_->Destroy(false);
101 manager_.reset(); 97 manager_.reset();
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_t()); 237 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_t());
242 SetParameter(texture_ref, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0, GL_INVALID_VALUE); 238 SetParameter(texture_ref, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0, GL_INVALID_VALUE);
243 SetParameter(texture_ref, GL_TEXTURE_IMMUTABLE_FORMAT, 0, GL_INVALID_ENUM); 239 SetParameter(texture_ref, GL_TEXTURE_IMMUTABLE_FORMAT, 0, GL_INVALID_ENUM);
244 SetParameter(texture_ref, GL_TEXTURE_IMMUTABLE_LEVELS, 0, GL_INVALID_ENUM); 240 SetParameter(texture_ref, GL_TEXTURE_IMMUTABLE_LEVELS, 0, GL_INVALID_ENUM);
245 } 241 }
246 242
247 TEST_F(TextureManagerTest, UseDefaultTexturesTrue) { 243 TEST_F(TextureManagerTest, UseDefaultTexturesTrue) {
248 bool use_default_textures = true; 244 bool use_default_textures = true;
249 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), 245 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
250 false, false, false, "GL_ANGLE_texture_usage", use_default_textures); 246 false, false, false, "GL_ANGLE_texture_usage", use_default_textures);
251 TextureManager manager(NULL, 247 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
252 feature_info_.get(), 248 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
253 kMaxTextureSize, 249 kMax3DTextureSize, kMaxArrayTextureLayers,
254 kMaxCubeMapTextureSize, 250 use_default_textures, nullptr);
255 kMaxRectangleTextureSize,
256 kMax3DTextureSize,
257 kMaxArrayTextureLayers,
258 use_default_textures);
259 manager.Initialize(); 251 manager.Initialize();
260 252
261 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) != NULL); 253 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) != NULL);
262 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) != NULL); 254 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) != NULL);
263 255
264 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. 256 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB.
265 257
266 manager.Destroy(false); 258 manager.Destroy(false);
267 } 259 }
268 260
269 TEST_F(TextureManagerTest, UseDefaultTexturesFalse) { 261 TEST_F(TextureManagerTest, UseDefaultTexturesFalse) {
270 bool use_default_textures = false; 262 bool use_default_textures = false;
271 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), 263 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
272 false, false, false, "GL_ANGLE_texture_usage", use_default_textures); 264 false, false, false, "GL_ANGLE_texture_usage", use_default_textures);
273 TextureManager manager(NULL, 265 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
274 feature_info_.get(), 266 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
275 kMaxTextureSize, 267 kMax3DTextureSize, kMaxArrayTextureLayers,
276 kMaxCubeMapTextureSize, 268 use_default_textures, nullptr);
277 kMaxRectangleTextureSize,
278 kMax3DTextureSize,
279 kMaxArrayTextureLayers,
280 use_default_textures);
281 manager.Initialize(); 269 manager.Initialize();
282 270
283 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL); 271 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL);
284 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL); 272 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL);
285 273
286 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. 274 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB.
287 275
288 manager.Destroy(false); 276 manager.Destroy(false);
289 } 277 }
290 278
291 TEST_F(TextureManagerTest, UseDefaultTexturesTrueES3) { 279 TEST_F(TextureManagerTest, UseDefaultTexturesTrueES3) {
292 bool use_default_textures = true; 280 bool use_default_textures = true;
293 SetupFeatureInfo("", "OpenGL ES 3.0", true); 281 SetupFeatureInfo("", "OpenGL ES 3.0", true);
294 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), 282 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
295 true, true, false, "", use_default_textures); 283 true, true, false, "", use_default_textures);
296 TextureManager manager(NULL, 284 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
297 feature_info_.get(), 285 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
298 kMaxTextureSize, 286 kMax3DTextureSize, kMaxArrayTextureLayers,
299 kMaxCubeMapTextureSize, 287 use_default_textures, nullptr);
300 kMaxRectangleTextureSize,
301 kMax3DTextureSize,
302 kMaxArrayTextureLayers,
303 use_default_textures);
304 manager.Initialize(); 288 manager.Initialize();
305 289
306 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) != NULL); 290 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) != NULL);
307 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) != NULL); 291 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) != NULL);
308 292
309 manager.Destroy(false); 293 manager.Destroy(false);
310 } 294 }
311 295
312 TEST_F(TextureManagerTest, UseDefaultTexturesFalseES3) { 296 TEST_F(TextureManagerTest, UseDefaultTexturesFalseES3) {
313 bool use_default_textures = false; 297 bool use_default_textures = false;
314 SetupFeatureInfo("", "OpenGL ES 3.0", true); 298 SetupFeatureInfo("", "OpenGL ES 3.0", true);
315 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), 299 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
316 true, true, false, "", use_default_textures); 300 true, true, false, "", use_default_textures);
317 TextureManager manager(NULL, 301 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
318 feature_info_.get(), 302 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
319 kMaxTextureSize, 303 kMax3DTextureSize, kMaxArrayTextureLayers,
320 kMaxCubeMapTextureSize, 304 use_default_textures, nullptr);
321 kMaxRectangleTextureSize,
322 kMax3DTextureSize,
323 kMaxArrayTextureLayers,
324 use_default_textures);
325 manager.Initialize(); 305 manager.Initialize();
326 306
327 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) == NULL); 307 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) == NULL);
328 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) == NULL); 308 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) == NULL);
329 309
330 manager.Destroy(false); 310 manager.Destroy(false);
331 } 311 }
332 312
333 TEST_F(TextureManagerTest, TextureUsageExt) { 313 TEST_F(TextureManagerTest, TextureUsageExt) {
334 TestHelper::SetupTextureManagerInitExpectations( 314 TestHelper::SetupTextureManagerInitExpectations(
335 gl_.get(), false, false, false, "GL_ANGLE_texture_usage", 315 gl_.get(), false, false, false, "GL_ANGLE_texture_usage",
336 kUseDefaultTextures); 316 kUseDefaultTextures);
337 TextureManager manager(NULL, 317 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
338 feature_info_.get(), 318 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
339 kMaxTextureSize, 319 kMax3DTextureSize, kMaxArrayTextureLayers,
340 kMaxCubeMapTextureSize, 320 kUseDefaultTextures, nullptr);
341 kMaxRectangleTextureSize,
342 kMax3DTextureSize,
343 kMaxArrayTextureLayers,
344 kUseDefaultTextures);
345 manager.Initialize(); 321 manager.Initialize();
346 const GLuint kClient1Id = 1; 322 const GLuint kClient1Id = 1;
347 const GLuint kService1Id = 11; 323 const GLuint kService1Id = 11;
348 // Check we can create texture. 324 // Check we can create texture.
349 manager.CreateTexture(kClient1Id, kService1Id); 325 manager.CreateTexture(kClient1Id, kService1Id);
350 // Check texture got created. 326 // Check texture got created.
351 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 327 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
352 ASSERT_TRUE(texture_ref != NULL); 328 ASSERT_TRUE(texture_ref != NULL);
353 TestHelper::SetTexParameteriWithExpectations( 329 TestHelper::SetTexParameteriWithExpectations(
354 gl_.get(), error_state_.get(), &manager, texture_ref, 330 gl_.get(), error_state_.get(), &manager, texture_ref,
355 GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE, GL_NO_ERROR); 331 GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE, GL_NO_ERROR);
356 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE), 332 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE),
357 texture_ref->texture()->usage()); 333 texture_ref->texture()->usage());
358 manager.Destroy(false); 334 manager.Destroy(false);
359 } 335 }
360 336
361 TEST_F(TextureManagerTest, Destroy) { 337 TEST_F(TextureManagerTest, Destroy) {
362 const GLuint kClient1Id = 1; 338 const GLuint kClient1Id = 1;
363 const GLuint kService1Id = 11; 339 const GLuint kService1Id = 11;
364 TestHelper::SetupTextureManagerInitExpectations( 340 TestHelper::SetupTextureManagerInitExpectations(
365 gl_.get(), false, false, false, "", kUseDefaultTextures); 341 gl_.get(), false, false, false, "", kUseDefaultTextures);
366 TextureManager manager(NULL, 342 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
367 feature_info_.get(), 343 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
368 kMaxTextureSize, 344 kMax3DTextureSize, kMaxArrayTextureLayers,
369 kMaxCubeMapTextureSize, 345 kUseDefaultTextures, nullptr);
370 kMaxRectangleTextureSize,
371 kMax3DTextureSize,
372 kMaxArrayTextureLayers,
373 kUseDefaultTextures);
374 manager.Initialize(); 346 manager.Initialize();
375 // Check we can create texture. 347 // Check we can create texture.
376 manager.CreateTexture(kClient1Id, kService1Id); 348 manager.CreateTexture(kClient1Id, kService1Id);
377 // Check texture got created. 349 // Check texture got created.
378 TextureRef* texture = manager.GetTexture(kClient1Id); 350 TextureRef* texture = manager.GetTexture(kClient1Id);
379 ASSERT_TRUE(texture != NULL); 351 ASSERT_TRUE(texture != NULL);
380 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) 352 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id)))
381 .Times(1) 353 .Times(1)
382 .RetiresOnSaturation(); 354 .RetiresOnSaturation();
383 TestHelper::SetupTextureManagerDestructionExpectations( 355 TestHelper::SetupTextureManagerDestructionExpectations(
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 (kMaxCubeMapTextureSize >> level) * 2, 487 (kMaxCubeMapTextureSize >> level) * 2,
516 1)); 488 1));
517 } 489 }
518 } 490 }
519 491
520 TEST_F(TextureManagerTest, ValidForTargetNPOT) { 492 TEST_F(TextureManagerTest, ValidForTargetNPOT) {
521 TestHelper::SetupFeatureInfoInitExpectations( 493 TestHelper::SetupFeatureInfoInitExpectations(
522 gl_.get(), "GL_OES_texture_npot"); 494 gl_.get(), "GL_OES_texture_npot");
523 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 495 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
524 feature_info->InitializeForTesting(); 496 feature_info->InitializeForTesting();
525 TextureManager manager(NULL, 497 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
526 feature_info.get(), 498 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
527 kMaxTextureSize, 499 kMax3DTextureSize, kMaxArrayTextureLayers,
528 kMaxCubeMapTextureSize, 500 kUseDefaultTextures, nullptr);
529 kMaxRectangleTextureSize,
530 kMax3DTextureSize,
531 kMaxArrayTextureLayers,
532 kUseDefaultTextures);
533 // Check NPOT width on level 0 501 // Check NPOT width on level 0
534 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1)); 502 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1));
535 // Check NPOT height on level 0 503 // Check NPOT height on level 0
536 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1)); 504 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1));
537 // Check NPOT width on level 1 505 // Check NPOT width on level 1
538 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); 506 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1));
539 // Check NPOT height on level 1 507 // Check NPOT height on level 1
540 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); 508 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1));
541 manager.Destroy(false); 509 manager.Destroy(false);
542 } 510 }
543 511
544 TEST_F(TextureManagerTest, AlphaLuminanceCompatibilityProfile) { 512 TEST_F(TextureManagerTest, AlphaLuminanceCompatibilityProfile) {
545 const GLuint kClientId = 1; 513 const GLuint kClientId = 1;
546 const GLuint kServiceId = 11; 514 const GLuint kServiceId = 11;
547 515
548 SetupFeatureInfo("", "2.1", false); 516 SetupFeatureInfo("", "2.1", false);
549 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), false, false, 517 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), false, false,
550 false, "", kUseDefaultTextures); 518 false, "", kUseDefaultTextures);
551 TextureManager manager(NULL, 519 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
552 feature_info_.get(), 520 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
553 kMaxTextureSize, 521 kMax3DTextureSize, kMaxArrayTextureLayers,
554 kMaxCubeMapTextureSize, 522 kUseDefaultTextures, nullptr);
555 kMaxRectangleTextureSize,
556 kMax3DTextureSize,
557 kMaxArrayTextureLayers,
558 kUseDefaultTextures);
559 manager.Initialize(); 523 manager.Initialize();
560 524
561 // Create a texture. 525 // Create a texture.
562 manager.CreateTexture(kClientId, kServiceId); 526 manager.CreateTexture(kClientId, kServiceId);
563 scoped_refptr<TextureRef> texture_ref(manager.GetTexture(kClientId)); 527 scoped_refptr<TextureRef> texture_ref(manager.GetTexture(kClientId));
564 manager.SetTarget(texture_ref.get(), GL_TEXTURE_2D); 528 manager.SetTarget(texture_ref.get(), GL_TEXTURE_2D);
565 529
566 Texture* texture = texture_ref->texture(); 530 Texture* texture = texture_ref->texture();
567 531
568 // GL_ALPHA emulation 532 // GL_ALPHA emulation
(...skipping 17 matching lines...) Expand all
586 manager.RemoveTexture(kClientId); 550 manager.RemoveTexture(kClientId);
587 } 551 }
588 552
589 TEST_F(TextureManagerTest, AlphaLuminanceCoreProfileEmulation) { 553 TEST_F(TextureManagerTest, AlphaLuminanceCoreProfileEmulation) {
590 const GLuint kClientId = 1; 554 const GLuint kClientId = 1;
591 const GLuint kServiceId = 11; 555 const GLuint kServiceId = 11;
592 556
593 SetupFeatureInfo("", "4.2", true); 557 SetupFeatureInfo("", "4.2", true);
594 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), true, true, true, 558 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), true, true, true,
595 "", kUseDefaultTextures); 559 "", kUseDefaultTextures);
596 TextureManager manager(NULL, 560 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize,
597 feature_info_.get(), 561 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
598 kMaxTextureSize, 562 kMax3DTextureSize, kMaxArrayTextureLayers,
599 kMaxCubeMapTextureSize, 563 kUseDefaultTextures, nullptr);
600 kMaxRectangleTextureSize,
601 kMax3DTextureSize,
602 kMaxArrayTextureLayers,
603 kUseDefaultTextures);
604 manager.Initialize(); 564 manager.Initialize();
605 565
606 // Create a texture. 566 // Create a texture.
607 manager.CreateTexture(kClientId, kServiceId); 567 manager.CreateTexture(kClientId, kServiceId);
608 scoped_refptr<TextureRef> texture_ref(manager.GetTexture(kClientId)); 568 scoped_refptr<TextureRef> texture_ref(manager.GetTexture(kClientId));
609 manager.SetTarget(texture_ref.get(), GL_TEXTURE_2D); 569 manager.SetTarget(texture_ref.get(), GL_TEXTURE_2D);
610 570
611 Texture* texture = texture_ref->texture(); 571 Texture* texture = texture_ref->texture();
612 572
613 // GL_ALPHA emulation 573 // GL_ALPHA emulation
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 } 665 }
706 ~TextureTestBase() override { texture_ref_ = NULL; } 666 ~TextureTestBase() override { texture_ref_ = NULL; }
707 667
708 protected: 668 protected:
709 void SetUpBase(MemoryTracker* memory_tracker, const std::string& extensions) { 669 void SetUpBase(MemoryTracker* memory_tracker, const std::string& extensions) {
710 GpuServiceTest::SetUp(); 670 GpuServiceTest::SetUp();
711 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), 671 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(),
712 extensions.c_str()); 672 extensions.c_str());
713 feature_info_->InitializeForTesting(); 673 feature_info_->InitializeForTesting();
714 674
715 manager_.reset(new TextureManager(memory_tracker, 675 manager_.reset(new TextureManager(
716 feature_info_.get(), 676 memory_tracker, feature_info_.get(), kMaxTextureSize,
717 kMaxTextureSize, 677 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, kMax3DTextureSize,
718 kMaxCubeMapTextureSize, 678 kMaxArrayTextureLayers, kUseDefaultTextures, nullptr));
719 kMaxRectangleTextureSize,
720 kMax3DTextureSize,
721 kMaxArrayTextureLayers,
722 kUseDefaultTextures));
723 decoder_.reset(new ::testing::StrictMock<gles2::MockGLES2Decoder>()); 679 decoder_.reset(new ::testing::StrictMock<gles2::MockGLES2Decoder>());
724 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); 680 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>());
725 manager_->CreateTexture(kClient1Id, kService1Id); 681 manager_->CreateTexture(kClient1Id, kService1Id);
726 texture_ref_ = manager_->GetTexture(kClient1Id); 682 texture_ref_ = manager_->GetTexture(kClient1Id);
727 ASSERT_TRUE(texture_ref_.get() != NULL); 683 ASSERT_TRUE(texture_ref_.get() != NULL);
728 } 684 }
729 685
730 void TearDown() override { 686 void TearDown() override {
731 if (texture_ref_.get()) { 687 if (texture_ref_.get()) {
732 // If it's not in the manager then setting texture_ref_ to NULL will 688 // If it's not in the manager then setting texture_ref_ to NULL will
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); 967 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture));
1012 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); 968 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture));
1013 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); 969 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get()));
1014 } 970 }
1015 971
1016 TEST_F(TextureTest, NPOT2DNPOTOK) { 972 TEST_F(TextureTest, NPOT2DNPOTOK) {
1017 TestHelper::SetupFeatureInfoInitExpectations( 973 TestHelper::SetupFeatureInfoInitExpectations(
1018 gl_.get(), "GL_OES_texture_npot"); 974 gl_.get(), "GL_OES_texture_npot");
1019 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 975 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1020 feature_info->InitializeForTesting(); 976 feature_info->InitializeForTesting();
1021 TextureManager manager(NULL, 977 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1022 feature_info.get(), 978 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1023 kMaxTextureSize, 979 kMax3DTextureSize, kMaxArrayTextureLayers,
1024 kMaxCubeMapTextureSize, 980 kUseDefaultTextures, nullptr);
1025 kMaxRectangleTextureSize,
1026 kMax3DTextureSize,
1027 kMaxArrayTextureLayers,
1028 kUseDefaultTextures);
1029 manager.CreateTexture(kClient1Id, kService1Id); 981 manager.CreateTexture(kClient1Id, kService1Id);
1030 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 982 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1031 ASSERT_TRUE(texture_ref != NULL); 983 ASSERT_TRUE(texture_ref != NULL);
1032 Texture* texture = texture_ref->texture(); 984 Texture* texture = texture_ref->texture();
1033 985
1034 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 986 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1035 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 987 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1036 // Check Setting level 0 to NPOT 988 // Check Setting level 0 to NPOT
1037 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, 989 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0,
1038 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); 990 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 1, 2, 3, 4)); 1265 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 1, 2, 3, 4));
1314 manager_->RemoveTexture(kClient1Id); 1266 manager_->RemoveTexture(kClient1Id);
1315 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6)); 1267 EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6));
1316 } 1268 }
1317 1269
1318 TEST_F(TextureTest, FloatNotLinear) { 1270 TEST_F(TextureTest, FloatNotLinear) {
1319 TestHelper::SetupFeatureInfoInitExpectations( 1271 TestHelper::SetupFeatureInfoInitExpectations(
1320 gl_.get(), "GL_OES_texture_float"); 1272 gl_.get(), "GL_OES_texture_float");
1321 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1273 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1322 feature_info->InitializeForTesting(); 1274 feature_info->InitializeForTesting();
1323 TextureManager manager(NULL, 1275 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1324 feature_info.get(), 1276 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1325 kMaxTextureSize, 1277 kMax3DTextureSize, kMaxArrayTextureLayers,
1326 kMaxCubeMapTextureSize, 1278 kUseDefaultTextures, nullptr);
1327 kMaxRectangleTextureSize,
1328 kMax3DTextureSize,
1329 kMaxArrayTextureLayers,
1330 kUseDefaultTextures);
1331 manager.CreateTexture(kClient1Id, kService1Id); 1279 manager.CreateTexture(kClient1Id, kService1Id);
1332 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1280 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1333 ASSERT_TRUE(texture_ref != NULL); 1281 ASSERT_TRUE(texture_ref != NULL);
1334 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 1282 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1335 Texture* texture = texture_ref->texture(); 1283 Texture* texture = texture_ref->texture();
1336 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 1284 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1337 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, 1285 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0,
1338 GL_RGBA, GL_FLOAT, gfx::Rect(1, 1)); 1286 GL_RGBA, GL_FLOAT, gfx::Rect(1, 1));
1339 EXPECT_FALSE(manager.CanRender(texture_ref)); 1287 EXPECT_FALSE(manager.CanRender(texture_ref));
1340 TestHelper::SetTexParameteriWithExpectations( 1288 TestHelper::SetTexParameteriWithExpectations(
1341 gl_.get(), error_state_.get(), &manager, 1289 gl_.get(), error_state_.get(), &manager,
1342 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); 1290 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR);
1343 EXPECT_FALSE(manager.CanRender(texture_ref)); 1291 EXPECT_FALSE(manager.CanRender(texture_ref));
1344 TestHelper::SetTexParameteriWithExpectations( 1292 TestHelper::SetTexParameteriWithExpectations(
1345 gl_.get(), error_state_.get(), &manager, texture_ref, 1293 gl_.get(), error_state_.get(), &manager, texture_ref,
1346 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); 1294 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR);
1347 EXPECT_TRUE(manager.CanRender(texture_ref)); 1295 EXPECT_TRUE(manager.CanRender(texture_ref));
1348 manager.Destroy(false); 1296 manager.Destroy(false);
1349 } 1297 }
1350 1298
1351 TEST_F(TextureTest, FloatLinear) { 1299 TEST_F(TextureTest, FloatLinear) {
1352 TestHelper::SetupFeatureInfoInitExpectations( 1300 TestHelper::SetupFeatureInfoInitExpectations(
1353 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear"); 1301 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear");
1354 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1302 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1355 feature_info->InitializeForTesting(); 1303 feature_info->InitializeForTesting();
1356 TextureManager manager(NULL, 1304 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1357 feature_info.get(), 1305 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1358 kMaxTextureSize, 1306 kMax3DTextureSize, kMaxArrayTextureLayers,
1359 kMaxCubeMapTextureSize, 1307 kUseDefaultTextures, nullptr);
1360 kMaxRectangleTextureSize,
1361 kMax3DTextureSize,
1362 kMaxArrayTextureLayers,
1363 kUseDefaultTextures);
1364 manager.CreateTexture(kClient1Id, kService1Id); 1308 manager.CreateTexture(kClient1Id, kService1Id);
1365 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1309 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1366 ASSERT_TRUE(texture_ref != NULL); 1310 ASSERT_TRUE(texture_ref != NULL);
1367 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 1311 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1368 Texture* texture = texture_ref->texture(); 1312 Texture* texture = texture_ref->texture();
1369 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 1313 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1370 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, 1314 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0,
1371 GL_RGBA, GL_FLOAT, gfx::Rect(1, 1)); 1315 GL_RGBA, GL_FLOAT, gfx::Rect(1, 1));
1372 EXPECT_TRUE(manager.CanRender(texture_ref)); 1316 EXPECT_TRUE(manager.CanRender(texture_ref));
1373 manager.Destroy(false); 1317 manager.Destroy(false);
1374 } 1318 }
1375 1319
1376 TEST_F(TextureTest, HalfFloatNotLinear) { 1320 TEST_F(TextureTest, HalfFloatNotLinear) {
1377 TestHelper::SetupFeatureInfoInitExpectations( 1321 TestHelper::SetupFeatureInfoInitExpectations(
1378 gl_.get(), "GL_OES_texture_half_float"); 1322 gl_.get(), "GL_OES_texture_half_float");
1379 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1323 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1380 feature_info->InitializeForTesting(); 1324 feature_info->InitializeForTesting();
1381 TextureManager manager(NULL, 1325 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1382 feature_info.get(), 1326 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1383 kMaxTextureSize, 1327 kMax3DTextureSize, kMaxArrayTextureLayers,
1384 kMaxCubeMapTextureSize, 1328 kUseDefaultTextures, nullptr);
1385 kMaxRectangleTextureSize,
1386 kMax3DTextureSize,
1387 kMaxArrayTextureLayers,
1388 kUseDefaultTextures);
1389 manager.CreateTexture(kClient1Id, kService1Id); 1329 manager.CreateTexture(kClient1Id, kService1Id);
1390 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1330 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1391 ASSERT_TRUE(texture_ref != NULL); 1331 ASSERT_TRUE(texture_ref != NULL);
1392 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 1332 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1393 Texture* texture = texture_ref->texture(); 1333 Texture* texture = texture_ref->texture();
1394 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 1334 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1395 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, 1335 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0,
1396 GL_RGBA, GL_HALF_FLOAT_OES, gfx::Rect(1, 1)); 1336 GL_RGBA, GL_HALF_FLOAT_OES, gfx::Rect(1, 1));
1397 EXPECT_FALSE(manager.CanRender(texture_ref)); 1337 EXPECT_FALSE(manager.CanRender(texture_ref));
1398 TestHelper::SetTexParameteriWithExpectations( 1338 TestHelper::SetTexParameteriWithExpectations(
1399 gl_.get(), error_state_.get(), &manager, 1339 gl_.get(), error_state_.get(), &manager,
1400 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); 1340 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR);
1401 EXPECT_FALSE(manager.CanRender(texture_ref)); 1341 EXPECT_FALSE(manager.CanRender(texture_ref));
1402 TestHelper::SetTexParameteriWithExpectations( 1342 TestHelper::SetTexParameteriWithExpectations(
1403 gl_.get(), error_state_.get(), &manager, texture_ref, 1343 gl_.get(), error_state_.get(), &manager, texture_ref,
1404 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); 1344 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR);
1405 EXPECT_TRUE(manager.CanRender(texture_ref)); 1345 EXPECT_TRUE(manager.CanRender(texture_ref));
1406 manager.Destroy(false); 1346 manager.Destroy(false);
1407 } 1347 }
1408 1348
1409 TEST_F(TextureTest, HalfFloatLinear) { 1349 TEST_F(TextureTest, HalfFloatLinear) {
1410 TestHelper::SetupFeatureInfoInitExpectations( 1350 TestHelper::SetupFeatureInfoInitExpectations(
1411 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); 1351 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear");
1412 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1352 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1413 feature_info->InitializeForTesting(); 1353 feature_info->InitializeForTesting();
1414 TextureManager manager(NULL, 1354 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1415 feature_info.get(), 1355 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1416 kMaxTextureSize, 1356 kMax3DTextureSize, kMaxArrayTextureLayers,
1417 kMaxCubeMapTextureSize, 1357 kUseDefaultTextures, nullptr);
1418 kMaxRectangleTextureSize,
1419 kMax3DTextureSize,
1420 kMaxArrayTextureLayers,
1421 kUseDefaultTextures);
1422 manager.CreateTexture(kClient1Id, kService1Id); 1358 manager.CreateTexture(kClient1Id, kService1Id);
1423 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1359 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1424 ASSERT_TRUE(texture_ref != NULL); 1360 ASSERT_TRUE(texture_ref != NULL);
1425 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 1361 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1426 Texture* texture = texture_ref->texture(); 1362 Texture* texture = texture_ref->texture();
1427 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); 1363 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
1428 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, 1364 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0,
1429 GL_RGBA, GL_HALF_FLOAT_OES, gfx::Rect(1, 1)); 1365 GL_RGBA, GL_HALF_FLOAT_OES, gfx::Rect(1, 1));
1430 EXPECT_TRUE(manager.CanRender(texture_ref)); 1366 EXPECT_TRUE(manager.CanRender(texture_ref));
1431 manager.Destroy(false); 1367 manager.Destroy(false);
1432 } 1368 }
1433 1369
1434 TEST_F(TextureTest, EGLImageExternal) { 1370 TEST_F(TextureTest, EGLImageExternal) {
1435 TestHelper::SetupFeatureInfoInitExpectations( 1371 TestHelper::SetupFeatureInfoInitExpectations(
1436 gl_.get(), "GL_OES_EGL_image_external"); 1372 gl_.get(), "GL_OES_EGL_image_external");
1437 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1373 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1438 feature_info->InitializeForTesting(); 1374 feature_info->InitializeForTesting();
1439 TextureManager manager(NULL, 1375 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1440 feature_info.get(), 1376 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1441 kMaxTextureSize, 1377 kMax3DTextureSize, kMaxArrayTextureLayers,
1442 kMaxCubeMapTextureSize, 1378 kUseDefaultTextures, nullptr);
1443 kMaxRectangleTextureSize,
1444 kMax3DTextureSize,
1445 kMaxArrayTextureLayers,
1446 kUseDefaultTextures);
1447 manager.CreateTexture(kClient1Id, kService1Id); 1379 manager.CreateTexture(kClient1Id, kService1Id);
1448 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1380 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1449 ASSERT_TRUE(texture_ref != NULL); 1381 ASSERT_TRUE(texture_ref != NULL);
1450 manager.SetTarget(texture_ref, GL_TEXTURE_EXTERNAL_OES); 1382 manager.SetTarget(texture_ref, GL_TEXTURE_EXTERNAL_OES);
1451 Texture* texture = texture_ref->texture(); 1383 Texture* texture = texture_ref->texture();
1452 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), texture->target()); 1384 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), texture->target());
1453 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); 1385 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref));
1454 manager.Destroy(false); 1386 manager.Destroy(false);
1455 } 1387 }
1456 1388
1457 TEST_F(TextureTest, DepthTexture) { 1389 TEST_F(TextureTest, DepthTexture) {
1458 TestHelper::SetupFeatureInfoInitExpectations( 1390 TestHelper::SetupFeatureInfoInitExpectations(
1459 gl_.get(), "GL_ANGLE_depth_texture"); 1391 gl_.get(), "GL_ANGLE_depth_texture");
1460 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 1392 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo());
1461 feature_info->InitializeForTesting(); 1393 feature_info->InitializeForTesting();
1462 TextureManager manager(NULL, 1394 TextureManager manager(nullptr, feature_info.get(), kMaxTextureSize,
1463 feature_info.get(), 1395 kMaxCubeMapTextureSize, kMaxRectangleTextureSize,
1464 kMaxTextureSize, 1396 kMax3DTextureSize, kMaxArrayTextureLayers,
1465 kMaxCubeMapTextureSize, 1397 kUseDefaultTextures, nullptr);
1466 kMaxRectangleTextureSize,
1467 kMax3DTextureSize,
1468 kMaxArrayTextureLayers,
1469 kUseDefaultTextures);
1470 manager.CreateTexture(kClient1Id, kService1Id); 1398 manager.CreateTexture(kClient1Id, kService1Id);
1471 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 1399 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
1472 ASSERT_TRUE(texture_ref != NULL); 1400 ASSERT_TRUE(texture_ref != NULL);
1473 manager.SetTarget(texture_ref, GL_TEXTURE_2D); 1401 manager.SetTarget(texture_ref, GL_TEXTURE_2D);
1474 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4, 1402 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4,
1475 1, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, gfx::Rect()); 1403 1, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, gfx::Rect());
1476 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); 1404 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref));
1477 manager.Destroy(false); 1405 manager.Destroy(false);
1478 } 1406 }
1479 1407
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
2229 static const bool kUseDefaultTextures = false; 2157 static const bool kUseDefaultTextures = false;
2230 2158
2231 SharedTextureTest() : feature_info_(new FeatureInfo()) {} 2159 SharedTextureTest() : feature_info_(new FeatureInfo()) {}
2232 2160
2233 ~SharedTextureTest() override {} 2161 ~SharedTextureTest() override {}
2234 2162
2235 void SetUp() override { 2163 void SetUp() override {
2236 GpuServiceTest::SetUp(); 2164 GpuServiceTest::SetUp();
2237 memory_tracker1_ = new CountingMemoryTracker; 2165 memory_tracker1_ = new CountingMemoryTracker;
2238 texture_manager1_.reset( 2166 texture_manager1_.reset(
2239 new TextureManager(memory_tracker1_.get(), 2167 new TextureManager(memory_tracker1_.get(), feature_info_.get(),
2240 feature_info_.get(),
2241 TextureManagerTest::kMaxTextureSize, 2168 TextureManagerTest::kMaxTextureSize,
2242 TextureManagerTest::kMaxCubeMapTextureSize, 2169 TextureManagerTest::kMaxCubeMapTextureSize,
2243 TextureManagerTest::kMaxRectangleTextureSize, 2170 TextureManagerTest::kMaxRectangleTextureSize,
2244 TextureManagerTest::kMax3DTextureSize, 2171 TextureManagerTest::kMax3DTextureSize,
2245 TextureManagerTest::kMaxArrayTextureLayers, 2172 TextureManagerTest::kMaxArrayTextureLayers,
2246 kUseDefaultTextures)); 2173 kUseDefaultTextures, nullptr));
2247 memory_tracker2_ = new CountingMemoryTracker; 2174 memory_tracker2_ = new CountingMemoryTracker;
2248 texture_manager2_.reset( 2175 texture_manager2_.reset(
2249 new TextureManager(memory_tracker2_.get(), 2176 new TextureManager(memory_tracker2_.get(), feature_info_.get(),
2250 feature_info_.get(),
2251 TextureManagerTest::kMaxTextureSize, 2177 TextureManagerTest::kMaxTextureSize,
2252 TextureManagerTest::kMaxCubeMapTextureSize, 2178 TextureManagerTest::kMaxCubeMapTextureSize,
2253 TextureManagerTest::kMaxRectangleTextureSize, 2179 TextureManagerTest::kMaxRectangleTextureSize,
2254 TextureManagerTest::kMax3DTextureSize, 2180 TextureManagerTest::kMax3DTextureSize,
2255 TextureManagerTest::kMaxArrayTextureLayers, 2181 TextureManagerTest::kMaxArrayTextureLayers,
2256 kUseDefaultTextures)); 2182 kUseDefaultTextures, nullptr));
2257 SetupFeatureInfo("", "OpenGL ES 2.0", false); 2183 SetupFeatureInfo("", "OpenGL ES 2.0", false);
2258 TestHelper::SetupTextureManagerInitExpectations( 2184 TestHelper::SetupTextureManagerInitExpectations(
2259 gl_.get(), false, false, false, "", kUseDefaultTextures); 2185 gl_.get(), false, false, false, "", kUseDefaultTextures);
2260 texture_manager1_->Initialize(); 2186 texture_manager1_->Initialize();
2261 TestHelper::SetupTextureManagerInitExpectations( 2187 TestHelper::SetupTextureManagerInitExpectations(
2262 gl_.get(), false, false, false, "", kUseDefaultTextures); 2188 gl_.get(), false, false, false, "", kUseDefaultTextures);
2263 texture_manager2_->Initialize(); 2189 texture_manager2_->Initialize();
2264 } 2190 }
2265 2191
2266 void TearDown() override { 2192 void TearDown() override {
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
2768 ExpectValid( 2694 ExpectValid(
2769 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); 2695 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8);
2770 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 2696 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
2771 GL_DEPTH32F_STENCIL8); 2697 GL_DEPTH32F_STENCIL8);
2772 2698
2773 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8); 2699 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8);
2774 } 2700 }
2775 2701
2776 } // namespace gles2 2702 } // namespace gles2
2777 } // namespace gpu 2703 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698