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

Unified Diff: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h

Issue 1609343004: Add display list fallback reason histograms for 2D canvas (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git cl web Created 4 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
Index: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
index 0c3a2efd9cd0a6879f212840dfc53094277b40be..f7d37ae3a802ab2b8a6609e0bce7eb987dbc2bb5 100644
--- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
+++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
@@ -40,9 +40,9 @@ public:
// Implementation of ImageBufferSurface interfaces
SkCanvas* canvas() override;
- void disableDeferral() override;
+ void disableDeferral(DisableDeferralReason) override;
PassRefPtr<SkPicture> getPicture() override;
- void flush() override;
+ void flush(FlushReason) override;
void didDraw(const FloatRect&) override;
bool isValid() const override { return true; }
bool isRecording() const override { return !m_fallbackSurface; }
@@ -50,7 +50,7 @@ public:
void willOverwriteCanvas() override;
virtual void finalizeFrame(const FloatRect&);
void setImageBuffer(ImageBuffer*) override;
- PassRefPtr<SkImage> newImageSnapshot(AccelerationHint) override;
+ PassRefPtr<SkImage> newImageSnapshot(AccelerationHint, SnapshotReason) override;
void draw(GraphicsContext&, const FloatRect& destRect, const FloatRect& srcRect, SkXfermode::Mode) override;
bool isExpensiveToPaint() override;
void setHasExpensiveOp() override { m_currentFrameHasExpensiveOp = true; }
@@ -61,11 +61,33 @@ public:
bool isAccelerated() const override;
void setIsHidden(bool) override;
+ enum FallbackReason {
+ FallbackReasonUnknown = 0, // This value should never appear in production histograms
+ FallbackReasonCanvasNotClearedBetweenFrames = 1,
+ FallbackReasonRunawayStateStack = 2,
+ FallbackReasonWritePixels = 3,
+ FallbackReasonFlushInitialClear = 4,
+ FallbackReasonFlushForDrawImageOfWebGL = 5,
+ FallbackReasonSnapshotForGetImageData = 6,
+ FallbackReasonSnapshotForCopyToWebGLTexture = 7,
+ FallbackReasonSnapshotForPaint = 8,
+ FallbackReasonSnapshotForToDataURL = 9,
+ FallbackReasonSnapshotForToBlob = 10,
+ FallbackReasonSnapshotForCanvasListenerCapture = 11,
+ FallbackReasonSnapshotForDrawImage = 12,
+ FallbackReasonSnapshotForCreatePattern = 13,
+ FallbackReasonExpensiveOverdrawHeuristic = 14,
+ FallbackReasonTextureBackedPattern = 15,
+ FallbackReasonDrawImageOfVideo = 16,
+ FallbackReasonDrawImageOfAnimated2dCanvas = 17,
+ FallbackReasonSubPixelTextAntiAliasingSupport = 18,
+ FallbackReasonCount,
+ };
private:
friend class RecordingImageBufferSurfaceTest; // for unit testing
- void fallBackToRasterCanvas();
- bool initializeCurrentFrame();
- bool finalizeFrameInternal();
+ void fallBackToRasterCanvas(FallbackReason);
+ void initializeCurrentFrame();
+ bool finalizeFrameInternal(FallbackReason*);
int approximateOpCount();
OwnPtr<SkPictureRecorder> m_currentFrame;

Powered by Google App Engine
This is Rietveld 408576698