| Index: mojo/ui/choreographer.cc
|
| diff --git a/mojo/ui/choreographer.cc b/mojo/ui/choreographer.cc
|
| index 16a6b326d18d8c9a34497571e081097a2915255d..758b70e4063d2da4fe12d08b4a6e59c86a8cd55d 100644
|
| --- a/mojo/ui/choreographer.cc
|
| +++ b/mojo/ui/choreographer.cc
|
| @@ -58,60 +58,9 @@ void Choreographer::DoFrame(mojo::gfx::composition::FrameInfoPtr frame_info) {
|
| // this exacerbates starvation issues in the Mojo message pump.
|
| // ScheduleFrame();
|
|
|
| - // Ensure frame info is sane since it comes from another service.
|
| - // TODO(jeffbrown): Would be better to report an error to the client
|
| - // who can shut things down if needed.
|
| - MojoTimeTicks now = mojo::GetTimeTicksNow();
|
| - if (frame_info->frame_time > now) {
|
| - LOG(WARNING) << "Frame time is in the future: frame_time="
|
| - << frame_info->frame_time << ", now=" << now;
|
| - frame_info->frame_time = now;
|
| - }
|
| - if (frame_info->frame_deadline < frame_info->frame_time) {
|
| - LOG(WARNING)
|
| - << "Frame deadline is earlier than frame time: frame_deadline="
|
| - << frame_info->frame_deadline
|
| - << ", frame_time=" << frame_info->frame_time << ", now=" << now;
|
| - frame_info->frame_deadline = frame_info->frame_time;
|
| - }
|
| - if (frame_info->presentation_time < frame_info->frame_deadline) {
|
| - LOG(WARNING) << "Presentation time is earlier than frame deadline: "
|
| - "presentation_time="
|
| - << frame_info->presentation_time
|
| - << ", frame_deadline=" << frame_info->frame_deadline
|
| - << ", now=" << now;
|
| - frame_info->presentation_time = frame_info->frame_deadline;
|
| - }
|
| -
|
| - // Compensate for significant lag by adjusting the frame time if needed
|
| - // to step past skipped frames.
|
| - uint64_t lag = now - frame_info->frame_time;
|
| - if (frame_info->frame_interval > 0u && lag > frame_info->frame_interval) {
|
| - uint64_t offset = lag % frame_info->frame_interval;
|
| - uint64_t adjustment = now - offset - frame_info->frame_time;
|
| - frame_info->frame_time = now - offset;
|
| - frame_info->frame_deadline += adjustment;
|
| - frame_info->presentation_time += adjustment;
|
| -
|
| - // Jank warning.
|
| - // TODO(jeffbrown): Suppress this once we're happy with things.
|
| - LOG(WARNING) << "Missed " << frame_info->frame_interval
|
| - << " us frame deadline by " << lag << " us, skipping "
|
| - << (lag / frame_info->frame_interval) << " frames";
|
| - }
|
| -
|
| - // Ensure frame time isn't going backwards, just in case the compositor's
|
| - // timing is seriously broken.
|
| - base::TimeDelta time_delta;
|
| - if (last_frame_info_) {
|
| - DCHECK(frame_info->frame_time >= last_frame_info_->frame_time);
|
| - time_delta = base::TimeDelta::FromMicroseconds(
|
| - frame_info->frame_time - last_frame_info_->frame_time);
|
| - }
|
| -
|
| - // Invoke the callback.
|
| - last_frame_info_ = frame_info.Pass();
|
| - delegate_->OnDraw(*last_frame_info_, time_delta);
|
| + base::TimeDelta time_delta = base::TimeDelta::FromMicroseconds(
|
| + frame_tracker_.Update(*frame_info, mojo::GetTimeTicksNow()));
|
| + delegate_->OnDraw(frame_tracker_.frame_info(), time_delta);
|
| }
|
| }
|
|
|
|
|