1diff --git a/bench/ResultsWriter.h b/bench/ResultsWriter.h 2index f56deae..69a84c7 100644 3--- a/bench/ResultsWriter.h 4+++ b/bench/ResultsWriter.h 5@@ -46,6 +46,9 @@ public: 6 // Record a single test metric. 7 virtual void metric(const char name[], double ms) {} 8 9+ // Record a list of test metrics. 10+ virtual void metrics(const char name[], const SkTArray<double> &array) {} 11+ 12 // Flush to storage now please. 13 virtual void flush() {} 14 }; 15@@ -113,6 +116,17 @@ public: 16 SkASSERT(fConfig); 17 (*fConfig)[name] = ms; 18 } 19+ void metrics(const char name[], const SkTArray<double> &array) override { 20+ // The user who wrote this feature prefers NaNs over not having results. 21+ // Hence, this ignores whether we have NaNs. 22+ SkASSERT(fConfig); 23+ Json::Value value = Json::Value(Json::arrayValue); 24+ value.resize(array.count()); 25+ for (unsigned i = 0, e = array.count(); i != e; ++i) { 26+ value[i] = array[i]; 27+ } 28+ (*fConfig)[name] = value; 29+ } 30 31 // Flush to storage now please. 32 void flush() override { 33diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp 34index ae415fa..22011cd 100644 35--- a/bench/nanobench.cpp 36+++ b/bench/nanobench.cpp 37@@ -42,6 +42,7 @@ 38 #include "SkSurface.h" 39 #include "SkTaskGroup.h" 40 #include "SkThreadUtils.h" 41+#include "SkTypes.h" 42 #include "ThermalManager.h" 43 44 #include <stdlib.h> 45@@ -1173,7 +1174,7 @@ int nanobench_main() { 46 target->setup(); 47 bench->perCanvasPreDraw(canvas); 48 49- int maxFrameLag; 50+ int maxFrameLag = 0; 51 int loops = target->needsFrameTiming(&maxFrameLag) 52 ? setup_gpu_bench(target, bench.get(), maxFrameLag) 53 : setup_cpu_bench(overhead, target, bench.get()); 54@@ -1197,6 +1198,7 @@ int nanobench_main() { 55 benchStream.fillCurrentOptions(log.get()); 56 target->fillOptions(log.get()); 57 log->metric("min_ms", stats.min); 58 log->metric("median_ms", stats.median); 59+ log->metrics("samples", samples); 60 #if SK_SUPPORT_GPU 61 if (gpuStatsDump) { 62 // dump to json, only SKPBench currently returns valid keys / values 63