Only perform matrix concat when actually logging histograms Bug: skia: Change-Id: I61a710b570601d0d1178cf1dbe0d46d20872e9f1 Reviewed-on: https://skia-review.googlesource.com/c/193364 Commit-Queue: Michael Ludwig <michaelludwig@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp index c891854..1f2a37e 100644 --- a/src/core/SkBitmapDevice.cpp +++ b/src/core/SkBitmapDevice.cpp
@@ -443,7 +443,7 @@ } matrix.setRectToRect(tmpSrc, dst, SkMatrix::kFill_ScaleToFit); - LogDrawScaleFactor(SkMatrix::Concat(this->ctm(), matrix), paint.getFilterQuality()); + LogDrawScaleFactor(this->ctm(), matrix, paint.getFilterQuality()); const SkRect* dstPtr = &dst; const SkBitmap* bitmapPtr = &bitmap;
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp index ea1cd4b..d44dda8 100644 --- a/src/core/SkDevice.cpp +++ b/src/core/SkDevice.cpp
@@ -388,8 +388,10 @@ ////////////////////////////////////////////////////////////////////////////////////////// -void SkBaseDevice::LogDrawScaleFactor(const SkMatrix& matrix, SkFilterQuality filterQuality) { +void SkBaseDevice::LogDrawScaleFactor(const SkMatrix& view, const SkMatrix& srcToDst, + SkFilterQuality filterQuality) { #if SK_HISTOGRAMS_ENABLED + SkMatrix matrix = SkMatrix::Concat(view, srcToDst); enum ScaleFactor { kUpscale_ScaleFactor, kNoScale_ScaleFactor,
diff --git a/src/core/SkDevice.h b/src/core/SkDevice.h index 78d91e6..df78530 100644 --- a/src/core/SkDevice.h +++ b/src/core/SkDevice.h
@@ -325,7 +325,7 @@ } // A helper function used by derived classes to log the scale factor of a bitmap or image draw. - static void LogDrawScaleFactor(const SkMatrix&, SkFilterQuality); + static void LogDrawScaleFactor(const SkMatrix& view, const SkMatrix& srcToDst, SkFilterQuality); private: friend class SkAndroidFrameworkUtils;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index cb5c3dc..cf1f665 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp
@@ -843,7 +843,7 @@ // This is the funnel for all paths that draw tiled bitmaps/images. Log histogram entries. SK_HISTOGRAM_BOOLEAN("DrawTiled", true); - LogDrawScaleFactor(viewMatrix, origPaint.getFilterQuality()); + LogDrawScaleFactor(viewMatrix, SkMatrix::I(), origPaint.getFilterQuality()); const SkPaint* paint = &origPaint; SkPaint tempPaint;
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp index dbe1f08..21815f7 100644 --- a/src/gpu/SkGpuDevice_drawTexture.cpp +++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -236,7 +236,7 @@ } // Now that we have both the view and srcToDst matrices, log our scale factor. - LogDrawScaleFactor(SkMatrix::Concat(viewMatrix, srcToDstMatrix), paint.getFilterQuality()); + LogDrawScaleFactor(viewMatrix, srcToDstMatrix, paint.getFilterQuality()); this->drawTextureProducerImpl(producer, clippedSrcRect, clippedDstRect, constraint, viewMatrix, srcToDstMatrix, paint);