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

Side by Side Diff: bench/nanobench.cpp

Issue 891973002: Add texture create/upload stats and make nanobench have explicit gpu stats flag (Closed) Base URL: https://skia.googlesource.com/skia.git@lala
Patch Set: rebase Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/gpu/GrGpu.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include <ctype.h> 8 #include <ctype.h>
9 9
10 #include "Benchmark.h" 10 #include "Benchmark.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 DEFINE_string(outResultsFile, "", "If given, write results here as JSON."); 68 DEFINE_string(outResultsFile, "", "If given, write results here as JSON.");
69 DEFINE_int32(maxCalibrationAttempts, 3, 69 DEFINE_int32(maxCalibrationAttempts, 3,
70 "Try up to this many times to guess loops for a bench, or skip the bench."); 70 "Try up to this many times to guess loops for a bench, or skip the bench.");
71 DEFINE_int32(maxLoops, 1000000, "Never run a bench more times than this."); 71 DEFINE_int32(maxLoops, 1000000, "Never run a bench more times than this.");
72 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs."); 72 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs.");
73 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs."); 73 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs.");
74 DEFINE_bool(bbh, true, "Build a BBH for SKPs?"); 74 DEFINE_bool(bbh, true, "Build a BBH for SKPs?");
75 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?"); 75 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?");
76 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run."); 76 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run.");
77 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test ."); 77 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test .");
78 DEFINE_bool(gpuStats, false, "Print GPU stats after each gpu benchmark?");
78 79
79 static SkString humanize(double ms) { 80 static SkString humanize(double ms) {
80 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6)); 81 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6));
81 return HumanizeMs(ms); 82 return HumanizeMs(ms);
82 } 83 }
83 #define HUMANIZE(ms) humanize(ms).c_str() 84 #define HUMANIZE(ms) humanize(ms).c_str()
84 85
85 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContext* g l) { 86 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContext* g l) {
86 if (canvas) { 87 if (canvas) {
87 canvas->clear(SK_ColorWHITE); 88 canvas->clear(SK_ColorWHITE);
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 , HUMANIZE(stats.min) 760 , HUMANIZE(stats.min)
760 , HUMANIZE(stats.median) 761 , HUMANIZE(stats.median)
761 , HUMANIZE(stats.mean) 762 , HUMANIZE(stats.mean)
762 , HUMANIZE(stats.max) 763 , HUMANIZE(stats.max)
763 , stddev_percent 764 , stddev_percent
764 , stats.plot.c_str() 765 , stats.plot.c_str()
765 , config 766 , config
766 , bench->getUniqueName() 767 , bench->getUniqueName()
767 ); 768 );
768 } 769 }
769 #if SK_SUPPORT_GPU && GR_CACHE_STATS 770 #if SK_SUPPORT_GPU
770 if (FLAGS_veryVerbose && 771 if (FLAGS_gpuStats &&
771 Benchmark::kGPU_Backend == targets[j]->config.backend) { 772 Benchmark::kGPU_Backend == targets[j]->config.backend) {
772 gGrFactory->get(targets[j]->config.ctxType)->printCacheStats(); 773 gGrFactory->get(targets[j]->config.ctxType)->printCacheStats();
774 gGrFactory->get(targets[j]->config.ctxType)->printGpuStats();
773 } 775 }
774 #endif 776 #endif
775 } 777 }
776 targets.deleteAll(); 778 targets.deleteAll();
777 779
778 #if SK_SUPPORT_GPU 780 #if SK_SUPPORT_GPU
779 if (FLAGS_abandonGpuContext) { 781 if (FLAGS_abandonGpuContext) {
780 gGrFactory->abandonContexts(); 782 gGrFactory->abandonContexts();
781 } 783 }
782 if (FLAGS_resetGpuContext || FLAGS_abandonGpuContext) { 784 if (FLAGS_resetGpuContext || FLAGS_abandonGpuContext) {
783 gGrFactory->destroyContexts(); 785 gGrFactory->destroyContexts();
784 } 786 }
785 #endif 787 #endif
786 } 788 }
787 789
788 log->bench("memory_usage", 0,0); 790 log->bench("memory_usage", 0,0);
789 log->config("meta"); 791 log->config("meta");
790 log->metric("max_rss_mb", sk_tools::getMaxResidentSetSizeMB()); 792 log->metric("max_rss_mb", sk_tools::getMaxResidentSetSizeMB());
791 793
792 return 0; 794 return 0;
793 } 795 }
794 796
795 #if !defined SK_BUILD_FOR_IOS 797 #if !defined SK_BUILD_FOR_IOS
796 int main(int argc, char** argv) { 798 int main(int argc, char** argv) {
797 SkCommandLineFlags::Parse(argc, argv); 799 SkCommandLineFlags::Parse(argc, argv);
798 return nanobench_main(); 800 return nanobench_main();
799 } 801 }
800 #endif 802 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrGpu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698