Upload picture byte size and op count metrics for SKP recording.
Look okay? { "results" : { "desk_amazon.skp_1264_3999" : { "nonrendering" : { "bytes" : 75656, "max_ms" : 1.150187, "mean_ms" : 1.150187, "median_ms" : 1.150187, "min_ms" : 1.150187, "ops" : 659, "options" : { "bench_type" : "recording", "clip" : "0 0 1000 1000", "name" : "desk_amazon.skp", "scale" : "1", "source_type" : "skp" } } }, ... BUG=skia: Review URL: https://codereview.chromium.org/773323002
This commit is contained in:
parent
eeb6f0c3c0
commit
051e56df8f
@ -34,7 +34,7 @@ public:
|
||||
virtual void property(const char name[], const char value[]) {}
|
||||
|
||||
// Denote the start of a specific benchmark. Once bench is called,
|
||||
// then config and timer can be called multiple times to record runs.
|
||||
// then config and metric can be called multiple times to record runs.
|
||||
virtual void bench(const char name[], int32_t x, int32_t y) {}
|
||||
|
||||
// Record the specific configuration a bench is run under, such as "8888".
|
||||
@ -44,7 +44,7 @@ public:
|
||||
virtual void configOption(const char name[], const char* value) {}
|
||||
|
||||
// Record a single test metric.
|
||||
virtual void timer(const char name[], double ms) {}
|
||||
virtual void metric(const char name[], double ms) {}
|
||||
|
||||
// Flush to storage now please.
|
||||
virtual void flush() {}
|
||||
@ -105,7 +105,7 @@ public:
|
||||
virtual void configOption(const char name[], const char* value) {
|
||||
(*fConfig)["options"][name] = value;
|
||||
}
|
||||
virtual void timer(const char name[], double ms) {
|
||||
virtual void metric(const char name[], double ms) {
|
||||
// Don't record if nan, or -nan.
|
||||
if (sk_double_isnan(ms)) {
|
||||
return;
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "SkGraphics.h"
|
||||
#include "SkOSFile.h"
|
||||
#include "SkPictureRecorder.h"
|
||||
#include "SkPictureUtils.h"
|
||||
#include "SkString.h"
|
||||
#include "SkSurface.h"
|
||||
#include "SkTaskGroup.h"
|
||||
@ -524,6 +525,8 @@ public:
|
||||
SkString name = SkOSPath::Basename(path.c_str());
|
||||
fSourceType = "skp";
|
||||
fBenchType = "recording";
|
||||
fSKPBytes = SkPictureUtils::ApproximateBytesUsed(pic);
|
||||
fSKPOps = pic->approximateOpCount();
|
||||
return SkNEW_ARGS(RecordingBench, (name.c_str(), pic.get(), FLAGS_bbh));
|
||||
}
|
||||
|
||||
@ -578,6 +581,10 @@ public:
|
||||
log->configOption("multi_picture_draw", fUseMPDs[fCurrentUseMPD-1] ? "true" : "false");
|
||||
}
|
||||
}
|
||||
if (0 == strcmp(fBenchType, "recording")) {
|
||||
log->metric("bytes", fSKPBytes);
|
||||
log->metric("ops", fSKPOps);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
@ -588,6 +595,8 @@ private:
|
||||
SkTArray<SkString> fSKPs;
|
||||
SkTArray<bool> fUseMPDs;
|
||||
|
||||
double fSKPBytes, fSKPOps;
|
||||
|
||||
const char* fSourceType; // What we're benching: bench, GM, SKP, ...
|
||||
const char* fBenchType; // How we bench it: micro, recording, playback, ...
|
||||
int fCurrentRecording;
|
||||
@ -723,11 +732,11 @@ int nanobench_main() {
|
||||
fill_gpu_options(log.get(), targets[j]->gl);
|
||||
}
|
||||
#endif
|
||||
log->timer("min_ms", stats.min);
|
||||
log->timer("median_ms", stats.median);
|
||||
log->timer("mean_ms", stats.mean);
|
||||
log->timer("max_ms", stats.max);
|
||||
log->timer("stddev_ms", sqrt(stats.var));
|
||||
log->metric("min_ms", stats.min);
|
||||
log->metric("median_ms", stats.median);
|
||||
log->metric("mean_ms", stats.mean);
|
||||
log->metric("max_ms", stats.max);
|
||||
log->metric("stddev_ms", sqrt(stats.var));
|
||||
if (runs++ % FLAGS_flushEvery == 0) {
|
||||
log->flush();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user