Changeset 122360 in webkit
- Timestamp:
- Jul 11, 2012 1:14:28 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r122356 r122360 1 2012-07-11 Dana Jansens <danakj@chromium.org> 2 3 [chromium] Minimum size used for occlusion tracking should be a setting on CCLayerTreeHost 4 https://bugs.webkit.org/show_bug.cgi?id=90993 5 6 Reviewed by Adrienne Walker. 7 8 Move the default minimum size used for occlusion tracking from the 9 CCOcclusionTracker class into CCLayerTreeSettings. This value is then 10 used on both threads as the lower limit for any occlusion to be 11 remembered. 12 13 This allows us to use (0, 0) as the minimum size for tests, allowing all 14 occlusion to be tracked. 15 16 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 17 (WebCore::CCLayerTreeHost::paintLayerContents): 18 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 19 (WebCore::CCLayerTreeSettings::CCLayerTreeSettings): 20 (CCLayerTreeSettings): 21 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: 22 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses): 23 * platform/graphics/chromium/cc/CCOcclusionTracker.h: 24 1 25 2012-07-11 Anders Carlsson <andersca@apple.com> 2 26 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r122185 r122360 575 575 bool recordMetricsForFrame = true; // FIXME: In the future, disable this when about:tracing is off. 576 576 CCOcclusionTracker occlusionTracker(IntRect(IntPoint(), deviceViewportSize()), recordMetricsForFrame); 577 occlusionTracker.setMinimumTrackingSize( CCOcclusionTracker::preferredMinimumTrackingSize());577 occlusionTracker.setMinimumTrackingSize(m_settings.minimumOcclusionTrackingSize); 578 578 579 579 CCLayerIteratorType end = CCLayerIteratorType::end(&renderSurfaceLayerList); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r122185 r122360 97 97 , defaultTileSize(IntSize(256, 256)) 98 98 , maxUntiledLayerSize(IntSize(512, 512)) 99 , minimumOcclusionTrackingSize(IntSize(160, 160)) 99 100 { } 100 101 … … 113 114 IntSize defaultTileSize; 114 115 IntSize maxUntiledLayerSize; 116 IntSize minimumOcclusionTrackingSize; 115 117 }; 116 118 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
r122252 r122360 306 306 bool recordMetricsForFrame = true; // FIXME: In the future, disable this when about:tracing is off. 307 307 CCOcclusionTrackerImpl occlusionTracker(enclosingIntRect(m_rootScissorRect), recordMetricsForFrame); 308 occlusionTracker.setMinimumTrackingSize( CCOcclusionTrackerImpl::preferredMinimumTrackingSize());308 occlusionTracker.setMinimumTrackingSize(m_settings.minimumOcclusionTrackingSize); 309 309 310 310 if (settings().showOccludingRects) -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h
r121361 r122360 71 71 void setMinimumTrackingSize(const IntSize& size) { m_minimumTrackingSize = size; } 72 72 73 static IntSize preferredMinimumTrackingSize() { return IntSize(160, 160); }74 75 73 // The following is used for visualization purposes. 76 74 void setOccludingScreenSpaceRectsContainer(Vector<IntRect>* rects) { m_occludingScreenSpaceRects = rects; } -
trunk/Source/WebKit/chromium/ChangeLog
r122359 r122360 1 2012-07-11 Dana Jansens <danakj@chromium.org> 2 3 [chromium] Minimum size used for occlusion tracking should be a setting on CCLayerTreeHost 4 https://bugs.webkit.org/show_bug.cgi?id=90993 5 6 Reviewed by Adrienne Walker. 7 8 * tests/CCLayerTreeHostImplTest.cpp: 9 1 10 2012-07-11 Adam Barth <abarth@webkit.org> 2 11 -
trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp
r122272 r122360 71 71 { 72 72 CCLayerTreeSettings settings; 73 settings.minimumOcclusionTrackingSize = IntSize(); 74 73 75 m_hostImpl = CCLayerTreeHostImpl::create(settings, this); 74 76 m_hostImpl->initializeLayerRenderer(createContext(), UnthrottledUploader); … … 87 89 88 90 CCLayerTreeSettings settings; 91 settings.minimumOcclusionTrackingSize = IntSize(); 92 89 93 OwnPtr<CCLayerTreeHostImpl> myHostImpl = CCLayerTreeHostImpl::create(settings, this); 90 94 … … 685 689 TEST_F(CCLayerTreeHostImplTest, willDrawNotCalledOnOccludedLayer) 686 690 { 687 // Make the viewport large so that we can have large layers that get considered for occlusion (small layers do not).688 691 IntSize bigSize(1000, 1000); 689 692 m_hostImpl->setViewportSize(bigSize); … … 1185 1188 }; 1186 1189 1187 // https://bugs.webkit.org/show_bug.cgi?id=757831188 1190 TEST_F(CCLayerTreeHostImplTest, blendingOffWhenDrawingOpaqueLayers) 1189 1191 { 1190 1191 1192 { 1192 1193 OwnPtr<CCLayerImpl> root = CCLayerImpl::create(1); … … 1201 1202 root->addChild(BlendStateCheckLayer::create(2)); 1202 1203 BlendStateCheckLayer* layer1 = static_cast<BlendStateCheckLayer*>(root->children()[0].get()); 1204 layer1->setPosition(FloatPoint(2, 2)); 1203 1205 1204 1206 CCLayerTreeHostImpl::FrameData frame; … … 1253 1255 layer1->addChild(BlendStateCheckLayer::create(3)); 1254 1256 BlendStateCheckLayer* layer2 = static_cast<BlendStateCheckLayer*>(layer1->children()[0].get()); 1257 layer2->setPosition(FloatPoint(4, 4)); 1255 1258 1256 1259 // 2 opaque layers, drawn without blending.
Note: See TracChangeset
for help on using the changeset viewer.