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
diff --git a/bench/RefCntBench.cpp b/bench/RefCntBench.cpp
index 0110dbc..f6ec733 100644
--- a/bench/RefCntBench.cpp
+++ b/bench/RefCntBench.cpp
@@ -16,9 +16,10 @@
class RefCntBench_Stack : public SkBenchmark {
public:
- RefCntBench_Stack() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_stack";
@@ -53,9 +54,10 @@
class RefCntBench_Heap : public SkBenchmark {
public:
- RefCntBench_Heap() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_heap";
@@ -79,9 +81,10 @@
class RefCntBench_New : public SkBenchmark {
public:
- RefCntBench_New() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_new";
@@ -106,9 +109,10 @@
class WeakRefCntBench_Stack : public SkBenchmark {
public:
- WeakRefCntBench_Stack() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_stack_weak";
@@ -136,9 +140,10 @@
class WeakRefCntBench_Heap : public SkBenchmark {
public:
- WeakRefCntBench_Heap() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_heap_weak";
@@ -162,9 +167,10 @@
class WeakRefCntBench_New : public SkBenchmark {
public:
- WeakRefCntBench_New() {
- fIsRendering = false;
+ virtual bool isSuitableFor(Backend backend) SK_OVERRIDE {
+ return backend == kNonRendering_Backend;
}
+
protected:
virtual const char* onGetName() {
return "ref_cnt_new_weak";