Commit 16f5a3f0 authored by Sadrul Habib Chowdhury's avatar Sadrul Habib Chowdhury Committed by Commit Bot

viz: Snap sequence numbers in BeginFrameArgs based on vsync.

This brings GpuVSyncBeginFrameSource in-line with how BeginFrameArgs is
generated in other sources (e.g. ExternalBeginFrameSourceAndroid, and
DelayBasedBeginFrameSource).

BUG=none

Change-Id: Ib6f126c15092c0dc3be35a3ee6953ea1c2a21c48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2058034Reviewed-by: default avatarSunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Auto-Submit: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#742427}
parent 8b5f375c
...@@ -23,10 +23,9 @@ GpuVSyncBeginFrameSource::~GpuVSyncBeginFrameSource() = default; ...@@ -23,10 +23,9 @@ GpuVSyncBeginFrameSource::~GpuVSyncBeginFrameSource() = default;
void GpuVSyncBeginFrameSource::OnGpuVSync(base::TimeTicks vsync_time, void GpuVSyncBeginFrameSource::OnGpuVSync(base::TimeTicks vsync_time,
base::TimeDelta vsync_interval) { base::TimeDelta vsync_interval) {
ExternalBeginFrameSource::OnBeginFrame(BeginFrameArgs::Create( auto begin_frame_args = begin_frame_args_generator_.GenerateBeginFrameArgs(
BEGINFRAME_FROM_HERE, source_id(), next_begin_frame_sequence_number_++, source_id(), vsync_time, vsync_time + vsync_interval, vsync_interval);
vsync_time, vsync_time + vsync_interval, vsync_interval, ExternalBeginFrameSource::OnBeginFrame(begin_frame_args);
BeginFrameArgs::NORMAL));
} }
BeginFrameArgs GpuVSyncBeginFrameSource::GetMissedBeginFrameArgs( BeginFrameArgs GpuVSyncBeginFrameSource::GetMissedBeginFrameArgs(
...@@ -46,9 +45,8 @@ BeginFrameArgs GpuVSyncBeginFrameSource::GetMissedBeginFrameArgs( ...@@ -46,9 +45,8 @@ BeginFrameArgs GpuVSyncBeginFrameSource::GetMissedBeginFrameArgs(
// Don't create new args unless we've actually moved past the previous frame. // Don't create new args unless we've actually moved past the previous frame.
if (!last_begin_frame_args_.IsValid() || if (!last_begin_frame_args_.IsValid() ||
frame_time > last_begin_frame_args_.frame_time) { frame_time > last_begin_frame_args_.frame_time) {
last_begin_frame_args_ = BeginFrameArgs::Create( last_begin_frame_args_ = begin_frame_args_generator_.GenerateBeginFrameArgs(
BEGINFRAME_FROM_HERE, source_id(), next_begin_frame_sequence_number_++, source_id(), frame_time, frame_time + interval, interval);
frame_time, frame_time + interval, interval, BeginFrameArgs::NORMAL);
} }
return ExternalBeginFrameSource::GetMissedBeginFrameArgs(obs); return ExternalBeginFrameSource::GetMissedBeginFrameArgs(obs);
......
...@@ -34,7 +34,7 @@ class VIZ_SERVICE_EXPORT GpuVSyncBeginFrameSource ...@@ -34,7 +34,7 @@ class VIZ_SERVICE_EXPORT GpuVSyncBeginFrameSource
void OnGpuVSync(base::TimeTicks vsync_time, base::TimeDelta vsync_interval); void OnGpuVSync(base::TimeTicks vsync_time, base::TimeDelta vsync_interval);
OutputSurface* const output_surface_; OutputSurface* const output_surface_;
uint64_t next_begin_frame_sequence_number_ = 1; BeginFrameArgsGenerator begin_frame_args_generator_;
DISALLOW_COPY_AND_ASSIGN(GpuVSyncBeginFrameSource); DISALLOW_COPY_AND_ASSIGN(GpuVSyncBeginFrameSource);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment