| Index: ui/surface/accelerated_surface_win.cc
|
| diff --git a/ui/surface/accelerated_surface_win.cc b/ui/surface/accelerated_surface_win.cc
|
| index a8b57c5a450fa02e20df2505dcc2bbdc279da3ab..327c3b4375cdf43f60994effcdeca96a5dc09509 100644
|
| --- a/ui/surface/accelerated_surface_win.cc
|
| +++ b/ui/surface/accelerated_surface_win.cc
|
| @@ -377,13 +377,13 @@ scoped_refptr<AcceleratedPresenter> AcceleratedPresenter::GetForWindow(
|
| void AcceleratedPresenter::AsyncPresentAndAcknowledge(
|
| const gfx::Size& size,
|
| int64 surface_handle,
|
| - const ui::LatencyInfo& latency_info,
|
| + const std::vector<ui::LatencyInfo>& latency_info,
|
| const CompletionTask& completion_task) {
|
| if (!surface_handle) {
|
| TRACE_EVENT1("gpu", "EarlyOut_ZeroSurfaceHandle",
|
| "surface_handle", surface_handle);
|
| - completion_task.Run(
|
| - true, base::TimeTicks(), base::TimeDelta(), ui::LatencyInfo());
|
| + completion_task.Run(true, base::TimeTicks(), base::TimeDelta(),
|
| + std::vector<ui::LatencyInfo>());
|
| return;
|
| }
|
|
|
| @@ -679,7 +679,7 @@ bool AcceleratedPresenter::IsSwapChainInitialized() const {
|
| void AcceleratedPresenter::DoPresentAndAcknowledge(
|
| const gfx::Size& size,
|
| int64 surface_handle,
|
| - const ui::LatencyInfo& latency_info,
|
| + const std::vector<ui::LatencyInfo>& latency_info,
|
| const CompletionTask& completion_task) {
|
| TRACE_EVENT2(
|
| "gpu", "DoPresentAndAcknowledge",
|
| @@ -690,14 +690,15 @@ void AcceleratedPresenter::DoPresentAndAcknowledge(
|
|
|
| base::AutoLock locked(*present_thread_->lock());
|
|
|
| - latency_info_.MergeWith(latency_info);
|
| + for (size_t i = 0; i < latency_info.size(); i++)
|
| + latency_info_.push_back(latency_info[i]);
|
|
|
| // Initialize the device lazily since calling Direct3D can crash bots.
|
| present_thread_->InitDevice();
|
|
|
| if (!present_thread_->device()) {
|
| - completion_task.Run(
|
| - false, base::TimeTicks(), base::TimeDelta(), ui::LatencyInfo());
|
| + completion_task.Run(false, base::TimeTicks(), base::TimeDelta(),
|
| + std::vector<ui::LatencyInfo>());
|
| TRACE_EVENT0("gpu", "EarlyOut_NoDevice");
|
| return;
|
| }
|
| @@ -708,7 +709,7 @@ void AcceleratedPresenter::DoPresentAndAcknowledge(
|
| true,
|
| base::TimeTicks(),
|
| base::TimeDelta(),
|
| - ui::LatencyInfo()));
|
| + std::vector<ui::LatencyInfo>()));
|
|
|
| // If invalidated, do nothing, the window is gone.
|
| if (!window_) {
|
| @@ -847,8 +848,10 @@ void AcceleratedPresenter::DoPresentAndAcknowledge(
|
| ReleaseDC(window_, dc);
|
| }
|
|
|
| - latency_info_.AddLatencyNumber(
|
| - ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0);
|
| + for (size_t i = 0; i < latency_info_.size(); i++) {
|
| + latency_info_[i].AddLatencyNumber(
|
| + ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0);
|
| + }
|
|
|
| hidden_ = false;
|
|
|
| @@ -916,7 +919,7 @@ void AcceleratedPresenter::DoPresentAndAcknowledge(
|
|
|
| scoped_completion_runner.Release();
|
| completion_task.Run(true, last_vsync_time, refresh_period, latency_info_);
|
| - latency_info_.Clear();
|
| + latency_info_.clear();
|
| }
|
|
|
| void AcceleratedPresenter::DoSuspend() {
|
|
|