diff options
-rw-r--r-- | bench/GrMemoryPoolBench.cpp | 3 | ||||
-rw-r--r-- | bench/InterpBench.cpp | 1 | ||||
-rw-r--r-- | bench/MathBench.cpp | 4 | ||||
-rw-r--r-- | bench/MatrixBench.cpp | 1 | ||||
-rw-r--r-- | bench/MemoryBench.cpp | 1 | ||||
-rw-r--r-- | bench/RTreeBench.cpp | 2 | ||||
-rw-r--r-- | bench/RefCntBench.cpp | 6 | ||||
-rw-r--r-- | bench/RegionBench.cpp | 1 | ||||
-rw-r--r-- | bench/SkBenchmark.cpp | 1 | ||||
-rw-r--r-- | bench/SkBenchmark.h | 9 | ||||
-rw-r--r-- | bench/benchmain.cpp | 6 |
11 files changed, 35 insertions, 0 deletions
diff --git a/bench/GrMemoryPoolBench.cpp b/bench/GrMemoryPoolBench.cpp index d9dc49d213..d6c4b77393 100644 --- a/bench/GrMemoryPoolBench.cpp +++ b/bench/GrMemoryPoolBench.cpp @@ -39,6 +39,7 @@ class GrMemoryPoolBenchStack : public SkBenchmark { }; public: GrMemoryPoolBenchStack(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -94,6 +95,7 @@ class GrMemoryPoolBenchRandom : public SkBenchmark { }; public: GrMemoryPoolBenchRandom(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -131,6 +133,7 @@ class GrMemoryPoolBenchQueue : public SkBenchmark { }; public: GrMemoryPoolBenchQueue(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { diff --git a/bench/InterpBench.cpp b/bench/InterpBench.cpp index f8f463b1b5..b689c72fd9 100644 --- a/bench/InterpBench.cpp +++ b/bench/InterpBench.cpp @@ -20,6 +20,7 @@ public: fName.printf("interp_%s", name); fFx = 3.3f; fDx = 0.1257f; + fIsRendering = false; } virtual void performTest(int16_t dst[], float x, float dx, int count) = 0; diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp index 414036b6ae..df3d3a53c2 100644 --- a/bench/MathBench.cpp +++ b/bench/MathBench.cpp @@ -30,6 +30,8 @@ public: for (int i = 0; i < kBuffer; ++i) { fSrc[i] = rand.nextSScalar1(); } + + fIsRendering = false; } virtual void performTest(float* SK_RESTRICT dst, @@ -265,6 +267,7 @@ public: fProc = gRec[index].fProc; fName = gRec[index].fName; } + fIsRendering = false; } protected: @@ -330,6 +333,7 @@ public: } else { fName = "floor_std"; } + fIsRendering = false; } virtual void process(float) {} diff --git a/bench/MatrixBench.cpp b/bench/MatrixBench.cpp index d8e2137913..1a85172a40 100644 --- a/bench/MatrixBench.cpp +++ b/bench/MatrixBench.cpp @@ -16,6 +16,7 @@ class MatrixBench : public SkBenchmark { public: MatrixBench(void* param, const char name[]) : INHERITED(param) { fName.printf("matrix_%s", name); + fIsRendering = false; } virtual void performTest() = 0; diff --git a/bench/MemoryBench.cpp b/bench/MemoryBench.cpp index d8d60526e8..30b9ea3668 100644 --- a/bench/MemoryBench.cpp +++ b/bench/MemoryBench.cpp @@ -23,6 +23,7 @@ public: ChunkAllocBench(void* param, size_t minSize) : INHERITED(param) { fMinSize = minSize; fName.printf("chunkalloc_" SK_SIZE_T_SPECIFIER, minSize); + fIsRendering = false; } protected: diff --git a/bench/RTreeBench.cpp b/bench/RTreeBench.cpp index d13d88704c..e1885c3620 100644 --- a/bench/RTreeBench.cpp +++ b/bench/RTreeBench.cpp @@ -35,6 +35,7 @@ public: if (fBulkLoad) { fName.append("_bulk"); } + fIsRendering = false; } virtual ~BBoxBuildBench() { fTree->unref(); @@ -91,6 +92,7 @@ public: SkBENCHLOOP(NUM_QUERY_RECTS)), fBulkLoad); } fTree->flushDeferredInserts(); + fIsRendering = false; } virtual ~BBoxQueryBench() { fTree->unref(); diff --git a/bench/RefCntBench.cpp b/bench/RefCntBench.cpp index cdc81eb774..c8a98e455f 100644 --- a/bench/RefCntBench.cpp +++ b/bench/RefCntBench.cpp @@ -18,6 +18,7 @@ enum { class RefCntBench_Stack : public SkBenchmark { public: RefCntBench_Stack(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -54,6 +55,7 @@ SK_DEFINE_INST_COUNT(PlacedRefCnt) class RefCntBench_Heap : public SkBenchmark { public: RefCntBench_Heap(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -79,6 +81,7 @@ private: class RefCntBench_New : public SkBenchmark { public: RefCntBench_New(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -105,6 +108,7 @@ private: class WeakRefCntBench_Stack : public SkBenchmark { public: WeakRefCntBench_Stack(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -134,6 +138,7 @@ public: class WeakRefCntBench_Heap : public SkBenchmark { public: WeakRefCntBench_Heap(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { @@ -159,6 +164,7 @@ private: class WeakRefCntBench_New : public SkBenchmark { public: WeakRefCntBench_New(void* param) : INHERITED(param) { + fIsRendering = false; } protected: virtual const char* onGetName() { diff --git a/bench/RegionBench.cpp b/bench/RegionBench.cpp index 7b9e2d424a..7a306e97c3 100644 --- a/bench/RegionBench.cpp +++ b/bench/RegionBench.cpp @@ -100,6 +100,7 @@ public: fA.op(randrect(rand), SkRegion::kXOR_Op); fB.op(randrect(rand), SkRegion::kXOR_Op); } + fIsRendering = false; } protected: diff --git a/bench/SkBenchmark.cpp b/bench/SkBenchmark.cpp index c8552d59d6..6afcd8e9f3 100644 --- a/bench/SkBenchmark.cpp +++ b/bench/SkBenchmark.cpp @@ -19,6 +19,7 @@ SkBenchmark::SkBenchmark(void* defineDict) { fForceAA = true; fDither = SkTriState::kDefault; fHasStrokeWidth = false; + fIsRendering = true; } const char* SkBenchmark::getName() { diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h index a77cb8398b..5cfbdab25c 100644 --- a/bench/SkBenchmark.h +++ b/bench/SkBenchmark.h @@ -81,6 +81,13 @@ public: return fHasStrokeWidth; } + /** If true; the benchmark does rendering; if false, the benchmark + doesn't, and so need not be re-run in every different rendering + mode. */ + bool isRendering() { + return fIsRendering; + } + const char* findDefine(const char* key) const; bool findDefine32(const char* key, int32_t* value) const; bool findDefineScalar(const char* key, SkScalar* value) const; @@ -94,6 +101,8 @@ protected: virtual void onPostDraw() {} virtual SkIPoint onGetSize(); + /// Defaults to true. + bool fIsRendering; private: const SkTDict<const char*>* fDict; diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp index 9edb8cf7e5..692b0bdc70 100644 --- a/bench/benchmain.cpp +++ b/bench/benchmain.cpp @@ -738,7 +738,13 @@ int main (int argc, char * const argv[]) { AutoPrePostDraw appd(bench); + bool runOnce = false; for (int x = 0; x < configs.count(); ++x) { + if (!bench->isRendering() && runOnce) { + continue; + } + runOnce = true; + int configIndex = configs[x]; outConfig = gConfigs[configIndex].fConfig; |