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

Unified Diff: content/common/gpu/gpu_memory_manager_unittest.cc

Issue 12212143: Distribute extra memory evenly among visible clients (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: One more missed test Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/gpu/gpu_memory_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/gpu_memory_manager_unittest.cc
diff --git a/content/common/gpu/gpu_memory_manager_unittest.cc b/content/common/gpu/gpu_memory_manager_unittest.cc
index 4153d62909881f7140b9fa2c16a567c8af680fc5..61de4b93163e546ec1797057cb1c61d1a5ec3bcd 100644
--- a/content/common/gpu/gpu_memory_manager_unittest.cc
+++ b/content/common/gpu/gpu_memory_manager_unittest.cc
@@ -783,6 +783,12 @@ TEST_F(GpuMemoryManagerTest, TestBackgroundMru) {
memmgr_.TestingSetAvailableGpuMemory(64);
memmgr_.TestingSetNonvisibleAvailableGpuMemory(16);
+ uint64 bytes_when_not_visible_expected =
+ memmgr_.GetCurrentNonvisibleAvailableGpuMemory();
+#if defined (OS_ANDROID)
+ bytes_when_not_visible_expected = 0;
+#endif
+
FakeClient stub1(&memmgr_, GenerateUniqueSurfaceId(), true);
FakeClient stub2(&memmgr_, GenerateUniqueSurfaceId(), true);
FakeClient stub3(&memmgr_, GenerateUniqueSurfaceId(), true);
@@ -795,26 +801,25 @@ TEST_F(GpuMemoryManagerTest, TestBackgroundMru) {
Manage();
EXPECT_EQ(memmgr_.bytes_nonvisible_available_gpu_memory_,
memmgr_.GetCurrentNonvisibleAvailableGpuMemory());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub1.BytesWhenNotVisible());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub2.BytesWhenNotVisible());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub3.BytesWhenNotVisible());
-
+ EXPECT_EQ(stub1.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub2.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub3.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
// Background stubs 1 and 2, and they should fit
stub2.SetVisible(false);
stub1.SetVisible(false);
Manage();
EXPECT_EQ(memmgr_.bytes_nonvisible_available_gpu_memory_,
- memmgr_.GetCurrentNonvisibleAvailableGpuMemory());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub1.BytesWhenNotVisible());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub2.BytesWhenNotVisible());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub3.BytesWhenNotVisible());
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub1.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub2.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub3.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
// Now background stub 3, and it should cause stub 2 to be
// evicted because it was set non-visible first
@@ -822,12 +827,12 @@ TEST_F(GpuMemoryManagerTest, TestBackgroundMru) {
Manage();
EXPECT_EQ(memmgr_.bytes_nonvisible_available_gpu_memory_,
memmgr_.GetCurrentNonvisibleAvailableGpuMemory());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub1.BytesWhenNotVisible());
- EXPECT_EQ(0ul,
- stub2.BytesWhenNotVisible());
- EXPECT_EQ(memmgr_.GetCurrentNonvisibleAvailableGpuMemory(),
- stub3.BytesWhenNotVisible());
+ EXPECT_EQ(stub1.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
+ EXPECT_EQ(stub2.BytesWhenNotVisible(),
+ 0ul);
+ EXPECT_EQ(stub3.BytesWhenNotVisible(),
+ bytes_when_not_visible_expected);
}
// Test GpuMemoryManager's tracking of unmanaged (e.g, WebGL) memory.
@@ -894,6 +899,11 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundMru) {
memmgr_.TestingSetNonvisibleAvailableGpuMemory(16);
memmgr_.TestingSetMinimumClientAllocation(8);
+ uint64 bytes_when_not_visible_expected = 6u;
+#if defined (OS_ANDROID)
+ bytes_when_not_visible_expected = 0;
+#endif
+
FakeClient stub1(&memmgr_, GenerateUniqueSurfaceId(), true);
FakeClient stub2(&memmgr_, GenerateUniqueSurfaceId(), true);
FakeClient stub3(&memmgr_, GenerateUniqueSurfaceId(), true);
@@ -910,9 +920,9 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundMru) {
EXPECT_LT(stub1.BytesWhenVisible(), 22u);
EXPECT_LT(stub2.BytesWhenVisible(), 22u);
EXPECT_LT(stub3.BytesWhenVisible(), 22u);
- EXPECT_GE(stub1.BytesWhenNotVisible(), 6u);
- EXPECT_GE(stub2.BytesWhenNotVisible(), 6u);
- EXPECT_GE(stub3.BytesWhenNotVisible(), 6u);
+ EXPECT_GE(stub1.BytesWhenNotVisible(), bytes_when_not_visible_expected);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
+ EXPECT_GE(stub3.BytesWhenNotVisible(), bytes_when_not_visible_expected);
// Background stubs 1 and 2, and they should fit. All stubs should
// have their full nicetohave budget should they become visible.
@@ -924,18 +934,17 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundMru) {
EXPECT_GE(stub3.BytesWhenVisible(), 23u);
EXPECT_LT(stub1.BytesWhenVisible(), 32u);
EXPECT_LT(stub2.BytesWhenVisible(), 32u);
- EXPECT_LT(stub3.BytesWhenVisible(), 32u);
- EXPECT_GE(stub1.BytesWhenNotVisible(), 6u);
- EXPECT_GE(stub2.BytesWhenNotVisible(), 6u);
- EXPECT_GE(stub3.BytesWhenNotVisible(), 6u);
+ EXPECT_GE(stub1.BytesWhenNotVisible(), bytes_when_not_visible_expected);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
+ EXPECT_GE(stub3.BytesWhenNotVisible(), bytes_when_not_visible_expected);
// Now background stub 3, and it should cause stub 2 to be
// evicted because it was set non-visible first
stub3.SetVisible(false);
Manage();
- EXPECT_GE(stub1.BytesWhenNotVisible(), 6u);
+ EXPECT_GE(stub1.BytesWhenNotVisible(), bytes_when_not_visible_expected);
EXPECT_EQ(stub2.BytesWhenNotVisible(), 0u);
- EXPECT_GE(stub3.BytesWhenNotVisible(), 6u);
+ EXPECT_GE(stub3.BytesWhenNotVisible(), bytes_when_not_visible_expected);
}
// Test that once a backgrounded client has dropped its resources, it
@@ -947,6 +956,11 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundDiscardPersistent) {
memmgr_.TestingSetNonvisibleAvailableGpuMemory(16);
memmgr_.TestingSetMinimumClientAllocation(8);
+ uint64 bytes_when_not_visible_expected = 10ul;
+#if defined (OS_ANDROID)
+ bytes_when_not_visible_expected = 0;
+#endif
+
FakeClient stub1(&memmgr_, GenerateUniqueSurfaceId(), true);
FakeClient stub2(&memmgr_, GenerateUniqueSurfaceId(), true);
@@ -955,8 +969,8 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundDiscardPersistent) {
SetClientStats(&stub1, 10, 20);
SetClientStats(&stub2, 10, 20);
Manage();
- EXPECT_GE(stub1.BytesWhenNotVisible(), 10u);
- EXPECT_GE(stub2.BytesWhenNotVisible(), 10u);
+ EXPECT_GE(stub1.BytesWhenNotVisible(), bytes_when_not_visible_expected);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
// If they both go nonvisible, then only the most recently used client
// should keep its contents.
@@ -964,16 +978,16 @@ TEST_F(GpuMemoryManagerTestNonuniform, BackgroundDiscardPersistent) {
stub2.SetVisible(false);
Manage();
EXPECT_EQ(stub1.BytesWhenNotVisible(), 0u);
- EXPECT_GE(stub2.BytesWhenNotVisible(), 10u);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
// When becoming visible, stub 2 should get its contents back, and
// retain them next time it is made nonvisible.
stub2.SetVisible(true);
Manage();
- EXPECT_GE(stub2.BytesWhenNotVisible(), 10u);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
stub2.SetVisible(false);
Manage();
- EXPECT_GE(stub2.BytesWhenNotVisible(), 10u);
+ EXPECT_GE(stub2.BytesWhenNotVisible(), bytes_when_not_visible_expected);
}
// Test tracking of unmanaged (e.g, WebGL) memory.
@@ -1041,10 +1055,10 @@ TEST_F(GpuMemoryManagerTestNonuniform, DefaultAllocation) {
FakeClient stub1(&memmgr_, GenerateUniqueSurfaceId(), true);
- // Expect that a client which has not sent stats receive the
- // default allocation.
+ // Expect that a client which has not sent stats receive at
+ // least the default allocation.
Manage();
- EXPECT_EQ(stub1.BytesWhenVisible(),
+ EXPECT_GE(stub1.BytesWhenVisible(),
memmgr_.GetDefaultClientAllocation());
EXPECT_EQ(stub1.BytesWhenNotVisible(), 0u);
}
« no previous file with comments | « content/common/gpu/gpu_memory_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698