Changeset 122658 in webkit
- Timestamp:
- Jul 13, 2012 8:05:06 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r122656 r122658 1 2012-07-13 Eric Penner <epenner@google.com> 2 3 [chromium] Add 'self-managed' option to CCPrioritizedTexture to enable render-surface and canvas use cases. 4 https://bugs.webkit.org/show_bug.cgi?id=91177 5 6 Reviewed by Adrienne Walker. 7 8 This makes the render-surface memory use case generic as 'self-managed' textures, 9 as this use case is popping up in other places (eg. canvases). It's exactly the 10 same idea except we can have as many place-holders as we want at arbitrary 11 priorities. 12 13 This already tested by the render surface unit tests which now also use the 14 generic placeholder. 15 16 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 17 (WebCore::CCLayerTreeHost::CCLayerTreeHost): 18 (WebCore::CCLayerTreeHost::initializeLayerRenderer): 19 (WebCore::CCLayerTreeHost::updateLayers): 20 (WebCore::CCLayerTreeHost::setPrioritiesForSurfaces): 21 (WebCore): 22 (WebCore::CCLayerTreeHost::setPrioritiesForLayers): 23 (WebCore::CCLayerTreeHost::prioritizeTextures): 24 (WebCore::CCLayerTreeHost::calculateMemoryForRenderSurfaces): 25 (WebCore::CCLayerTreeHost::paintLayerContents): 26 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 27 (CCLayerTreeHost): 28 * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: 29 (WebCore::CCPrioritizedTexture::CCPrioritizedTexture): 30 (WebCore::CCPrioritizedTexture::setToSelfManagedMemoryPlaceholder): 31 * platform/graphics/chromium/cc/CCPrioritizedTexture.h: 32 (CCPrioritizedTexture): 33 (WebCore::CCPrioritizedTexture::setIsSelfManaged): 34 (WebCore::CCPrioritizedTexture::isSelfManaged): 35 * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: 36 (WebCore::CCPrioritizedTextureManager::prioritizeTextures): 37 (WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded): 38 (WebCore::CCPrioritizedTextureManager::destroyBacking): 39 * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: 40 (CCPrioritizedTextureManager): 41 (WebCore::CCPrioritizedTextureManager::memoryForSelfManagedTextures): 42 1 43 2012-07-13 Kent Tamura <tkent@chromium.org> 2 44 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r122506 r122658 153 153 154 154 m_contentsTextureManager = CCPrioritizedTextureManager::create(0, m_proxy->layerRendererCapabilities().maxTextureSize); 155 m_surfaceMemoryPlaceholder = m_contentsTextureManager->createTexture(IntSize(), GraphicsContext3D::RGBA); 155 156 156 157 m_layerRendererInitialized = true; … … 490 491 m_partialTextureUpdateRequests = 0; 491 492 492 prioritizeTextures(updateList);493 494 493 bool needMoreUpdates = paintLayerContents(updateList, updater); 495 494 if (m_triggerIdleUpdates && needMoreUpdates) … … 500 499 } 501 500 502 void CCLayerTreeHost::prioritizeTextures(const LayerList& updateList) 501 void CCLayerTreeHost::setPrioritiesForSurfaces(size_t surfaceMemoryBytes) 502 { 503 // Surfaces have a place holder for their memory since they are managed 504 // independantly but should still be tracked and reduce other memory usage. 505 m_surfaceMemoryPlaceholder->setTextureManager(m_contentsTextureManager.get()); 506 m_surfaceMemoryPlaceholder->setRequestPriority(CCPriorityCalculator::renderSurfacePriority()); 507 m_surfaceMemoryPlaceholder->setToSelfManagedMemoryPlaceholder(surfaceMemoryBytes); 508 } 509 510 void CCLayerTreeHost::setPrioritiesForLayers(const LayerList& updateList) 503 511 { 504 512 // Use BackToFront since it's cheap and this isn't order-dependent. 505 513 typedef CCLayerIterator<LayerChromium, Vector<RefPtr<LayerChromium> >, RenderSurfaceChromium, CCLayerIteratorActions::BackToFront> CCLayerIteratorType; 506 507 m_contentsTextureManager->clearPriorities();508 514 509 515 CCPriorityCalculator calculator; … … 519 525 } 520 526 } 521 527 } 528 529 void CCLayerTreeHost::prioritizeTextures(const LayerList& renderSurfaceLayerList, CCOverdrawMetrics& metrics) 530 { 531 m_contentsTextureManager->clearPriorities(); 532 533 size_t memoryForRenderSurfacesMetric = calculateMemoryForRenderSurfaces(renderSurfaceLayerList); 534 535 setPrioritiesForLayers(renderSurfaceLayerList); 536 setPrioritiesForSurfaces(memoryForRenderSurfacesMetric); 537 538 metrics.didUseContentsTextureMemoryBytes(m_contentsTextureManager->memoryAboveCutoffBytes()); 539 metrics.didUseRenderSurfaceTextureMemoryBytes(memoryForRenderSurfacesMetric); 540 541 m_contentsTextureManager->prioritizeTextures(); 542 } 543 544 size_t CCLayerTreeHost::calculateMemoryForRenderSurfaces(const LayerList& updateList) 545 { 522 546 size_t readbackBytes = 0; 523 547 size_t maxBackgroundTextureBytes = 0; … … 540 564 readbackBytes = CCTexture::memorySizeBytes(m_deviceViewportSize, GraphicsContext3D::RGBA); 541 565 } 542 size_t renderSurfacesBytes = readbackBytes + maxBackgroundTextureBytes + contentsTextureBytes; 543 544 m_contentsTextureManager->prioritizeTextures(renderSurfacesBytes); 566 return readbackBytes + maxBackgroundTextureBytes + contentsTextureBytes; 545 567 } 546 568 … … 575 597 CCOcclusionTracker occlusionTracker(IntRect(IntPoint(), deviceViewportSize()), recordMetricsForFrame); 576 598 occlusionTracker.setMinimumTrackingSize(m_settings.minimumOcclusionTrackingSize); 599 600 prioritizeTextures(renderSurfaceLayerList, occlusionTracker.overdrawMetrics()); 577 601 578 602 CCLayerIteratorType end = CCLayerIteratorType::end(&renderSurfaceLayerList); … … 592 616 } 593 617 594 occlusionTracker.overdrawMetrics().didUseContentsTextureMemoryBytes(m_contentsTextureManager->memoryAboveCutoffBytes());595 occlusionTracker.overdrawMetrics().didUseRenderSurfaceTextureMemoryBytes(m_contentsTextureManager->memoryForRenderSurfacesBytes());596 618 occlusionTracker.overdrawMetrics().recordMetrics(this); 597 619 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r122506 r122658 286 286 void updateLayers(LayerChromium*, CCTextureUpdater&); 287 287 288 void prioritizeTextures(const LayerList& updateList); 288 void prioritizeTextures(const LayerList&, CCOverdrawMetrics&); 289 void setPrioritiesForSurfaces(size_t surfaceMemoryBytes); 290 void setPrioritiesForLayers(const LayerList&); 291 size_t calculateMemoryForRenderSurfaces(const LayerList& updateList); 289 292 290 293 void animateLayers(double monotonicTime); … … 310 313 RefPtr<LayerChromium> m_rootLayer; 311 314 OwnPtr<CCPrioritizedTextureManager> m_contentsTextureManager; 315 OwnPtr<CCPrioritizedTexture> m_surfaceMemoryPlaceholder; 312 316 313 317 CCLayerTreeSettings m_settings; -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.cpp
r122506 r122658 43 43 , m_priority(CCPriorityCalculator::lowestPriority()) 44 44 , m_isAbovePriorityCutoff(false) 45 , m_isSelfManaged(false) 45 46 , m_backing(0) 46 47 , m_manager(0) … … 151 152 } 152 153 153 154 void CCPrioritizedTexture::setToSelfManagedMemoryPlaceholder(size_t bytes) 155 { 156 setDimensions(IntSize(), GraphicsContext3D::RGBA); 157 setIsSelfManaged(true); 158 m_bytes = bytes; 159 } 154 160 155 161 } // namespace WebCore -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTexture.h
r122506 r122658 94 94 unsigned textureId(); 95 95 96 // Self-managed textures are accounted for when prioritizing other textures, 97 // but they are not allocated/recycled/deleted, so this needs to be done 98 // externally. canAcquireBackingTexture() indicates if the texture would have 99 // been allowed given its priority. 100 void setIsSelfManaged(bool isSelfManaged) { m_isSelfManaged = isSelfManaged; } 101 bool isSelfManaged() { return m_isSelfManaged; } 102 void setToSelfManagedMemoryPlaceholder(size_t bytes); 103 96 104 private: 97 105 friend class CCPrioritizedTextureManager; … … 126 134 size_t m_priority; 127 135 bool m_isAbovePriorityCutoff; 136 bool m_isSelfManaged; 128 137 129 138 Backing* m_backing; -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp
r122506 r122658 56 56 } 57 57 58 void CCPrioritizedTextureManager::prioritizeTextures( size_t renderSurfacesMemoryBytes)58 void CCPrioritizedTextureManager::prioritizeTextures() 59 59 { 60 60 TRACE_EVENT0("cc", "CCPrioritizedTextureManager::prioritizeTextures"); … … 80 80 m_memoryAvailableBytes = m_maxMemoryLimitBytes; 81 81 m_priorityCutoff = CCPriorityCalculator::lowestPriority(); 82 bool reservedRenderSurfaces = false;83 82 size_t memoryBytes = 0; 84 83 for (TextureVector::iterator it = sortedTextures.begin(); it != sortedTextures.end(); ++it) { … … 86 85 break; 87 86 88 // FIXME: We can make placeholder objects similar to textures to represent the render surface memory request. 89 if (!reservedRenderSurfaces && CCPriorityCalculator::priorityIsLower((*it)->requestPriority(), CCPriorityCalculator::renderSurfacePriority())) { 90 size_t newMemoryBytes = memoryBytes + renderSurfacesMemoryBytes; 87 if ((*it)->isSelfManaged()) { 88 // Account for self-managed memory immediately by reducing the memory 89 // available (since it never gets acquired). 90 size_t newMemoryBytes = memoryBytes + (*it)->bytes(); 91 91 if (newMemoryBytes > m_memoryAvailableBytes) { 92 92 m_priorityCutoff = (*it)->requestPriority(); … … 94 94 break; 95 95 } 96 m_memoryAvailableBytes -= renderSurfacesMemoryBytes; 97 reservedRenderSurfaces = true; 96 m_memoryAvailableBytes -= (*it)->bytes(); 97 } else { 98 size_t newMemoryBytes = memoryBytes + (*it)->bytes(); 99 if (newMemoryBytes > m_memoryAvailableBytes) { 100 m_priorityCutoff = (*it)->requestPriority(); 101 break; 102 } 103 memoryBytes = newMemoryBytes; 98 104 } 99 100 size_t newMemoryBytes = memoryBytes + (*it)->bytes();101 if (newMemoryBytes > m_memoryAvailableBytes) {102 m_priorityCutoff = (*it)->requestPriority();103 break;104 }105 106 memoryBytes = newMemoryBytes;107 105 } 108 106 … … 114 112 bool isAbovePriorityCutoff = CCPriorityCalculator::priorityIsHigher((*it)->requestPriority(), m_priorityCutoff); 115 113 (*it)->setAbovePriorityCutoff(isAbovePriorityCutoff); 116 if (isAbovePriorityCutoff )114 if (isAbovePriorityCutoff && !(*it)->isSelfManaged()) 117 115 m_memoryAboveCutoffBytes += (*it)->bytes(); 118 116 } … … 173 171 void CCPrioritizedTextureManager::acquireBackingTextureIfNeeded(CCPrioritizedTexture* texture, TextureAllocator* allocator) 174 172 { 173 ASSERT(!texture->isSelfManaged()); 175 174 ASSERT(texture->isAbovePriorityCutoff()); 176 175 if (texture->backing() || !texture->isAbovePriorityCutoff()) … … 308 307 ASSERT(backing); 309 308 ASSERT(!backing->owner() || !backing->owner()->isAbovePriorityCutoff()); 309 ASSERT(!backing->owner() || !backing->owner()->isSelfManaged()); 310 310 ASSERT(m_backings.find(backing) != m_backings.end()); 311 311 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h
r122506 r122658 64 64 size_t memoryUseBytes() const { return m_memoryUseBytes; } 65 65 size_t memoryAboveCutoffBytes() const { return m_memoryAboveCutoffBytes; } 66 size_t memoryFor RenderSurfacesBytes() const { return m_maxMemoryLimitBytes - m_memoryAvailableBytes; }66 size_t memoryForSelfManagedTextures() const { return m_maxMemoryLimitBytes - m_memoryAvailableBytes; } 67 67 68 68 void setMaxMemoryLimitBytes(size_t bytes) { m_maxMemoryLimitBytes = bytes; } 69 69 size_t maxMemoryLimitBytes() const { return m_maxMemoryLimitBytes; } 70 70 71 void prioritizeTextures( size_t renderSurfacesMemoryBytes);71 void prioritizeTextures(); 72 72 void clearPriorities(); 73 73 -
trunk/Source/WebKit/chromium/ChangeLog
r122654 r122658 1 2012-07-13 Eric Penner <epenner@google.com> 2 3 [chromium] Add 'self-managed' option to CCPrioritizedTexture to enable render-surface and canvas use cases. 4 https://bugs.webkit.org/show_bug.cgi?id=91177 5 6 Reviewed by Adrienne Walker. 7 8 * tests/CCPrioritizedTextureTest.cpp: 9 (WTF::TEST_F): 10 * tests/TiledLayerChromiumTest.cpp: 11 1 12 2012-07-13 Brian Anderson <brianderson@chromium.org> 2 13 -
trunk/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp
r122506 r122658 100 100 101 101 // Only lower half should be available. 102 textureManager->prioritizeTextures( 0);102 textureManager->prioritizeTextures(); 103 103 EXPECT_TRUE(validateTexture(textures[0], false)); 104 104 EXPECT_TRUE(validateTexture(textures[7], false)); … … 111 111 112 112 // Only upper half should be available. 113 textureManager->prioritizeTextures( 0);113 textureManager->prioritizeTextures(); 114 114 EXPECT_FALSE(validateTexture(textures[0], false)); 115 115 EXPECT_FALSE(validateTexture(textures[7], false)); … … 136 136 // Set max limit to 8 textures 137 137 textureManager->setMaxMemoryLimitBytes(texturesMemorySize(8)); 138 textureManager->prioritizeTextures( 0);138 textureManager->prioritizeTextures(); 139 139 for (size_t i = 0; i < maxTextures; ++i) 140 140 validateTexture(textures[i], false); … … 146 146 // Set max limit to 5 textures 147 147 textureManager->setMaxMemoryLimitBytes(texturesMemorySize(5)); 148 textureManager->prioritizeTextures( 0);148 textureManager->prioritizeTextures(); 149 149 for (size_t i = 0; i < maxTextures; ++i) 150 150 EXPECT_EQ(validateTexture(textures[i], false), i < 5); … … 156 156 // Set max limit to 4 textures 157 157 textureManager->setMaxMemoryLimitBytes(texturesMemorySize(4)); 158 textureManager->prioritizeTextures( 0);158 textureManager->prioritizeTextures(); 159 159 for (size_t i = 0; i < maxTextures; ++i) 160 160 EXPECT_EQ(validateTexture(textures[i], false), i < 4); … … 182 182 for (size_t i = 0; i < numTextures; ++i) 183 183 textures[i]->setRequestPriority(200 + i); 184 textureManager->prioritizeTextures( 0);184 textureManager->prioritizeTextures(); 185 185 186 186 // Allocate textures which are currently high priority. … … 197 197 for (size_t i = 0; i < numTextures; ++i) 198 198 moreTextures[i]->setRequestPriority(100 + i); 199 textureManager->prioritizeTextures( 0);199 textureManager->prioritizeTextures(); 200 200 201 201 // Textures are now below cutoff. … … 243 243 // Set max limit to 8 textures 244 244 textureManager->setMaxMemoryLimitBytes(texturesMemorySize(8)); 245 textureManager->prioritizeTextures( 0);245 textureManager->prioritizeTextures(); 246 246 247 247 // The two high priority textures should be available, others should not. … … 274 274 275 275 texture->setRequestPriority(100); 276 textureManager->prioritizeTextures( 0);276 textureManager->prioritizeTextures(); 277 277 278 278 EXPECT_TRUE(validateTexture(texture, false)); … … 297 297 298 298 texture->setRequestPriority(100); 299 textureManagerOne->prioritizeTextures( 0);299 textureManagerOne->prioritizeTextures(); 300 300 301 301 EXPECT_TRUE(validateTexture(texture, false)); … … 313 313 texture->setTextureManager(textureManagerTwo.get()); 314 314 315 textureManagerTwo->prioritizeTextures( 0);315 textureManagerTwo->prioritizeTextures(); 316 316 317 317 EXPECT_TRUE(validateTexture(texture, false)); … … 327 327 OwnPtr<CCPrioritizedTextureManager> textureManager = createManager(maxTextures); 328 328 329 // Half of the memory is taken by surfaces. 330 const size_t renderSurfacesBytes = texturesMemorySize(4); 329 // Half of the memory is taken by surfaces (with high priority place-holder) 330 OwnPtr<CCPrioritizedTexture> renderSurfacePlaceHolder = textureManager->createTexture(m_textureSize, m_textureFormat); 331 renderSurfacePlaceHolder->setToSelfManagedMemoryPlaceholder(texturesMemorySize(4)); 332 renderSurfacePlaceHolder->setRequestPriority(CCPriorityCalculator::renderSurfacePriority()); 331 333 332 334 // Create textures to fill our memory limit. … … 341 343 342 344 // Only lower half should be available. 343 textureManager->prioritizeTextures( renderSurfacesBytes);345 textureManager->prioritizeTextures(); 344 346 EXPECT_TRUE(validateTexture(textures[0], false)); 345 347 EXPECT_TRUE(validateTexture(textures[3], false)); … … 352 354 353 355 // Only upper half should be available. 354 textureManager->prioritizeTextures( renderSurfacesBytes);356 textureManager->prioritizeTextures(); 355 357 EXPECT_FALSE(validateTexture(textures[0], false)); 356 358 EXPECT_FALSE(validateTexture(textures[3], false)); … … 359 361 360 362 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryAboveCutoffBytes()); 361 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryFor RenderSurfacesBytes());363 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryForSelfManagedTextures()); 362 364 EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); 363 365 … … 370 372 OwnPtr<CCPrioritizedTextureManager> textureManager = createManager(maxTextures); 371 373 372 // Half of the memory is taken by surfaces. 373 const size_t renderSurfacesBytes = texturesMemorySize(4); 374 // Half of the memory is taken by surfaces (with high priority place-holder) 375 OwnPtr<CCPrioritizedTexture> renderSurfacePlaceHolder = textureManager->createTexture(m_textureSize, m_textureFormat); 376 renderSurfacePlaceHolder->setToSelfManagedMemoryPlaceholder(texturesMemorySize(4)); 377 renderSurfacePlaceHolder->setRequestPriority(CCPriorityCalculator::renderSurfacePriority()); 374 378 375 379 // Create textures to fill our memory limit. … … 384 388 385 389 // The first four to be requested late will be available. 386 textureManager->prioritizeTextures( renderSurfacesBytes);390 textureManager->prioritizeTextures(); 387 391 for (unsigned i = 0; i < maxTextures; ++i) 388 392 EXPECT_FALSE(validateTexture(textures[i], false)); … … 393 397 394 398 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryAboveCutoffBytes()); 395 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryFor RenderSurfacesBytes());399 EXPECT_EQ(texturesMemorySize(4), textureManager->memoryForSelfManagedTextures()); 396 400 EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); 397 401 … … 404 408 OwnPtr<CCPrioritizedTextureManager> textureManager = createManager(maxTextures); 405 409 406 // Half of the memory is taken by surfaces. 407 const size_t renderSurfacesBytes = texturesMemorySize(4); 410 // Half of the memory is taken by surfaces (with high priority place-holder) 411 OwnPtr<CCPrioritizedTexture> renderSurfacePlaceHolder = textureManager->createTexture(m_textureSize, m_textureFormat); 412 renderSurfacePlaceHolder->setToSelfManagedMemoryPlaceholder(texturesMemorySize(4)); 413 renderSurfacePlaceHolder->setRequestPriority(CCPriorityCalculator::renderSurfacePriority()); 408 414 409 415 // Create textures to fill our memory limit. … … 419 425 textures[i]->setRequestPriority(CCPriorityCalculator::visiblePriority(false)); 420 426 421 textureManager->prioritizeTextures( renderSurfacesBytes);427 textureManager->prioritizeTextures(); 422 428 423 429 // Unable to requestLate textures in the child surface. … … 430 436 431 437 EXPECT_EQ(texturesMemorySize(6), textureManager->memoryAboveCutoffBytes()); 432 EXPECT_EQ(texturesMemorySize(2), textureManager->memoryFor RenderSurfacesBytes());438 EXPECT_EQ(texturesMemorySize(2), textureManager->memoryForSelfManagedTextures()); 433 439 EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); 434 440 -
trunk/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp
r122373 r122658 106 106 107 107 layer->setTexturePriorities(priorityCalculator); 108 textureManager->prioritizeTextures( 0);108 textureManager->prioritizeTextures(); 109 109 110 110 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); … … 120 120 // ....but then only update one of them. 121 121 layer->setTexturePriorities(priorityCalculator); 122 textureManager->prioritizeTextures( 0);122 textureManager->prioritizeTextures(); 123 123 layer->updateContentRect(updater, IntRect(0, 0, 100, 100), 0); 124 124 layer->pushPropertiesTo(layerImpl.get()); … … 145 145 146 146 layer->setTexturePriorities(priorityCalculator); 147 textureManager->prioritizeTextures( 0);147 textureManager->prioritizeTextures(); 148 148 149 149 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), &occluded); … … 189 189 190 190 layer->setTexturePriorities(priorityCalculator); 191 textureManager->prioritizeTextures( 0);191 textureManager->prioritizeTextures(); 192 192 193 193 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); … … 212 212 // This should recreate and update the deleted textures. 213 213 layer->setTexturePriorities(priorityCalculator); 214 textureManager->prioritizeTextures( 0);214 textureManager->prioritizeTextures(); 215 215 layer->updateContentRect(updater, IntRect(0, 0, 100, 100), 0); 216 216 updateTextures(); … … 240 240 241 241 layer->setTexturePriorities(priorityCalculator); 242 textureManager->prioritizeTextures( 0);242 textureManager->prioritizeTextures(); 243 243 244 244 layer->updateContentRect(updater, visibleRect, 0); … … 256 256 for (int i = 0; i < 4; i++) { 257 257 layer->setTexturePriorities(priorityCalculator); 258 textureManager->prioritizeTextures( 0);258 textureManager->prioritizeTextures(); 259 259 260 260 layer->updateContentRect(updater, visibleRect, 0); … … 308 308 layer2->setTexturePriorities(priorityCalculator); 309 309 layer1->setTexturePriorities(priorityCalculator); 310 textureManager->prioritizeTextures( 0);310 textureManager->prioritizeTextures(); 311 311 layer1->updateContentRect(updater, layerRect, 0); 312 312 layer2->updateContentRect(updater, IntRect(0, 0, 100, 100), 0); … … 326 326 layer2->setTexturePriorities(priorityCalculator); 327 327 layer1->setTexturePriorities(priorityCalculator); 328 textureManager->prioritizeTextures( 0);328 textureManager->prioritizeTextures(); 329 329 layer2->updateContentRect(updater, IntRect(0, 0, 100, 100), 0); 330 330 … … 346 346 layer2->setTexturePriorities(priorityCalculator); 347 347 layer1->setTexturePriorities(priorityCalculator); 348 textureManager->prioritizeTextures( 0);348 textureManager->prioritizeTextures(); 349 349 layer2->updateContentRect(updater, layer2Rect, 0); 350 350 layer1->updateContentRect(updater, layerRect, 0); … … 379 379 380 380 layer->setTexturePriorities(priorityCalculator); 381 textureManager->prioritizeTextures( 0);381 textureManager->prioritizeTextures(); 382 382 layer->updateContentRect(updater, IntRect(0, 0, 100, 100), &occluded); 383 383 updateTextures(); … … 404 404 405 405 layer->setTexturePriorities(priorityCalculator); 406 textureManager->prioritizeTextures( 0);406 textureManager->prioritizeTextures(); 407 407 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); 408 408 updateTextures(); … … 433 433 layer1->setTexturePriorities(priorityCalculator); 434 434 layer2->setTexturePriorities(priorityCalculator); 435 textureManager->prioritizeTextures( 0);435 textureManager->prioritizeTextures(); 436 436 437 437 layer1->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); … … 471 471 layer1->setTexturePriorities(priorityCalculator); 472 472 layer2->setTexturePriorities(priorityCalculator); 473 textureManager->prioritizeTextures( 0);473 textureManager->prioritizeTextures(); 474 474 475 475 // Invalidate a tile on layer2 … … 509 509 510 510 layer->setTexturePriorities(priorityCalculator); 511 textureManager->prioritizeTextures( 0);511 textureManager->prioritizeTextures(); 512 512 layer->updateContentRect(updater, visibleRect, 0); 513 513 … … 522 522 523 523 layer->setTexturePriorities(priorityCalculator); 524 textureManager->prioritizeTextures( 0);524 textureManager->prioritizeTextures(); 525 525 layer->updateContentRect(updater, visibleRect, 0); 526 526 … … 549 549 550 550 layer->setTexturePriorities(priorityCalculator); 551 textureManager->prioritizeTextures( 0);551 textureManager->prioritizeTextures(); 552 552 553 553 // Empty layers don't paint or idle-paint. … … 587 587 // Paint / idle-paint. 588 588 layer->setTexturePriorities(priorityCalculator); 589 textureManager->prioritizeTextures( 0);589 textureManager->prioritizeTextures(); 590 590 layer->updateContentRect(updater, visibleRect, 0); 591 591 … … 637 637 638 638 layer->setTexturePriorities(priorityCalculator); 639 textureManager->prioritizeTextures( 0);639 textureManager->prioritizeTextures(); 640 640 641 641 // If idlePaintRect gives back a non-empty result then we should paint it. Otherwise, … … 649 649 for (int k = 0; k < 4; ++k) { 650 650 layer->setTexturePriorities(priorityCalculator); 651 textureManager->prioritizeTextures( 0);651 textureManager->prioritizeTextures(); 652 652 653 653 layer->updateContentRect(updater, visibleRect, 0); … … 662 662 for (int k = 0; k < 4; ++k) { 663 663 layer->setTexturePriorities(priorityCalculator); 664 textureManager->prioritizeTextures( 0);664 textureManager->prioritizeTextures(); 665 665 666 666 layer->updateContentRect(updater, visibleRect, 0); … … 691 691 layer->invalidateContentRect(IntRect(0, 0, 100, 200)); 692 692 layer->setTexturePriorities(priorityCalculator); 693 textureManager->prioritizeTextures( 0);693 textureManager->prioritizeTextures(); 694 694 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); 695 695 updater.update(ccContext.get(), &fakeAllocator, &fakeCopier, &fakeUploader, 1000); … … 741 741 742 742 layer->setTexturePriorities(priorityCalculator); 743 textureManager->prioritizeTextures( 0);743 textureManager->prioritizeTextures(); 744 744 layer->updateContentRect(updater, contentBounds, 0); 745 745 EXPECT_FLOAT_RECT_EQ(FloatRect(0, 0, 300, 300 * 0.8), layer->updateRect()); … … 748 748 // After the tiles are updated once, another invalidate only needs to update the bounds of the layer. 749 749 layer->setTexturePriorities(priorityCalculator); 750 textureManager->prioritizeTextures( 0);750 textureManager->prioritizeTextures(); 751 751 layer->invalidateContentRect(contentBounds); 752 752 layer->updateContentRect(updater, contentBounds, 0); … … 758 758 layer->invalidateContentRect(partialDamage); 759 759 layer->setTexturePriorities(priorityCalculator); 760 textureManager->prioritizeTextures( 0);760 textureManager->prioritizeTextures(); 761 761 layer->updateContentRect(updater, contentBounds, 0); 762 762 EXPECT_FLOAT_RECT_EQ(FloatRect(45, 80, 15, 8), layer->updateRect()); … … 780 780 // Push the tiles to the impl side and check that there is exactly one. 781 781 layer->setTexturePriorities(priorityCalculator); 782 textureManager->prioritizeTextures( 0);782 textureManager->prioritizeTextures(); 783 783 layer->updateContentRect(updater, IntRect(0, 0, 100, 100), 0); 784 784 updateTextures(); … … 797 797 // The impl side should get 2x2 tiles now. 798 798 layer->setTexturePriorities(priorityCalculator); 799 textureManager->prioritizeTextures( 0);799 textureManager->prioritizeTextures(); 800 800 layer->updateContentRect(updater, IntRect(0, 0, 200, 200), 0); 801 801 updateTextures(); … … 811 811 layer->setTexturePriorities(priorityCalculator); 812 812 layer->updateContentRect(updater, IntRect(1, 0, 0, 1), 0); 813 textureManager->prioritizeTextures( 0);813 textureManager->prioritizeTextures(); 814 814 815 815 layer->pushPropertiesTo(layerImpl.get()); … … 881 881 882 882 layer->setTexturePriorities(priorityCalculator); 883 textureManager->prioritizeTextures( 0);883 textureManager->prioritizeTextures(); 884 884 layer->updateContentRect(updater, IntRect(0, 0, 700, 700), 0); 885 885 … … 900 900 // Ensure no crash for bounds where size * size would overflow an int. 901 901 layer->setTexturePriorities(priorityCalculator); 902 textureManager->prioritizeTextures( 0);902 textureManager->prioritizeTextures(); 903 903 layer->updateContentRect(updater, IntRect(0, 0, 700, 700), 0); 904 904 } … … 1040 1040 1041 1041 layer->setTexturePriorities(priorityCalculator); 1042 textureManager->prioritizeTextures( 0);1042 textureManager->prioritizeTextures(); 1043 1043 layer->updateContentRect(updater, IntRect(0, 0, 100, 200), 0); 1044 1044 EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1061 1061 1062 1062 layer->setTexturePriorities(priorityCalculator); 1063 textureManager->prioritizeTextures( 0);1063 textureManager->prioritizeTextures(); 1064 1064 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1065 1065 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1109 1109 1110 1110 layer->setTexturePriorities(priorityCalculator); 1111 textureManager->prioritizeTextures( 0);1111 textureManager->prioritizeTextures(); 1112 1112 layer->updateContentRect(updater, IntRect(0, 0, 600, 360), &occluded); 1113 1113 EXPECT_EQ(24-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1124 1124 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1125 1125 layer->setTexturePriorities(priorityCalculator); 1126 textureManager->prioritizeTextures( 0);1126 textureManager->prioritizeTextures(); 1127 1127 layer->updateContentRect(updater, IntRect(0, 0, 600, 350), &occluded); 1128 1128 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1139 1139 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1140 1140 layer->setTexturePriorities(priorityCalculator); 1141 textureManager->prioritizeTextures( 0);1141 textureManager->prioritizeTextures(); 1142 1142 layer->updateContentRect(updater, IntRect(0, 0, 600, 340), &occluded); 1143 1143 EXPECT_EQ(24-6, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1164 1164 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1165 1165 layer->setTexturePriorities(priorityCalculator); 1166 textureManager->prioritizeTextures( 0);1166 textureManager->prioritizeTextures(); 1167 1167 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1168 1168 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1204 1204 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1205 1205 layer->setTexturePriorities(priorityCalculator); 1206 textureManager->prioritizeTextures( 0);1206 textureManager->prioritizeTextures(); 1207 1207 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1208 1208 EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1232 1232 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1233 1233 layer->setTexturePriorities(priorityCalculator); 1234 textureManager->prioritizeTextures( 0);1234 textureManager->prioritizeTextures(); 1235 1235 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1236 1236 // The content is half the size of the layer (so the number of tiles is fewer). … … 1252 1252 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1253 1253 layer->setTexturePriorities(priorityCalculator); 1254 textureManager->prioritizeTextures( 0);1254 textureManager->prioritizeTextures(); 1255 1255 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1256 1256 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1272 1272 layer->invalidateContentRect(IntRect(0, 0, 600, 600)); 1273 1273 layer->setTexturePriorities(priorityCalculator); 1274 textureManager->prioritizeTextures( 0);1274 textureManager->prioritizeTextures(); 1275 1275 layer->updateContentRect(updater, IntRect(0, 0, 600, 600), &occluded); 1276 1276 EXPECT_EQ(9-1, layer->fakeLayerTextureUpdater()->prepareRectCount()); … … 1301 1301 1302 1302 layer->setTexturePriorities(priorityCalculator); 1303 textureManager->prioritizeTextures( 0);1303 textureManager->prioritizeTextures(); 1304 1304 1305 1305 // If the layer doesn't paint opaque content, then the visibleContentOpaqueRegion should be empty. … … 1394 1394 1395 1395 layer->setTexturePriorities(priorityCalculator); 1396 textureManager->prioritizeTextures( 0);1396 textureManager->prioritizeTextures(); 1397 1397 1398 1398 // Invalidates and paints the whole layer. … … 1637 1637 1638 1638 layer->setTexturePriorities(calculator); 1639 textureManager->prioritizeTextures( 0);1639 textureManager->prioritizeTextures(); 1640 1640 1641 1641 // Update the whole tile. … … 1670 1670 1671 1671 layer->setTexturePriorities(calculator); 1672 textureManager->prioritizeTextures( 0);1672 textureManager->prioritizeTextures(); 1673 1673 1674 1674 // Update the whole tile.
Note: See TracChangeset
for help on using the changeset viewer.