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

Side by Side Diff: bench/benchmain.cpp

Issue 316143003: Remove SkPicture::kUsePathBoundsForClip_RecordingFlag (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Add suppression for fixed GM Created 6 years, 6 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 | expectations/gm/ignored-tests.txt » ('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 2011 Google Inc. 2 * Copyright 2011 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 "BenchTimer.h" 8 #include "BenchTimer.h"
9 #include "ResultsWriter.h" 9 #include "ResultsWriter.h"
10 #include "SkBenchLogger.h" 10 #include "SkBenchLogger.h"
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 } 483 }
484 glContext = gContextFactory.getGLContext(config.contextType); 484 glContext = gContextFactory.getGLContext(config.contextType);
485 } 485 }
486 #endif 486 #endif
487 487
488 SkAutoTUnref<SkCanvas> canvas; 488 SkAutoTUnref<SkCanvas> canvas;
489 SkAutoTUnref<SkPicture> recordFrom; 489 SkAutoTUnref<SkPicture> recordFrom;
490 SkPictureRecorder recorderTo; 490 SkPictureRecorder recorderTo;
491 const SkIPoint dim = bench->getSize(); 491 const SkIPoint dim = bench->getSize();
492 492
493 const SkPicture::RecordingFlags kRecordFlags =
494 SkPicture::kUsePathBoundsForClip_RecordingFlag;
495
496 SkAutoTUnref<SkSurface> surface; 493 SkAutoTUnref<SkSurface> surface;
497 if (SkBenchmark::kNonRendering_Backend != config.backend) { 494 if (SkBenchmark::kNonRendering_Backend != config.backend) {
498 surface.reset(make_surface(config.fColorType, 495 surface.reset(make_surface(config.fColorType,
499 dim, 496 dim,
500 config.backend, 497 config.backend,
501 config.sampleCount, 498 config.sampleCount,
502 context)); 499 context));
503 if (!surface.get()) { 500 if (!surface.get()) {
504 logger.logError(SkStringPrintf( 501 logger.logError(SkStringPrintf(
505 "Device creation failure for config %s. Will skip.\n", c onfig.name)); 502 "Device creation failure for config %s. Will skip.\n", c onfig.name));
506 continue; 503 continue;
507 } 504 }
508 505
509 switch(benchMode) { 506 switch(benchMode) {
510 case kDeferredSilent_BenchMode: 507 case kDeferredSilent_BenchMode:
511 case kDeferred_BenchMode: 508 case kDeferred_BenchMode:
512 canvas.reset(SkDeferredCanvas::Create(surface.get())); 509 canvas.reset(SkDeferredCanvas::Create(surface.get()));
513 break; 510 break;
514 case kRecord_BenchMode: 511 case kRecord_BenchMode:
515 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY, 512 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY)));
516 NULL, kReco rdFlags)));
517 break; 513 break;
518 case kPictureRecord_BenchMode: { 514 case kPictureRecord_BenchMode: {
519 SkPictureRecorder recorderFrom; 515 SkPictureRecorder recorderFrom;
520 bench->draw(1, recorderFrom.beginRecording(dim.fX, dim.f Y, 516 bench->draw(1, recorderFrom.beginRecording(dim.fX, dim.f Y));
521 NULL, kRecord Flags));
522 recordFrom.reset(recorderFrom.endRecording()); 517 recordFrom.reset(recorderFrom.endRecording());
523 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY, 518 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY)));
524 NULL, kReco rdFlags)));
525 break; 519 break;
526 } 520 }
527 case kNormal_BenchMode: 521 case kNormal_BenchMode:
528 canvas.reset(SkRef(surface->getCanvas())); 522 canvas.reset(SkRef(surface->getCanvas()));
529 break; 523 break;
530 default: 524 default:
531 SkASSERT(false); 525 SkASSERT(false);
532 } 526 }
533 } 527 }
534 528
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 // you've got a computer clocked at several THz or have a broken benchmark. ;) 574 // you've got a computer clocked at several THz or have a broken benchmark. ;)
581 // "1B ought to be enough for anybody." 575 // "1B ought to be enough for anybody."
582 logger.logError(SkStringPrintf( 576 logger.logError(SkStringPrintf(
583 "\nCan't get %s %s to converge in %dms (%d loops)", 577 "\nCan't get %s %s to converge in %dms (%d loops)",
584 bench->getName(), config.name, FLAGS_maxMs, loopsPe rIter)); 578 bench->getName(), config.name, FLAGS_maxMs, loopsPe rIter));
585 break; 579 break;
586 } 580 }
587 581
588 if ((benchMode == kRecord_BenchMode || benchMode == kPicture Record_BenchMode)) { 582 if ((benchMode == kRecord_BenchMode || benchMode == kPicture Record_BenchMode)) {
589 // Clear the recorded commands so that they do not accum ulate. 583 // Clear the recorded commands so that they do not accum ulate.
590 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY, 584 canvas.reset(SkRef(recorderTo.beginRecording(dim.fX, dim .fY)));
591 NULL, kReco rdFlags)));
592 } 585 }
593 586
594 timer.start(); 587 timer.start();
595 // Inner loop that allows us to break the run into smaller 588 // Inner loop that allows us to break the run into smaller
596 // chunks (e.g. frames). This is especially useful for the G PU 589 // chunks (e.g. frames). This is especially useful for the G PU
597 // as we can flush and/or swap buffers to keep the GPU from 590 // as we can flush and/or swap buffers to keep the GPU from
598 // queuing up too much work. 591 // queuing up too much work.
599 for (int loopCount = loopsPerIter; loopCount > 0; ) { 592 for (int loopCount = loopsPerIter; loopCount > 0; ) {
600 // Save and restore around each call to draw() to guaran tee a pristine canvas. 593 // Save and restore around each call to draw() to guaran tee a pristine canvas.
601 SkAutoCanvasRestore saveRestore(canvas, true/*also save* /); 594 SkAutoCanvasRestore saveRestore(canvas, true/*also save* /);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 gContextFactory.destroyContexts(); 696 gContextFactory.destroyContexts();
704 #endif 697 #endif
705 return 0; 698 return 0;
706 } 699 }
707 700
708 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) 701 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
709 int main(int argc, char * const argv[]) { 702 int main(int argc, char * const argv[]) {
710 return tool_main(argc, (char**) argv); 703 return tool_main(argc, (char**) argv);
711 } 704 }
712 #endif 705 #endif
OLDNEW
« no previous file with comments | « no previous file | expectations/gm/ignored-tests.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698