| Index: gpu/ipc/in_process_command_buffer.cc
|
| diff --git a/gpu/ipc/in_process_command_buffer.cc b/gpu/ipc/in_process_command_buffer.cc
|
| index 1934450bc4db1a16399aed3432636b3c2c0b475b..028833c5e2252cb6a202c96618b595703f4db6af 100644
|
| --- a/gpu/ipc/in_process_command_buffer.cc
|
| +++ b/gpu/ipc/in_process_command_buffer.cc
|
| @@ -284,6 +284,10 @@ bool InProcessCommandBuffer::Initialize(
|
| return result;
|
| }
|
|
|
| +void InProcessCommandBuffer::SetLatencyInfo(const std::vector<ui::LatencyInfo>& latency_info) {
|
| + latency_info_.insert(latency_info_.end(), latency_info.begin(), latency_info.end());
|
| +}
|
| +
|
| bool InProcessCommandBuffer::InitializeOnGpuThread(
|
| const InitializeOnGpuThreadParams& params) {
|
| CheckSequencedThread();
|
| @@ -555,6 +559,13 @@ void InProcessCommandBuffer::FlushOnGpuThread(int32_t put_offset) {
|
| ScopedEvent handle_flush(&flush_event_);
|
| base::AutoLock lock(command_buffer_lock_);
|
|
|
| + if (ui::LatencyInfo::Verify(latency_info_,
|
| + "InProcessCommandBuffer::FlushOnGpuThread") &&
|
| + !latency_info_callback_.is_null()) {
|
| + latency_info_callback_.Run(latency_info_);
|
| + }
|
| + latency_info_.clear();
|
| +
|
| command_buffer_->Flush(put_offset);
|
| // Update state before signaling the flush event.
|
| UpdateLastStateOnGpuThread();
|
| @@ -1014,7 +1025,7 @@ const gles2::FeatureInfo* InProcessCommandBuffer::GetFeatureInfo() const {
|
|
|
| void InProcessCommandBuffer::SetLatencyInfoCallback(
|
| const LatencyInfoCallback& callback) {
|
| - // TODO(fsamuel): Implement this.
|
| + latency_info_callback_ = callback;
|
| }
|
|
|
| void InProcessCommandBuffer::UpdateVSyncParameters(base::TimeTicks timebase,
|
|
|