aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/GrMemoryPoolBench.cpp3
-rw-r--r--bench/InterpBench.cpp1
-rw-r--r--bench/MathBench.cpp4
-rw-r--r--bench/MatrixBench.cpp1
-rw-r--r--bench/MemoryBench.cpp1
-rw-r--r--bench/RTreeBench.cpp2
-rw-r--r--bench/RefCntBench.cpp6
-rw-r--r--bench/RegionBench.cpp1
-rw-r--r--bench/SkBenchmark.cpp1
-rw-r--r--bench/SkBenchmark.h9
-rw-r--r--bench/benchmain.cpp6
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;