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

Unified Diff: tools/VisualBench/VisualLightweightBenchModule.cpp

Issue 1363663004: stop scaling loops and improve warmup bench (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: transparent Created 5 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 | « tools/VisualBench/VisualLightweightBenchModule.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/VisualBench/VisualLightweightBenchModule.cpp
diff --git a/tools/VisualBench/VisualLightweightBenchModule.cpp b/tools/VisualBench/VisualLightweightBenchModule.cpp
index 6f21c6804152a7928c32d9e7702d1d99528e747b..d5e4e5b8b632eac99cde888cd17f7781808771f8 100644
--- a/tools/VisualBench/VisualLightweightBenchModule.cpp
+++ b/tools/VisualBench/VisualLightweightBenchModule.cpp
@@ -47,16 +47,26 @@ static SkString humanize(double ms) {
#define HUMANIZE(time) humanize(time).c_str()
-// A trivial bench to warm up the gpu
+// We draw a big nonAA path to warmup the gpu / cpu
class WarmupBench : public Benchmark {
public:
+ WarmupBench() {
+ make_path(fPath);
+ }
private:
+ static void make_path(SkPath& path) {
+ #include "BigPathBench.inc"
+ }
const char* onGetName() override { return "warmupbench"; }
void onDraw(const int loops, SkCanvas* canvas) override {
+ SkPaint paint;
+ paint.setStyle(SkPaint::kStroke_Style);
+ paint.setStrokeWidth(2);
for (int i = 0; i < loops; i++) {
- sk_tool_utils::draw_checkerboard(canvas, 0xffffffff, 0xffc6c3c6, 10);
+ canvas->drawPath(fPath, paint);
}
}
+ SkPath fPath;
};
VisualLightweightBenchModule::VisualLightweightBenchModule(VisualBench* owner)
@@ -143,6 +153,7 @@ void VisualLightweightBenchModule::printStats() {
bool VisualLightweightBenchModule::advanceRecordIfNecessary(SkCanvas* canvas) {
if (!fBenchmark && fState == kWarmup_State) {
+ fOwner->clear(canvas, SK_ColorWHITE, 2);
fBenchmark.reset(new WarmupBench);
return true;
}
@@ -259,11 +270,6 @@ void VisualLightweightBenchModule::resetTimingState() {
fOwner->reset();
}
-void VisualLightweightBenchModule::scaleLoops(double elapsedMs) {
- // Scale back the number of loops
- fLoops = (int)ceil(fLoops * FLAGS_loopMs / elapsedMs);
-}
-
inline void VisualLightweightBenchModule::tuneLoops() {
if (1 << 30 == fLoops) {
// We're about to wrap. Something's wrong with the bench.
@@ -272,7 +278,6 @@ inline void VisualLightweightBenchModule::tuneLoops() {
} else {
double elapsedMs = this->elapsed();
if (elapsedMs > FLAGS_loopMs) {
- this->scaleLoops(elapsedMs);
this->nextState(kPreWarmTimingPerCanvasPreDraw_State);
} else {
fLoops *= 2;
« no previous file with comments | « tools/VisualBench/VisualLightweightBenchModule.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698