From dea6e1c737a97a10e123d811d056ff85a09e1f2e Mon Sep 17 00:00:00 2001 From: reed Date: Tue, 4 Aug 2015 08:42:40 -0700 Subject: update image bench to test gpu and cpu images against raster surface BUG=513695 TBR= Review URL: https://codereview.chromium.org/1261043003 --- bench/ImageBench.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'bench/ImageBench.cpp') diff --git a/bench/ImageBench.cpp b/bench/ImageBench.cpp index e3fe230353..69ab17f2c1 100644 --- a/bench/ImageBench.cpp +++ b/bench/ImageBench.cpp @@ -10,14 +10,14 @@ #include "SkImage.h" #include "SkSurface.h" -class GPU2RasterImageBench : public Benchmark { +class Image2RasterBench : public Benchmark { public: - GPU2RasterImageBench() { - fName.set("gpu2raster_image"); + Image2RasterBench() { + fName.set("native_image_to_raster_surface"); } bool isSuitableFor(Backend backend) override { - return kGPU_Backend == backend; + return kGPU_Backend == backend || kRaster_Backend == backend; } protected: @@ -25,33 +25,35 @@ protected: return fName.c_str(); } + // We explicitly want to bench drawing a Image [cpu or gpu backed] into a raster target, + // to ensure that we can cache the read-back in the case of gpu -> raster + // void onPerCanvasPreDraw(SkCanvas* canvas) override { - // create a gpu-backed Image - SkImageInfo info = SkImageInfo::MakeN32Premul(500, 500); + // create an Image reflecting the canvas (gpu or cpu) + SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100); SkAutoTUnref surface(canvas->newSurface(info)); canvas->drawColor(SK_ColorRED); - fGpuImage.reset(surface->newImageSnapshot()); + fImage.reset(surface->newImageSnapshot()); // create a cpu-backed Surface fRasterSurface.reset(SkSurface::NewRaster(info)); } void onDraw(const int loops, SkCanvas*) override { - // Time drawing a gpu-image into a raster-surface for (int i = 0; i < loops; i++) { for (int inner = 0; inner < 10; ++inner) { - fRasterSurface->getCanvas()->drawImage(fGpuImage, 0, 0); + fRasterSurface->getCanvas()->drawImage(fImage, 0, 0); } } } private: SkString fName; - SkAutoTUnref fGpuImage; + SkAutoTUnref fImage; SkAutoTUnref fRasterSurface; typedef Benchmark INHERITED; }; -DEF_BENCH( return new GPU2RasterImageBench; ) +DEF_BENCH( return new Image2RasterBench; ) -- cgit v1.2.3