void VisualBench::resetTimingState() { fCurrentFrame = 0; fTimer = WallTimer(); this->resetContext(); }
void TimingStateMachine::resetTimingState() { fCurrentFrame = 0; fTimer = WallTimer(); }
void VisualBench::draw(SkCanvas* canvas) { if (!this->advanceRecordIfNecessary()) { this->closeWindow(); return; } this->renderFrame(canvas); switch (fState) { case kPreWarmLoops_State: { this->preWarm(kTuneLoops_State); break; } case kTuneLoops_State: { if (1 << 30 == fLoops) { // We're about to wrap. Something's wrong with the bench. SkDebugf("InnerLoops wrapped\n"); fLoops = 0; } else { fTimer.end(); double elapsed = fTimer.fWall; if (elapsed > FLAGS_loopMs) { fState = kPreWarmTiming_State; // Scale back the number of loops fLoops = (int)ceil(fLoops * FLAGS_loopMs / elapsed); fFlushes = (int)ceil(FLAGS_flushMs / elapsed); } else { fState = kPreWarmLoops_State; fLoops *= 2; } fCurrentFrame = 0; fTimer = WallTimer(); this->resetContext(); } break; } case kPreWarmTiming_State: { this->preWarm(kTiming_State); break; } case kTiming_State: { if (fCurrentFrame >= FLAGS_frames) { fTimer.end(); fRecords[fCurrentPictureIdx].fMeasurements.push_back( fTimer.fWall / (FLAGS_frames * fLoops * fFlushes)); if (fCurrentSample++ >= FLAGS_samples) { fState = kPreWarmLoops_State; this->printStats(); fPicture.reset(NULL); fCurrentSample = 0; fFlushes = 1; fLoops = 1; } else { fState = kPreWarmTiming_State; } fTimer = WallTimer(); this->resetContext(); fCurrentFrame = 0; } else { fCurrentFrame++; } break; } } // Invalidate the window to force a redraw. Poor man's animation mechanism. this->inval(NULL); }
void VisualInteractiveModule::resetTimingState() { fCurrentFrame = 0; fTimer = WallTimer(); fOwner->reset(); }