зеркало из https://github.com/mozilla/moz-skia.git
Make bench_pictures' timing more GPU friendly
https://codereview.chromium.org/113873005/ git-svn-id: http://skia.googlecode.com/svn/trunk@12705 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
495dc860bf
Коммит
090601c917
|
@ -170,30 +170,49 @@ void PictureBenchmark::run(SkPicture* pict) {
|
|||
this->logProgress(longRunningResult.c_str());
|
||||
}
|
||||
} else {
|
||||
SkAutoTDelete<BenchTimer> timer(this->setupTimer());
|
||||
TimerData timerData(fRepeats);
|
||||
SkAutoTDelete<BenchTimer> longRunningTimer(this->setupTimer());
|
||||
TimerData longRunningTimerData(1);
|
||||
SkAutoTDelete<BenchTimer> perRunTimer(this->setupTimer(false));
|
||||
TimerData perRunTimerData(fRepeats);
|
||||
|
||||
longRunningTimer->start();
|
||||
for (int i = 0; i < fRepeats; ++i) {
|
||||
fRenderer->setup();
|
||||
|
||||
timer->start();
|
||||
perRunTimer->start();
|
||||
fRenderer->render(NULL);
|
||||
timer->truncatedEnd();
|
||||
perRunTimer->truncatedEnd();
|
||||
fRenderer->resetState(false);
|
||||
perRunTimer->end();
|
||||
|
||||
// Finishes gl context
|
||||
fRenderer->resetState(true);
|
||||
timer->end();
|
||||
|
||||
SkAssertResult(timerData.appendTimes(timer.get()));
|
||||
SkAssertResult(perRunTimerData.appendTimes(perRunTimer.get()));
|
||||
}
|
||||
longRunningTimer->truncatedEnd();
|
||||
fRenderer->resetState(true);
|
||||
longRunningTimer->end();
|
||||
SkAssertResult(longRunningTimerData.appendTimes(longRunningTimer.get()));
|
||||
|
||||
SkString configName = fRenderer->getConfigName();
|
||||
|
||||
SkString result = timerData.getResult(timeFormat.c_str(),
|
||||
fTimerResult,
|
||||
configName.c_str(),
|
||||
timerTypes);
|
||||
// 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
|
||||
SkString result = perRunTimerData.getResult(timeFormat.c_str(),
|
||||
fTimerResult,
|
||||
configName.c_str(),
|
||||
timerTypes);
|
||||
result.append("\n");
|
||||
|
||||
this->logProgress(result.c_str());
|
||||
#else
|
||||
SkString result = longRunningTimerData.getResult(timeFormat.c_str(),
|
||||
fTimerResult,
|
||||
configName.c_str(),
|
||||
timerTypes,
|
||||
fRepeats);
|
||||
result.append("\n");
|
||||
this->logProgress(result.c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
fRenderer->end();
|
||||
|
|
Загрузка…
Ссылка в новой задаче