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

Side by Side Diff: tools/bench_pictures_main.cpp

Issue 639013003: Update old tools to allow MultiPictureDraw rendering (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Update to ToT Created 6 years, 2 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 | « tools/bbh_shootout.cpp ('k') | tools/render_pictures_main.cpp » ('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 2012 Google Inc. 2 * Copyright 2012 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 "BenchLogger.h" 8 #include "BenchLogger.h"
9 #include "Timer.h" 9 #include "Timer.h"
10 #include "CopyTilesRenderer.h" 10 #include "CopyTilesRenderer.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 " for each picture."); 52 " for each picture.");
53 DEFINE_bool(trackDeferredCaching, false, "Only meaningful with --deferImageDecod ing and " 53 DEFINE_bool(trackDeferredCaching, false, "Only meaningful with --deferImageDecod ing and "
54 "SK_LAZY_CACHE_STATS set to true. Report percentage of cache hits wh en using " 54 "SK_LAZY_CACHE_STATS set to true. Report percentage of cache hits wh en using "
55 "deferred image decoding."); 55 "deferred image decoding.");
56 56
57 #if GR_GPU_STATS 57 #if GR_GPU_STATS
58 DEFINE_bool(gpuStats, false, "Only meaningful with gpu configurations. " 58 DEFINE_bool(gpuStats, false, "Only meaningful with gpu configurations. "
59 "Report some GPU call statistics."); 59 "Report some GPU call statistics.");
60 #endif 60 #endif
61 61
62 DEFINE_bool(preprocess, false, "If true, perform device specific preprocessing b efore timing."); 62 DEFINE_bool(mpd, false, "If true, use MultiPictureDraw to render.");
63 63
64 // Buildbot-specific parameters 64 // Buildbot-specific parameters
65 DEFINE_string(builderName, "", "Name of the builder this is running on."); 65 DEFINE_string(builderName, "", "Name of the builder this is running on.");
66 DEFINE_int32(buildNumber, -1, "Build number of the build this test is running on "); 66 DEFINE_int32(buildNumber, -1, "Build number of the build this test is running on ");
67 DEFINE_int32(timestamp, 0, "Timestamp of the revision of Skia being tested."); 67 DEFINE_int32(timestamp, 0, "Timestamp of the revision of Skia being tested.");
68 DEFINE_string(gitHash, "", "Commit hash of the revision of Skia being run."); 68 DEFINE_string(gitHash, "", "Commit hash of the revision of Skia being run.");
69 DEFINE_int32(gitNumber, -1, "Git number of the revision of Skia being run."); 69 DEFINE_int32(gitNumber, -1, "Git number of the revision of Skia being run.");
70 70
71 71
72 static char const * const gFilterTypes[] = { 72 static char const * const gFilterTypes[] = {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 } 195 }
196 SkAutoTUnref<SkPicture> picture(SkPicture::CreateFromStream(&inputStream, pr oc)); 196 SkAutoTUnref<SkPicture> picture(SkPicture::CreateFromStream(&inputStream, pr oc));
197 197
198 if (NULL == picture.get()) { 198 if (NULL == picture.get()) {
199 SkString err; 199 SkString err;
200 err.printf("Could not read an SkPicture from %s\n", inputPath.c_str()); 200 err.printf("Could not read an SkPicture from %s\n", inputPath.c_str());
201 gLogger.logError(err); 201 gLogger.logError(err);
202 return false; 202 return false;
203 } 203 }
204 204
205 if (FLAGS_preprocess) {
206 // Because the GPU preprocessing step relies on the in-memory picture
207 // statistics we need to rerecord the picture here
208 SkPictureRecorder recorder;
209 picture->playback(recorder.beginRecording(picture->cullRect().width(),
210 picture->cullRect().height(),
211 NULL, 0));
212 picture.reset(recorder.endRecording());
213 }
214
215 SkString filename = SkOSPath::Basename(inputPath.c_str()); 205 SkString filename = SkOSPath::Basename(inputPath.c_str());
216 206
217 gWriter.bench(filename.c_str(), 207 gWriter.bench(filename.c_str(),
218 SkScalarCeilToInt(picture->cullRect().width()), 208 SkScalarCeilToInt(picture->cullRect().width()),
219 SkScalarCeilToInt(picture->cullRect().height())); 209 SkScalarCeilToInt(picture->cullRect().height()));
220 210
221 benchmark.run(picture); 211 benchmark.run(picture, FLAGS_mpd);
222 212
223 #if SK_LAZY_CACHE_STATS 213 #if SK_LAZY_CACHE_STATS
224 if (FLAGS_trackDeferredCaching) { 214 if (FLAGS_trackDeferredCaching) {
225 int cacheHits = pool->getCacheHits(); 215 int cacheHits = pool->getCacheHits();
226 int cacheMisses = pool->getCacheMisses(); 216 int cacheMisses = pool->getCacheMisses();
227 pool->resetCacheHitsAndMisses(); 217 pool->resetCacheHitsAndMisses();
228 SkString hitString; 218 SkString hitString;
229 hitString.printf("Cache hit rate: %f\n", (double) cacheHits / (cacheHits + cacheMisses)); 219 hitString.printf("Cache hit rate: %f\n", (double) cacheHits / (cacheHits + cacheMisses));
230 gLogger.logProgress(hitString); 220 gLogger.logProgress(hitString);
231 gTotalCacheHits += cacheHits; 221 gTotalCacheHits += cacheHits;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 exit(-1); 348 exit(-1);
359 } 349 }
360 if (!tiledRenderer->supportsTimingIndividualTiles()) { 350 if (!tiledRenderer->supportsTimingIndividualTiles()) {
361 gLogger.logError("This renderer does not support --timeIndividualTil es.\n"); 351 gLogger.logError("This renderer does not support --timeIndividualTil es.\n");
362 exit(-1); 352 exit(-1);
363 } 353 }
364 benchmark->setTimeIndividualTiles(true); 354 benchmark->setTimeIndividualTiles(true);
365 } 355 }
366 356
367 benchmark->setPurgeDecodedTex(FLAGS_purgeDecodedTex); 357 benchmark->setPurgeDecodedTex(FLAGS_purgeDecodedTex);
368 benchmark->setPreprocess(FLAGS_preprocess);
369 358
370 if (FLAGS_readPath.count() < 1) { 359 if (FLAGS_readPath.count() < 1) {
371 gLogger.logError(".skp files or directories are required.\n"); 360 gLogger.logError(".skp files or directories are required.\n");
372 exit(-1); 361 exit(-1);
373 } 362 }
374 363
375 renderer->setDrawFilters(drawFilters, filtersName(drawFilters)); 364 renderer->setDrawFilters(drawFilters, filtersName(drawFilters));
376 if (FLAGS_logPerIter) { 365 if (FLAGS_logPerIter) {
377 benchmark->setTimerResultType(TimerData::kPerIter_Result); 366 benchmark->setTimerResultType(TimerData::kPerIter_Result);
378 } else if (FLAGS_min) { 367 } else if (FLAGS_min) {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 481
493 gWriter.end(); 482 gWriter.end();
494 return 0; 483 return 0;
495 } 484 }
496 485
497 #if !defined SK_BUILD_FOR_IOS 486 #if !defined SK_BUILD_FOR_IOS
498 int main(int argc, char * const argv[]) { 487 int main(int argc, char * const argv[]) {
499 return tool_main(argc, (char**) argv); 488 return tool_main(argc, (char**) argv);
500 } 489 }
501 #endif 490 #endif
OLDNEW
« no previous file with comments | « tools/bbh_shootout.cpp ('k') | tools/render_pictures_main.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698