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

Unified Diff: cc/CCTextureUpdateControllerTest.cpp

Issue 10937007: cc: Only use upload throttling when performing full texture uploads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and update TiledLayerChromiumTest Created 8 years, 3 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 | « cc/CCTextureUpdateController.cpp ('k') | webkit/compositor_bindings/TiledLayerChromiumTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCTextureUpdateControllerTest.cpp
diff --git a/cc/CCTextureUpdateControllerTest.cpp b/cc/CCTextureUpdateControllerTest.cpp
index bae57a6524bf94e0f5a62b23ada45cb75933c038..418aeb3079a3ef14714c063e8e0faee2dcd55a26 100644
--- a/cc/CCTextureUpdateControllerTest.cpp
+++ b/cc/CCTextureUpdateControllerTest.cpp
@@ -243,10 +243,9 @@ TEST_F(CCTextureUpdateControllerTest, ZeroUploads)
{
appendFullUploadsToUpdateQueue(0);
appendPartialUploadsToUpdateQueue(0);
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ DebugScopedSetImplThread implThread;
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(0, m_numBeginUploads);
- EXPECT_EQ(0, m_numEndUploads);
EXPECT_EQ(0, m_numPreviousFlushes);
EXPECT_EQ(0, m_numPreviousUploads);
}
@@ -258,10 +257,8 @@ TEST_F(CCTextureUpdateControllerTest, OneFullUpload)
appendFullUploadsToUpdateQueue(1);
appendPartialUploadsToUpdateQueue(0);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(1, m_numPreviousFlushes);
EXPECT_EQ(1, m_numPreviousUploads);
}
@@ -271,10 +268,8 @@ TEST_F(CCTextureUpdateControllerTest, OnePartialUpload)
appendFullUploadsToUpdateQueue(0);
appendPartialUploadsToUpdateQueue(1);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(1, m_numPreviousFlushes);
EXPECT_EQ(1, m_numPreviousUploads);
}
@@ -284,237 +279,51 @@ TEST_F(CCTextureUpdateControllerTest, OneFullOnePartialUpload)
appendFullUploadsToUpdateQueue(1);
appendPartialUploadsToUpdateQueue(1);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- // We expect the full uploads to be followed by a flush
- // before the partial uploads begin.
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
- EXPECT_EQ(2, m_numPreviousFlushes);
+ EXPECT_EQ(1, m_numPreviousFlushes);
EXPECT_EQ(2, m_numPreviousUploads);
}
-// NO REMAINDER TESTS
// This class of tests upload a number of textures that is a multiple of the flush period.
const int fullUploadFlushMultipler = 7;
-const int fullNoRemainderCount = fullUploadFlushMultipler * kFlushPeriodFull;
+const int fullCount = fullUploadFlushMultipler * kFlushPeriodFull;
const int partialUploadFlushMultipler = 11;
-const int partialNoRemainderCount = partialUploadFlushMultipler * kFlushPeriodPartial;
+const int partialCount = partialUploadFlushMultipler * kFlushPeriodPartial;
-TEST_F(CCTextureUpdateControllerTest, ManyFullUploadsNoRemainder)
+TEST_F(CCTextureUpdateControllerTest, ManyFullUploads)
{
- appendFullUploadsToUpdateQueue(fullNoRemainderCount);
+ appendFullUploadsToUpdateQueue(fullCount);
appendPartialUploadsToUpdateQueue(0);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(fullUploadFlushMultipler, m_numPreviousFlushes);
- EXPECT_EQ(fullNoRemainderCount, m_numPreviousUploads);
+ EXPECT_EQ(fullCount, m_numPreviousUploads);
}
-TEST_F(CCTextureUpdateControllerTest, ManyPartialUploadsNoRemainder)
+TEST_F(CCTextureUpdateControllerTest, ManyPartialUploads)
{
appendFullUploadsToUpdateQueue(0);
- appendPartialUploadsToUpdateQueue(partialNoRemainderCount);
+ appendPartialUploadsToUpdateQueue(partialCount);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(partialUploadFlushMultipler, m_numPreviousFlushes);
- EXPECT_EQ(partialNoRemainderCount, m_numPreviousUploads);
-}
-
-TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploadsNoRemainder)
-{
- appendFullUploadsToUpdateQueue(fullNoRemainderCount);
- appendPartialUploadsToUpdateQueue(partialNoRemainderCount);
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
- EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPreviousFlushes);
- EXPECT_EQ(fullNoRemainderCount + partialNoRemainderCount, m_numPreviousUploads);
-}
-
-
-// MIN/MAX REMAINDER TESTS
-// This class of tests mix and match uploading 1 more and 1 less texture
-// than a multiple of the flush period.
-
-const int fullMinRemainderCount = fullNoRemainderCount + 1;
-const int fullMaxRemainderCount = fullNoRemainderCount - 1;
-const int partialMinRemainderCount = partialNoRemainderCount + 1;
-const int partialMaxRemainderCount = partialNoRemainderCount - 1;
-
-TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialMinRemainder)
-{
- appendFullUploadsToUpdateQueue(fullMinRemainderCount);
- appendPartialUploadsToUpdateQueue(partialMinRemainderCount);
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
- EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler + 2, m_numPreviousFlushes);
- EXPECT_EQ(fullMinRemainderCount + partialMinRemainderCount, m_numPreviousUploads);
+ EXPECT_EQ(partialCount, m_numPreviousUploads);
}
-TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialUploadsMaxRemainder)
+TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploads)
{
- appendFullUploadsToUpdateQueue(fullMaxRemainderCount);
- appendPartialUploadsToUpdateQueue(partialMaxRemainderCount);
+ appendFullUploadsToUpdateQueue(fullCount);
+ appendPartialUploadsToUpdateQueue(partialCount);
DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get());
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPreviousFlushes);
- EXPECT_EQ(fullMaxRemainderCount + partialMaxRemainderCount, m_numPreviousUploads);
-}
-
-TEST_F(CCTextureUpdateControllerTest, ManyFullMinRemainderManyPartialMaxRemainder)
-{
- appendFullUploadsToUpdateQueue(fullMinRemainderCount);
- appendPartialUploadsToUpdateQueue(partialMaxRemainderCount);
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
- EXPECT_EQ((fullUploadFlushMultipler+1) + partialUploadFlushMultipler, m_numPreviousFlushes);
- EXPECT_EQ(fullMinRemainderCount + partialMaxRemainderCount, m_numPreviousUploads);
-}
-
-TEST_F(CCTextureUpdateControllerTest, ManyFullMaxRemainderManyPartialMinRemainder)
-{
- appendFullUploadsToUpdateQueue(fullMaxRemainderCount);
- appendPartialUploadsToUpdateQueue(partialMinRemainderCount);
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
- EXPECT_EQ(fullUploadFlushMultipler + (partialUploadFlushMultipler+1), m_numPreviousFlushes);
- EXPECT_EQ(fullMaxRemainderCount + partialMinRemainderCount, m_numPreviousUploads);
-}
-
-
-// MULTIPLE UPDATE TESTS
-// These tests attempt to upload too many textures at once, requiring
-// multiple calls to update().
-
-int expectedFlushes(int uploads, int flushPeriod)
-{
- return (uploads + flushPeriod - 1) / flushPeriod;
-}
-
-TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateFullAndPartial)
-{
- const int kMaxUploadsPerUpdate = 40;
- const int kFullUploads = 100;
- const int kPartialUploads = 20;
-
- int expectedPreviousFlushes = 0;
- int expectedPreviousUploads = 0;
-
- setMaxUploadCountPerUpdate(kMaxUploadsPerUpdate);
- appendFullUploadsToUpdateQueue(kFullUploads);
- appendPartialUploadsToUpdateQueue(kPartialUploads);
-
- // First update (40 full)
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
-
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull);
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes);
-
- expectedPreviousUploads = kMaxUploadsPerUpdate;
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads);
-
- // Second update (40 full)
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(2, m_numBeginUploads);
- EXPECT_EQ(2, m_numEndUploads);
-
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull);
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes);
-
- expectedPreviousUploads = kMaxUploadsPerUpdate;
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads);
-
- // Third update (20 full, 20 partial)
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(3, m_numBeginUploads);
- EXPECT_EQ(3, m_numEndUploads);
-
- expectedPreviousFlushes = expectedFlushes(kFullUploads-kMaxUploadsPerUpdate*2, kFlushPeriodFull) +
- expectedFlushes(kPartialUploads, kFlushPeriodPartial);
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes);
-
- expectedPreviousUploads = (kFullUploads-kMaxUploadsPerUpdate*2)+kPartialUploads;
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads);
-
- // Final sanity checks
- EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads);
-}
-
-TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateAllPartial)
-{
- const int kMaxUploadsPerUpdate = 40;
- const int kFullUploads = 70;
- const int kPartialUploads = 30;
-
- int expectedPreviousFlushes = 0;
- int expectedPreviousUploads = 0;
-
- setMaxUploadCountPerUpdate(kMaxUploadsPerUpdate);
- appendFullUploadsToUpdateQueue(kFullUploads);
- appendPartialUploadsToUpdateQueue(kPartialUploads);
-
- // First update (40 full)
- DebugScopedSetImplThread implThread;
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(1, m_numBeginUploads);
- EXPECT_EQ(1, m_numEndUploads);
-
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull);
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes);
-
- expectedPreviousUploads = kMaxUploadsPerUpdate;
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads);
-
- // Second update (30 full, optionally 10 partial)
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(2, m_numBeginUploads);
- EXPECT_EQ(2, m_numEndUploads);
- EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate);
- // Be lenient on the exact number of flushes here, as the number of flushes
- // will depend on whether some partial uploads were performed.
- // onFlush(), onUpload(), and onEndUpload() will do basic flush checks for us anyway.
-
- // Third update (30 partial OR 20 partial if 10 partial uploaded in second update)
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate);
-
- EXPECT_EQ(3, m_numBeginUploads);
- EXPECT_EQ(3, m_numEndUploads);
- EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate);
- // Be lenient on the exact number of flushes here as well.
-
- // Final sanity checks
- EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads);
+ EXPECT_EQ(fullCount + partialCount, m_numPreviousUploads);
}
class FakeCCTextureUpdateControllerClient : public cc::CCTextureUpdateControllerClient {
« no previous file with comments | « cc/CCTextureUpdateController.cpp ('k') | webkit/compositor_bindings/TiledLayerChromiumTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698