Make bench_pictures output a meaningful config name.
Review URL: https://codereview.appspot.com/6813074
git-svn-id: http://skia.googlecode.com/svn/trunk@6288 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/PictureBenchmark.cpp b/tools/PictureBenchmark.cpp
index fbf1585..ca7795f 100644
--- a/tools/PictureBenchmark.cpp
+++ b/tools/PictureBenchmark.cpp
@@ -95,9 +95,9 @@
timerData.appendTimes(timer, fRepeats - 1 == i);
}
- const char* configName = usingGpu ? "gpu" : "raster";
+ SkString configName = fRenderer->getConfigName();
SkString result = timerData.getResult(fLogPerIter, fPrintMin, fRepeats,
- configName, fShowWallTime, fShowTruncatedWallTime,
+ configName.c_str(), fShowWallTime, fShowTruncatedWallTime,
fShowCpuTime, fShowTruncatedCpuTime,
usingGpu && fShowGpuTime);
result.append("\n");
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp
index 745bec0..d407b0e 100644
--- a/tools/PictureRenderer.cpp
+++ b/tools/PictureRenderer.cpp
@@ -174,6 +174,10 @@
return false;
}
+SkString RecordPictureRenderer::getConfigNameInternal() {
+ return SkString("record");
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
bool PipePictureRenderer::render(const SkString* path) {
@@ -195,6 +199,10 @@
return true;
}
+SkString PipePictureRenderer::getConfigNameInternal() {
+ return SkString("pipe");
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
void SimplePictureRenderer::init(SkPicture* picture) {
@@ -217,6 +225,10 @@
return true;
}
+SkString SimplePictureRenderer::getConfigNameInternal() {
+ return SkString("simple");
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
TiledPictureRenderer::TiledPictureRenderer()
@@ -361,6 +373,29 @@
canvas->clipRect(clip);
return canvas;
}
+
+SkString TiledPictureRenderer::getConfigNameInternal() {
+ SkString name;
+ if (fTileMinPowerOf2Width > 0) {
+ name.append("pow2tile_");
+ name.appendf("%i", fTileMinPowerOf2Width);
+ } else {
+ name.append("tile_");
+ if (fTileWidthPercentage > 0) {
+ name.appendf("%.f%%", fTileWidthPercentage);
+ } else {
+ name.appendf("%i", fTileWidth);
+ }
+ }
+ name.append("x");
+ if (fTileHeightPercentage > 0) {
+ name.appendf("%.f%%", fTileHeightPercentage);
+ } else {
+ name.appendf("%i", fTileHeight);
+ }
+ return name;
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
// Holds all of the information needed to draw a set of tiles.
@@ -484,6 +519,12 @@
SkDELETE_ARRAY(fPictureClones);
}
+SkString MultiCorePictureRenderer::getConfigNameInternal() {
+ SkString name = this->INHERITED::getConfigNameInternal();
+ name.appendf("_multi_%i_threads", fNumThreads);
+ return name;
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
void PlaybackCreationRenderer::setup() {
@@ -499,6 +540,10 @@
return false;
}
+SkString PlaybackCreationRenderer::getConfigNameInternal() {
+ return SkString("playback_creation");
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
// SkPicture variants for each BBoxHierarchy type
diff --git a/tools/PictureRenderer.h b/tools/PictureRenderer.h
index 3ff8967..a3c879a 100644
--- a/tools/PictureRenderer.h
+++ b/tools/PictureRenderer.h
@@ -91,6 +91,22 @@
virtual SkString getNormalTimeFormat() { return SkString("%6.2f"); }
+ /**
+ * Reports the configuration of this PictureRenderer.
+ */
+ SkString getConfigName() {
+ SkString config = this->getConfigNameInternal();
+ if (kRTree_BBoxHierarchyType == fBBoxHierarchyType) {
+ config.append("_rtree");
+ }
+#if SK_SUPPORT_GPU
+ if (this->isUsingGpuDevice()) {
+ config.append("_gpu");
+ }
+#endif
+ return config;
+ }
+
#if SK_SUPPORT_GPU
bool isUsingGpuDevice() {
return kGPU_DeviceType == fDeviceType;
@@ -137,6 +153,8 @@
#endif
private:
+ virtual SkString getConfigNameInternal() = 0;
+
typedef SkRefCnt INHERITED;
};
@@ -150,6 +168,9 @@
virtual SkString getPerIterTimeFormat() SK_OVERRIDE { return SkString("%.4f"); }
virtual SkString getNormalTimeFormat() SK_OVERRIDE { return SkString("%6.4f"); }
+
+private:
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
};
class PipePictureRenderer : public PictureRenderer {
@@ -157,6 +178,8 @@
virtual bool render(const SkString*) SK_OVERRIDE;
private:
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
+
typedef PictureRenderer INHERITED;
};
@@ -167,6 +190,8 @@
virtual bool render(const SkString*) SK_OVERRIDE;
private:
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
+
typedef PictureRenderer INHERITED;
};
@@ -231,9 +256,11 @@
}
protected:
- virtual SkCanvas* setupCanvas(int width, int height) SK_OVERRIDE;
SkTDArray<SkRect> fTileRects;
+ virtual SkCanvas* setupCanvas(int width, int height) SK_OVERRIDE;
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
+
private:
int fTileWidth;
int fTileHeight;
@@ -265,6 +292,8 @@
virtual void end() SK_OVERRIDE;
private:
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
+
const int fNumThreads;
SkTDArray<SkCanvas*> fCanvasPool;
SkThreadPool fThreadPool;
@@ -291,6 +320,9 @@
private:
SkAutoTUnref<SkPicture> fReplayer;
+
+ virtual SkString getConfigNameInternal() SK_OVERRIDE;
+
typedef PictureRenderer INHERITED;
};