Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: content/common/gpu/image_transport_surface.cc

Issue 628703005: Remove GpuHostMsg_FrameDrawn and replace with client channel swap ack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/gpu/image_transport_surface.h" 5 #include "content/common/gpu/image_transport_surface.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 manager_->Send(new GpuHostMsg_AcceleratedSurfaceBuffersSwapped(params)); 106 manager_->Send(new GpuHostMsg_AcceleratedSurfaceBuffersSwapped(params));
107 } 107 }
108 108
109 void ImageTransportHelper::SendUpdateVSyncParameters( 109 void ImageTransportHelper::SendUpdateVSyncParameters(
110 base::TimeTicks timebase, base::TimeDelta interval) { 110 base::TimeTicks timebase, base::TimeDelta interval) {
111 manager_->Send(new GpuHostMsg_UpdateVSyncParameters(stub_->surface_id(), 111 manager_->Send(new GpuHostMsg_UpdateVSyncParameters(stub_->surface_id(),
112 timebase, 112 timebase,
113 interval)); 113 interval));
114 } 114 }
115 115
116 void ImageTransportHelper::SendLatencyInfo( 116 void ImageTransportHelper::SwapBuffersCompleted(
117 const std::vector<ui::LatencyInfo>& latency_info) { 117 const std::vector<ui::LatencyInfo>& latency_info) {
118 manager_->Send(new GpuHostMsg_FrameDrawn(latency_info)); 118 stub_->SwapBuffersCompleted(latency_info);
119 } 119 }
120 120
121 void ImageTransportHelper::SetScheduled(bool is_scheduled) { 121 void ImageTransportHelper::SetScheduled(bool is_scheduled) {
122 gpu::GpuScheduler* scheduler = Scheduler(); 122 gpu::GpuScheduler* scheduler = Scheduler();
123 if (!scheduler) 123 if (!scheduler)
124 return; 124 return;
125 125
126 scheduler->SetScheduled(is_scheduled); 126 scheduler->SetScheduled(is_scheduled);
127 } 127 }
128 128
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 for (size_t i = 0; i < latency_info_.size(); ++i) { 229 for (size_t i = 0; i < latency_info_.size(); ++i) {
230 latency_info_[i].AddLatencyNumber( 230 latency_info_[i].AddLatencyNumber(
231 ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT, 0, 0); 231 ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT, 0, 0);
232 } 232 }
233 bool result = gfx::GLSurfaceAdapter::SwapBuffers(); 233 bool result = gfx::GLSurfaceAdapter::SwapBuffers();
234 for (size_t i = 0; i < latency_info_.size(); i++) { 234 for (size_t i = 0; i < latency_info_.size(); i++) {
235 latency_info_[i].AddLatencyNumber( 235 latency_info_[i].AddLatencyNumber(
236 ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); 236 ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0);
237 } 237 }
238 238
239 helper_->SendLatencyInfo(latency_info_); 239 helper_->SwapBuffersCompleted(latency_info_);
240 latency_info_.clear(); 240 latency_info_.clear();
241 return result; 241 return result;
242 } 242 }
243 243
244 bool PassThroughImageTransportSurface::PostSubBuffer( 244 bool PassThroughImageTransportSurface::PostSubBuffer(
245 int x, int y, int width, int height) { 245 int x, int y, int width, int height) {
246 SendVSyncUpdateIfAvailable(); 246 SendVSyncUpdateIfAvailable();
247 bool result = gfx::GLSurfaceAdapter::PostSubBuffer(x, y, width, height); 247 bool result = gfx::GLSurfaceAdapter::PostSubBuffer(x, y, width, height);
248 for (size_t i = 0; i < latency_info_.size(); i++) { 248 for (size_t i = 0; i < latency_info_.size(); i++) {
249 latency_info_[i].AddLatencyNumber( 249 latency_info_[i].AddLatencyNumber(
250 ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); 250 ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0);
251 } 251 }
252 252
253 helper_->SendLatencyInfo(latency_info_); 253 helper_->SwapBuffersCompleted(latency_info_);
254 latency_info_.clear(); 254 latency_info_.clear();
255 return result; 255 return result;
256 } 256 }
257 257
258 bool PassThroughImageTransportSurface::OnMakeCurrent(gfx::GLContext* context) { 258 bool PassThroughImageTransportSurface::OnMakeCurrent(gfx::GLContext* context) {
259 if (!did_set_swap_interval_) { 259 if (!did_set_swap_interval_) {
260 ImageTransportHelper::SetSwapInterval(context); 260 ImageTransportHelper::SetSwapInterval(context);
261 did_set_swap_interval_ = true; 261 did_set_swap_interval_ = true;
262 } 262 }
263 return true; 263 return true;
(...skipping 22 matching lines...) Expand all
286 void PassThroughImageTransportSurface::SendVSyncUpdateIfAvailable() { 286 void PassThroughImageTransportSurface::SendVSyncUpdateIfAvailable() {
287 gfx::VSyncProvider* vsync_provider = GetVSyncProvider(); 287 gfx::VSyncProvider* vsync_provider = GetVSyncProvider();
288 if (vsync_provider) { 288 if (vsync_provider) {
289 vsync_provider->GetVSyncParameters( 289 vsync_provider->GetVSyncParameters(
290 base::Bind(&ImageTransportHelper::SendUpdateVSyncParameters, 290 base::Bind(&ImageTransportHelper::SendUpdateVSyncParameters,
291 helper_->AsWeakPtr())); 291 helper_->AsWeakPtr()));
292 } 292 }
293 } 293 }
294 294
295 } // namespace content 295 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698