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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp

Issue 2013723002: Consider ClipPathDisplayItems for GPU veto. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit test asserts Created 4 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "platform/graphics/paint/PaintController.h" 5 #include "platform/graphics/paint/PaintController.h"
6 6
7 #include "platform/TraceEvent.h" 7 #include "platform/TraceEvent.h"
8 #include "platform/graphics/GraphicsLayer.h" 8 #include "platform/graphics/GraphicsLayer.h"
9 #include "platform/graphics/paint/DrawingDisplayItem.h" 9 #include "platform/graphics/paint/DrawingDisplayItem.h"
10 #include "third_party/skia/include/core/SkPictureAnalyzer.h" 10 #include "third_party/skia/include/core/SkPictureAnalyzer.h"
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 SkPictureGpuAnalyzer gpuAnalyzer; 305 SkPictureGpuAnalyzer gpuAnalyzer;
306 306
307 if (m_currentPaintArtifact.isEmpty()) { 307 if (m_currentPaintArtifact.isEmpty()) {
308 #if DCHECK_IS_ON() 308 #if DCHECK_IS_ON()
309 for (const auto& item : m_newDisplayItemList) 309 for (const auto& item : m_newDisplayItemList)
310 DCHECK(!item.isCached()); 310 DCHECK(!item.isCached());
311 #endif 311 #endif
312 312
313 for (const auto& item : m_newDisplayItemList) { 313 for (const auto& item : m_newDisplayItemList) {
314 m_newDisplayItemList.appendVisualRect(visualRectForDisplayItem(item, offsetFromLayoutObject)); 314 m_newDisplayItemList.appendVisualRect(visualRectForDisplayItem(item, offsetFromLayoutObject));
315 if (item.isDrawing()) 315 // No reason to continue the analysis once we have a veto.
316 gpuAnalyzer.analyze(static_cast<const DrawingDisplayItem&>(item) .picture()); 316 if (gpuAnalyzer.suitableForGpuRasterization())
317 item.analyzeForGpuRasterization(gpuAnalyzer);
317 } 318 }
318 m_currentPaintArtifact = PaintArtifact(std::move(m_newDisplayItemList), m_newPaintChunks.releasePaintChunks(), gpuAnalyzer.suitableForGpuRasterization() ); 319 m_currentPaintArtifact = PaintArtifact(std::move(m_newDisplayItemList), m_newPaintChunks.releasePaintChunks(), gpuAnalyzer.suitableForGpuRasterization() );
319 m_newDisplayItemList = DisplayItemList(kInitialDisplayItemListCapacityBy tes); 320 m_newDisplayItemList = DisplayItemList(kInitialDisplayItemListCapacityBy tes);
320 updateCacheGeneration(); 321 updateCacheGeneration();
321 return; 322 return;
322 } 323 }
323 324
324 // Stores indices to valid DrawingDisplayItems in m_currentDisplayItems that have not been matched 325 // Stores indices to valid DrawingDisplayItems in m_currentDisplayItems that have not been matched
325 // by CachedDisplayItems during synchronized matching. The indexed items wil l be matched 326 // by CachedDisplayItems during synchronized matching. The indexed items wil l be matched
326 // by later out-of-order CachedDisplayItems in m_newDisplayItemList. This en sures that when 327 // by later out-of-order CachedDisplayItems in m_newDisplayItemList. This en sures that when
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 568
568 void PaintController::showDebugData() const 569 void PaintController::showDebugData() const
569 { 570 {
570 WTFLogAlways("current display item list: [%s]\n", displayItemListAsDebugStri ng(m_currentPaintArtifact.getDisplayItemList()).utf8().data()); 571 WTFLogAlways("current display item list: [%s]\n", displayItemListAsDebugStri ng(m_currentPaintArtifact.getDisplayItemList()).utf8().data());
571 WTFLogAlways("new display item list: [%s]\n", displayItemListAsDebugString(m _newDisplayItemList).utf8().data()); 572 WTFLogAlways("new display item list: [%s]\n", displayItemListAsDebugString(m _newDisplayItemList).utf8().data());
572 } 573 }
573 574
574 #endif // ifndef NDEBUG 575 #endif // ifndef NDEBUG
575 576
576 } // namespace blink 577 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698