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

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

Issue 1412883002: Fix WebGL 2 texture renderability check. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: working Created 5 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 <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 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_->HaveUnrenderableTextures());
685 } 685 }
686 686
687 TEST_F(TextureTest, BaseLevel) {
688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
689 Texture* texture = texture_ref_->texture();
690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
691 // Check Setting level 1 to POT
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));
694 SetParameter(
695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR);
696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
697 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
698 SetParameter(
699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR);
700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
701 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
702 }
703
704 TEST_F(TextureTest, BaseLevelMaxLevel) {
705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
706 Texture* texture = texture_ref_->texture();
707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target());
708 // Set up level 2, 3, 4.
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));
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));
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));
715 SetParameter(
716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR,
717 GL_NO_ERROR);
718 SetParameter(
719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR);
720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
721 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
722 SetParameter(
723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR);
724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
725 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
726 SetParameter(
727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR);
728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get()));
729 EXPECT_FALSE(manager_->HaveUnrenderableTextures());
730 SetParameter(
731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR);
732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get()));
733 EXPECT_TRUE(manager_->HaveUnrenderableTextures());
734 }
735
687 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { 736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) {
688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); 737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
689 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); 738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64);
690 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,
691 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); 740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4));
692 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); 741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0);
693 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); 742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84);
694 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); 743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get()));
695 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); 744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0);
696 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); 745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0);
(...skipping 1626 matching lines...) Expand 10 before | Expand all | Expand 10 after
2323 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); 2372 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F);
2324 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); 2373 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8);
2325 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 2374 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
2326 GL_DEPTH32F_STENCIL8); 2375 GL_DEPTH32F_STENCIL8);
2327 2376
2328 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); 2377 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8);
2329 } 2378 }
2330 2379
2331 } // namespace gles2 2380 } // namespace gles2
2332 } // namespace gpu 2381 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698