aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/MathBench.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-21 06:21:58 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-21 06:21:58 +0000
commit644629c1c7913a43ced172b98d56e0f471bc348b (patch)
tree944e9533b0ed138a623b2adf8c8dedd3fedafca2 /bench/MathBench.cpp
parentbf6426120a8a9a034f37d37feaf942b1386b7a84 (diff)
Implement a benchmark for GrResourceCache
Adds "grresourcecache_add" and "grresourcecache_find" bench tests to test GrResourceCache::add and GrResourceCache::find. The tests work only with GPU backends, since GrResourceCache needs an GrGpu. Modifies bench tests to override SkBenchmark::isSuitableFor(Backend) function that specifies what kind of backend the test is inteded for. This replaces the previous "fIsRendering" flag that would indicate test that did no rendering. Adds SkCanvas::getGrContext() call to get the GrContext that the canvas ends up drawing to. The member function solves a common use-case that is also used in the benchmark added here. R=mtklein@google.com, bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/73643005 git-svn-id: http://skia.googlecode.com/svn/trunk@12334 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'bench/MathBench.cpp')
-rw-r--r--bench/MathBench.cpp34
1 files changed, 27 insertions, 7 deletions
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index 6327c3c580..8094219f9d 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -29,8 +29,10 @@ public:
for (int i = 0; i < kBuffer; ++i) {
fSrc[i] = rand.nextSScalar1();
}
+ }
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
virtual void performTest(float* SK_RESTRICT dst,
@@ -281,7 +283,10 @@ public:
fProc = gRec[index].fProc;
fName = gRec[index].fName;
}
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
protected:
@@ -346,7 +351,10 @@ public:
} else {
fName = "floor_std";
}
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
virtual void process(float) {}
@@ -404,7 +412,10 @@ public:
} else {
fName = "clz_intrinsic";
}
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
// just so the compiler doesn't remove our loops
@@ -457,7 +468,10 @@ public:
}
fName = "point_normalize";
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
// just so the compiler doesn't remove our loops
@@ -501,7 +515,10 @@ public:
fData[i%N] = rand.nextSScalar1();
}
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
protected:
@@ -534,7 +551,10 @@ class DivModBench : public SkBenchmark {
public:
explicit DivModBench(const char* name) {
fName.printf("divmod_%s", name);
- fIsRendering = false;
+ }
+
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
protected: