| Index: cc/output/output_surface.cc
|
| diff --git a/cc/output/output_surface.cc b/cc/output/output_surface.cc
|
| index 2b6b7829999ef01c60648b6de7ed9acb4dce1fe7..7cfede3ee26c7a6066546a10fc6338f6d4093479 100644
|
| --- a/cc/output/output_surface.cc
|
| +++ b/cc/output/output_surface.cc
|
| @@ -177,9 +177,6 @@ void OutputSurface::SetUpContext3d() {
|
| context_provider_->SetLostContextCallback(
|
| base::Bind(&OutputSurface::DidLoseOutputSurface,
|
| base::Unretained(this)));
|
| - context_provider_->ContextSupport()->SetSwapBuffersCompleteCallback(
|
| - base::Bind(&OutputSurface::OnSwapBuffersComplete,
|
| - base::Unretained(this)));
|
| context_provider_->SetMemoryPolicyChangedCallback(
|
| base::Bind(&OutputSurface::SetMemoryPolicy,
|
| base::Unretained(this)));
|
| @@ -207,8 +204,6 @@ void OutputSurface::ResetContext3d() {
|
| ContextProvider::LostContextCallback());
|
| context_provider_->SetMemoryPolicyChangedCallback(
|
| ContextProvider::MemoryPolicyChangedCallback());
|
| - if (gpu::ContextSupport* support = context_provider_->ContextSupport())
|
| - support->SetSwapBuffersCompleteCallback(base::Closure());
|
| }
|
| context_provider_ = NULL;
|
| }
|
| @@ -261,11 +256,18 @@ void OutputSurface::SwapBuffers(CompositorFrame* frame) {
|
| UpdateAndMeasureGpuLatency();
|
| if (frame->gl_frame_data->sub_buffer_rect ==
|
| gfx::Rect(frame->gl_frame_data->size)) {
|
| - context_provider_->ContextSupport()->Swap();
|
| + context_provider_->ContextGL()->SwapBuffers();
|
| } else {
|
| - context_provider_->ContextSupport()->PartialSwapBuffers(
|
| - frame->gl_frame_data->sub_buffer_rect);
|
| + const gfx::Rect& rect = frame->gl_frame_data->sub_buffer_rect;
|
| + context_provider_->ContextGL()->PostSubBufferCHROMIUM(
|
| + rect.x(), rect.y(), rect.width(), rect.height());
|
| }
|
| + uint32_t sync_point =
|
| + context_provider_->ContextGL()->InsertSyncPointCHROMIUM();
|
| + context_provider_->ContextSupport()->SignalSyncPoint(
|
| + sync_point,
|
| + base::Bind(&OutputSurface::OnSwapBuffersComplete,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
|
|
| client_->DidSwapBuffers();
|
| }
|
|
|