Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(847)

Unified Diff: bench/PictureRecordBench.cpp

Issue 23478013: Major bench refactoring. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: merge with head agani Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « bench/PicturePlaybackBench.cpp ('k') | bench/PremulAndUnpremulAlphaOpsBench.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bench/PictureRecordBench.cpp
diff --git a/bench/PictureRecordBench.cpp b/bench/PictureRecordBench.cpp
index f23f0cb961187dabd406e7f83abf036a124d874d..cbfad3806d1f9ef984e766280ea26ff70aa154fd 100644
--- a/bench/PictureRecordBench.cpp
+++ b/bench/PictureRecordBench.cpp
@@ -24,7 +24,6 @@ public:
}
enum {
- N = SkBENCHLOOP(25), // number of times to create the picture
PICTURE_WIDTH = 1000,
PICTURE_HEIGHT = 4000,
};
@@ -34,25 +33,18 @@ protected:
}
virtual void onDraw(SkCanvas*) {
- int n = (int)(N * this->innerLoopScale());
- n = SkMax32(1, n);
+ SkPicture picture;
- for (int i = 0; i < n; i++) {
+ SkCanvas* pCanvas = picture.beginRecording(PICTURE_WIDTH, PICTURE_HEIGHT);
+ recordCanvas(pCanvas);
- SkPicture picture;
-
- SkCanvas* pCanvas = picture.beginRecording(PICTURE_WIDTH, PICTURE_HEIGHT);
- recordCanvas(pCanvas);
-
- // we don't need to draw the picture as the endRecording step will
- // do the work of transferring the recorded content into a playback
- // object.
- picture.endRecording();
- }
+ // we don't need to draw the picture as the endRecording step will
+ // do the work of transferring the recorded content into a playback
+ // object.
+ picture.endRecording();
}
virtual void recordCanvas(SkCanvas* canvas) = 0;
- virtual float innerLoopScale() const { return 1; }
SkString fName;
SkScalar fPictureWidth;
@@ -72,18 +64,15 @@ public:
DictionaryRecordBench(void* param)
: INHERITED(param, "dictionaries") { }
- enum {
- M = SkBENCHLOOP(100), // number of elements in each dictionary
- };
protected:
virtual void recordCanvas(SkCanvas* canvas) {
- const SkPoint translateDelta = getTranslateDelta();
+ const SkPoint translateDelta = getTranslateDelta(this->getLoops());
- for (int i = 0; i < M; i++) {
+ for (int i = 0; i < this->getLoops(); i++) {
SkColor color = SK_ColorYELLOW + (i % 255);
- SkIRect rect = SkIRect::MakeWH(i,i);
+ SkIRect rect = SkIRect::MakeWH(i % PICTURE_WIDTH, i % PICTURE_HEIGHT);
canvas->save();
@@ -119,7 +108,7 @@ protected:
}
}
- SkPoint getTranslateDelta() {
+ SkPoint getTranslateDelta(int M) {
SkIPoint canvasSize = onGetSize();
return SkPoint::Make(SkIntToScalar((PICTURE_WIDTH - canvasSize.fX)/M),
SkIntToScalar((PICTURE_HEIGHT- canvasSize.fY)/M));
@@ -137,14 +126,10 @@ public:
UniquePaintDictionaryRecordBench(void* param)
: INHERITED(param, "unique_paint_dictionary") { }
- enum {
- M = SkBENCHLOOP(15000), // number of unique paint objects
- };
protected:
- virtual float innerLoopScale() const SK_OVERRIDE { return 0.1f; }
virtual void recordCanvas(SkCanvas* canvas) {
SkRandom rand;
- for (int i = 0; i < M; i++) {
+ for (int i = 0; i < this->getLoops(); i++) {
SkPaint paint;
paint.setColor(rand.nextU());
canvas->drawPaint(paint);
@@ -174,14 +159,12 @@ public:
}
enum {
- ObjCount = 100, // number of unique paint objects
- M = SkBENCHLOOP(50000), // number of draw iterations
+ ObjCount = 100, // number of unique paint objects
};
protected:
- virtual float innerLoopScale() const SK_OVERRIDE { return 0.1f; }
virtual void recordCanvas(SkCanvas* canvas) {
- for (int i = 0; i < M; i++) {
+ for (int i = 0; i < this->getLoops(); i++) {
canvas->drawPaint(fPaint[i % ObjCount]);
}
}
« no previous file with comments | « bench/PicturePlaybackBench.cpp ('k') | bench/PremulAndUnpremulAlphaOpsBench.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698