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

Unified Diff: tools/PictureBenchmark.cpp

Issue 1416913003: Clean up some dead code. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: kill dump-record Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/PictureBenchmark.h ('k') | tools/PictureRenderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/PictureBenchmark.cpp
diff --git a/tools/PictureBenchmark.cpp b/tools/PictureBenchmark.cpp
deleted file mode 100644
index 84528e5744476ced19efbe1fa6b5999ef882c655..0000000000000000000000000000000000000000
--- a/tools/PictureBenchmark.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "Timer.h"
-#include "PictureBenchmark.h"
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkString.h"
-#include "picture_utils.h"
-
-namespace sk_tools {
-
-PictureBenchmark::PictureBenchmark()
- : fRepeats(1)
- , fRenderer(nullptr)
- , fTimerResult(TimerData::kAvg_Result)
- , fTimerTypes(0)
- , fTimeIndividualTiles(false)
- , fPurgeDecodedTex(false)
- , fWriter(nullptr) {
-}
-
-PictureBenchmark::~PictureBenchmark() {
- SkSafeUnref(fRenderer);
-}
-
-void PictureBenchmark::setTimersToShow(bool wall,
- bool truncatedWall,
- bool cpu,
- bool truncatedCpu,
- bool gpu) {
- fTimerTypes = 0;
- fTimerTypes |= wall ? TimerData::kWall_Flag : 0;
- fTimerTypes |= truncatedWall ? TimerData::kTruncatedWall_Flag : 0;
- fTimerTypes |= cpu ? TimerData::kCpu_Flag : 0;
- fTimerTypes |= truncatedCpu ? TimerData::kTruncatedCpu_Flag : 0;
- fTimerTypes |= gpu ? TimerData::kGpu_Flag : 0;
-}
-
-Timer* PictureBenchmark::setupTimer(bool useGLTimer) {
-#if SK_SUPPORT_GPU
- if (useGLTimer && fRenderer != nullptr && fRenderer->isUsingGpuDevice()) {
- return new Timer(fRenderer->getGLContext());
- }
-#endif
- return new Timer(nullptr);
-}
-
-PictureRenderer* PictureBenchmark::setRenderer(sk_tools::PictureRenderer* renderer) {
- SkRefCnt_SafeAssign(fRenderer, renderer);
- return renderer;
-}
-
-void PictureBenchmark::run(SkPicture* pict, bool useMultiPictureDraw) {
- SkASSERT(pict);
- if (nullptr == pict) {
- return;
- }
-
- SkASSERT(fRenderer != nullptr);
- if (nullptr == fRenderer) {
- return;
- }
-
- fRenderer->init(pict, nullptr, nullptr, nullptr, false, useMultiPictureDraw);
-
- // We throw this away to remove first time effects (such as paging in this program)
- fRenderer->setup();
-
- fRenderer->render(nullptr);
- fRenderer->resetState(true); // flush, swapBuffers and Finish
-
- if (fPurgeDecodedTex) {
- fRenderer->purgeTextures();
- }
-
- bool usingGpu = false;
-#if SK_SUPPORT_GPU
- usingGpu = fRenderer->isUsingGpuDevice();
-#endif
-
- uint32_t timerTypes = fTimerTypes;
- if (!usingGpu) {
- timerTypes &= ~TimerData::kGpu_Flag;
- }
-
- SkString timeFormat;
- if (TimerData::kPerIter_Result == fTimerResult) {
- timeFormat = fRenderer->getPerIterTimeFormat();
- } else {
- timeFormat = fRenderer->getNormalTimeFormat();
- }
-
- static const int kNumInnerLoops = 10;
- int numOuterLoops = 1;
- int numInnerLoops = fRepeats;
-
- if (TimerData::kPerIter_Result == fTimerResult && fRepeats > 1) {
- // interpret this flag combination to mean: generate 'fRepeats'
- // numbers by averaging each rendering 'kNumInnerLoops' times
- numOuterLoops = fRepeats;
- numInnerLoops = kNumInnerLoops;
- }
-
- if (fTimeIndividualTiles) {
- TiledPictureRenderer* tiledRenderer = fRenderer->getTiledRenderer();
- SkASSERT(tiledRenderer && tiledRenderer->supportsTimingIndividualTiles());
- if (nullptr == tiledRenderer || !tiledRenderer->supportsTimingIndividualTiles()) {
- return;
- }
- int xTiles, yTiles;
- if (!tiledRenderer->tileDimensions(xTiles, yTiles)) {
- return;
- }
-
- int x, y;
- while (tiledRenderer->nextTile(x, y)) {
- // There are two timers, which will behave slightly differently:
- // 1) longRunningTimer, along with perTileTimerData, will time how long it takes to draw
- // one tile fRepeats times, and take the average. As such, it will not respect the
- // logPerIter or printMin options, since it does not know the time per iteration. It
- // will also be unable to call flush() for each tile.
- // The goal of this timer is to make up for a system timer that is not precise enough to
- // measure the small amount of time it takes to draw one tile once.
- //
- // 2) perTileTimer, along with perTileTimerData, will record each run separately, and
- // then take the average. As such, it supports logPerIter and printMin options.
- //
- // Although "legal", having two gpu timers running at the same time
- // seems to cause problems (i.e., INVALID_OPERATIONs) on several
- // platforms. To work around this, we disable the gpu timer on the
- // long running timer.
- SkAutoTDelete<Timer> longRunningTimer(this->setupTimer());
- TimerData longRunningTimerData(numOuterLoops);
-
- for (int outer = 0; outer < numOuterLoops; ++outer) {
- SkAutoTDelete<Timer> perTileTimer(this->setupTimer(false));
- TimerData perTileTimerData(numInnerLoops);
-
- longRunningTimer->start();
- for (int inner = 0; inner < numInnerLoops; ++inner) {
- perTileTimer->start();
- tiledRenderer->drawCurrentTile();
- perTileTimer->truncatedEnd();
- tiledRenderer->resetState(false); // flush & swapBuffers, but don't Finish
- perTileTimer->end();
- SkAssertResult(perTileTimerData.appendTimes(perTileTimer.get()));
-
- if (fPurgeDecodedTex) {
- fRenderer->purgeTextures();
- }
- }
- longRunningTimer->truncatedEnd();
- tiledRenderer->resetState(true); // flush, swapBuffers and Finish
- longRunningTimer->end();
- SkAssertResult(longRunningTimerData.appendTimes(longRunningTimer.get()));
- }
-
- fWriter->logRenderer(tiledRenderer);
- fWriter->tileMeta(x, y, xTiles, yTiles);
-
- // TODO(borenet): Turn off per-iteration tile time reporting for now.
- // Avoiding logging the time for every iteration for each tile cuts
- // down on data file size by a significant amount. Re-enable this once
- // we're loading the bench data directly into a data store and are no
- // longer generating SVG graphs.
-#if 0
- fWriter->tileData(
- &perTileTimerData,
- timeFormat.c_str(),
- fTimerResult,
- timerTypes);
-#endif
-
- if (fPurgeDecodedTex) {
- fWriter->addTileFlag(PictureResultsWriter::kPurging);
- }
- fWriter->addTileFlag(PictureResultsWriter::kAvg);
- fWriter->tileData(
- &longRunningTimerData,
- tiledRenderer->getNormalTimeFormat().c_str(),
- TimerData::kAvg_Result,
- timerTypes,
- numInnerLoops);
- }
- } else {
- SkAutoTDelete<Timer> longRunningTimer(this->setupTimer());
- TimerData longRunningTimerData(numOuterLoops);
-
- for (int outer = 0; outer < numOuterLoops; ++outer) {
- SkAutoTDelete<Timer> perRunTimer(this->setupTimer(false));
- TimerData perRunTimerData(numInnerLoops);
-
- longRunningTimer->start();
- for (int inner = 0; inner < numInnerLoops; ++inner) {
- fRenderer->setup();
-
- perRunTimer->start();
- fRenderer->render(nullptr);
- perRunTimer->truncatedEnd();
- fRenderer->resetState(false); // flush & swapBuffers, but don't Finish
- perRunTimer->end();
-
- SkAssertResult(perRunTimerData.appendTimes(perRunTimer.get()));
-
- if (fPurgeDecodedTex) {
- fRenderer->purgeTextures();
- }
- }
- longRunningTimer->truncatedEnd();
- fRenderer->resetState(true); // flush, swapBuffers and Finish
- longRunningTimer->end();
- SkAssertResult(longRunningTimerData.appendTimes(longRunningTimer.get()));
- }
-
- fWriter->logRenderer(fRenderer);
- if (fPurgeDecodedTex) {
- fWriter->addTileFlag(PictureResultsWriter::kPurging);
- }
-
- // Beware - since the per-run-timer doesn't ever include a glFinish it can
- // report a lower time then the long-running-timer
-#if 0
- fWriter->tileData(
- &perRunTimerData,
- timeFormat.c_str(),
- fTimerResult,
- timerTypes);
-#else
- fWriter->tileData(
- &longRunningTimerData,
- timeFormat.c_str(),
- fTimerResult,
- timerTypes,
- numInnerLoops);
-#endif
- }
-
- fRenderer->end();
-}
-
-}
« no previous file with comments | « tools/PictureBenchmark.h ('k') | tools/PictureRenderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698