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

Unified Diff: bench/benchmain.cpp

Issue 19862002: Do timer allocation and string building outside of bench loops (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: on top of tot Created 7 years, 5 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 | « bench/TimerData.cpp ('k') | tools/PictureBenchmark.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bench/benchmain.cpp
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index 1ace7d108abd3d86623e619aa55797da9adbc07d..22487537eb416b30439ab190032a7f5e7a1ae3e0 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -348,20 +348,20 @@ int tool_main(int argc, char** argv) {
SkTDict<const char*> defineDict(1024);
int repeatDraw = 1;
- bool logPerIter = false;
+
int forceAlpha = 0xFF;
bool forceAA = true;
bool forceFilter = false;
SkTriState::State forceDither = SkTriState::kDefault;
- bool timerWall = false;
- bool truncatedTimerWall = false;
- bool timerCpu = true;
- bool truncatedTimerCpu = false;
- bool timerGpu = true;
+
+ static const uint32_t kDefaultTimerTypes = TimerData::kCpu_Flag | TimerData::kGpu_Flag;
+ static const TimerData::Result kDefaultTimerResult = TimerData::kAvg_Result;
+ uint32_t timerTypes = kDefaultTimerTypes;
+ TimerData::Result timerResult = kDefaultTimerResult;
+
bool doScale = false;
bool doRotate = false;
bool doClip = false;
- bool printMin = false;
bool hasStrokeWidth = false;
#if SK_SUPPORT_GPU
@@ -410,22 +410,18 @@ int tool_main(int argc, char** argv) {
return -1;
}
} else if (strcmp(*argv, "--logPerIter") == 0) {
- logPerIter = true;
+ timerResult = TimerData::kPerIter_Result;
} else if (strcmp(*argv, "--timers") == 0) {
argv++;
if (argv < stop) {
- timerWall = false;
- truncatedTimerWall = false;
- timerCpu = false;
- truncatedTimerCpu = false;
- timerGpu = false;
+ timerTypes = 0;
for (char* t = *argv; *t; ++t) {
switch (*t) {
- case 'w': timerWall = true; break;
- case 'c': timerCpu = true; break;
- case 'W': truncatedTimerWall = true; break;
- case 'C': truncatedTimerCpu = true; break;
- case 'g': timerGpu = true; break;
+ case 'w': timerTypes |= TimerData::kWall_Flag; break;
+ case 'c': timerTypes |= TimerData::kCpu_Flag; break;
+ case 'W': timerTypes |= TimerData::kTruncatedWall_Flag; break;
+ case 'C': timerTypes |= TimerData::kTruncatedCpu_Flag; break;
+ case 'g': timerTypes |= TimerData::kGpu_Flag; break;
}
}
} else {
@@ -440,7 +436,7 @@ int tool_main(int argc, char** argv) {
} else if (!strcmp(*argv, "--clip")) {
doClip = true;
} else if (!strcmp(*argv, "--min")) {
- printMin = true;
+ timerResult = TimerData::kMin_Result;
} else if (strcmp(*argv, "--forceAA") == 0) {
if (!parse_bool_arg(++argv, stop, &forceAA)) {
logger.logError("missing arg for --forceAA\n");
@@ -648,9 +644,9 @@ int tool_main(int argc, char** argv) {
str.printf("skia bench: alpha=0x%02X antialias=%d filter=%d "
"deferred=%s logperiter=%d",
forceAlpha, forceAA, forceFilter, deferredMode,
- logPerIter);
+ TimerData::kPerIter_Result == timerResult);
str.appendf(" rotate=%d scale=%d clip=%d min=%d",
- doRotate, doScale, doClip, printMin);
+ doRotate, doScale, doClip, TimerData::kMin_Result == timerResult);
str.appendf(" record=%d picturerecord=%d",
benchMode == kRecord_benchModes,
benchMode == kPictureRecord_benchModes);
@@ -883,7 +879,7 @@ int tool_main(int argc, char** argv) {
}
// record timer values for each repeat, and their sum
- TimerData timerData(perIterTimeformat, normalTimeFormat);
+ TimerData timerData(repeatDraw);
for (int i = 0; i < repeatDraw; i++) {
if ((benchMode == kRecord_benchModes || benchMode == kPictureRecord_benchModes)) {
// This will clear the recorded commands so that they do not
@@ -925,15 +921,24 @@ int tool_main(int argc, char** argv) {
// have completed
timer->end();
- timerData.appendTimes(timer, repeatDraw - 1 == i);
+ SkAssertResult(timerData.appendTimes(timer));
}
if (repeatDraw > 1) {
- SkString result = timerData.getResult(
- logPerIter, printMin, repeatDraw, configName,
- timerWall, truncatedTimerWall, timerCpu,
- truncatedTimerCpu,
- timerGpu && NULL != context);
+ const char* timeFormat;
+ if (TimerData::kPerIter_Result == timerResult) {
+ timeFormat = perIterTimeformat.c_str();
+ } else {
+ timeFormat = normalTimeFormat.c_str();
+ }
+ uint32_t filteredTimerTypes = timerTypes;
+ if (NULL == context) {
+ filteredTimerTypes &= ~TimerData::kGpu_Flag;
+ }
+ SkString result = timerData.getResult(timeFormat,
+ timerResult,
+ configName,
+ filteredTimerTypes);
logger.logProgress(result);
}
if (outDir.size() > 0 && kNonRendering_Backend != backend) {
« no previous file with comments | « bench/TimerData.cpp ('k') | tools/PictureBenchmark.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698