| diff --git a/bench/ResultsWriter.h b/bench/ResultsWriter.h |
| index f56deae..69a84c7 100644 |
| --- a/bench/ResultsWriter.h |
| +++ b/bench/ResultsWriter.h |
| @@ -46,6 +46,9 @@ public: |
| // Record a single test metric. |
| virtual void metric(const char name[], double ms) {} |
| |
| + // Record a list of test metrics. |
| + virtual void metrics(const char name[], const SkTArray<double> &array) {} |
| + |
| // Flush to storage now please. |
| virtual void flush() {} |
| }; |
| @@ -113,6 +116,17 @@ public: |
| SkASSERT(fConfig); |
| (*fConfig)[name] = ms; |
| } |
| + void metrics(const char name[], const SkTArray<double> &array) override { |
| + // The user who wrote this feature prefers NaNs over not having results. |
| + // Hence, this ignores whether we have NaNs. |
| + SkASSERT(fConfig); |
| + Json::Value value = Json::Value(Json::arrayValue); |
| + value.resize(array.count()); |
| + for (unsigned i = 0, e = array.count(); i != e; ++i) { |
| + value[i] = array[i]; |
| + } |
| + (*fConfig)[name] = value; |
| + } |
| |
| // Flush to storage now please. |
| void flush() override { |
| diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp |
| index 0651302..0623d61 100644 |
| --- a/bench/nanobench.cpp |
| +++ b/bench/nanobench.cpp |
| @@ -43,6 +43,7 @@ |
| #include "SkSVGDOM.h" |
| #include "SkTaskGroup.h" |
| #include "SkThreadUtils.h" |
| +#include "SkTypes.h" |
| #include "ThermalManager.h" |
| #include "SkScan.h" |
| |
| @@ -1240,7 +1241,7 @@ int nanobench_main() { |
| target->setup(); |
| bench->perCanvasPreDraw(canvas); |
| |
| - int maxFrameLag; |
| + int maxFrameLag = 0; |
| int loops = target->needsFrameTiming(&maxFrameLag) |
| ? setup_gpu_bench(target, bench.get(), maxFrameLag) |
| : setup_cpu_bench(overhead, target, bench.get()); |
| @@ -1290,6 +1291,7 @@ int nanobench_main() { |
| benchStream.fillCurrentOptions(log.get()); |
| target->fillOptions(log.get()); |
| log->metric("min_ms", stats.min); |
| + log->metrics("samples", samples); |
| #if SK_SUPPORT_GPU |
| if (gpuStatsDump) { |
| // dump to json, only SKPBench currently returns valid keys / values |