aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/ImageBench.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-08-04 08:42:40 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-04 08:42:40 -0700
commitdea6e1c737a97a10e123d811d056ff85a09e1f2e (patch)
tree9fd78b302d3b701b87db242c720ae39d21244e4e /bench/ImageBench.cpp
parent6f1216ac158e36a3a1cc805e7f899c755c5b98a2 (diff)
update image bench to test gpu and cpu images against raster surface
BUG=513695 TBR= Review URL: https://codereview.chromium.org/1261043003
Diffstat (limited to 'bench/ImageBench.cpp')
-rw-r--r--bench/ImageBench.cpp24
1 files changed, 13 insertions, 11 deletions
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<SkSurface> 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<SkImage> fGpuImage;
+ SkAutoTUnref<SkImage> fImage;
SkAutoTUnref<SkSurface> fRasterSurface;
typedef Benchmark INHERITED;
};
-DEF_BENCH( return new GPU2RasterImageBench; )
+DEF_BENCH( return new Image2RasterBench; )