Index: content/renderer/android/synchronous_compositor_output_surface.cc |
diff --git a/content/renderer/android/synchronous_compositor_output_surface.cc b/content/renderer/android/synchronous_compositor_output_surface.cc |
index cb41202d297b3d3d620b1d1745c280167cda0c5c..71de6b5af4425d0d1f1e8c3e538bdb12093efed9 100644 |
--- a/content/renderer/android/synchronous_compositor_output_surface.cc |
+++ b/content/renderer/android/synchronous_compositor_output_surface.cc |
@@ -62,6 +62,7 @@ SynchronousCompositorOutputSurface::SynchronousCompositorOutputSurface( |
const scoped_refptr<cc::ContextProvider>& context_provider, |
const scoped_refptr<cc::ContextProvider>& worker_context_provider, |
int routing_id, |
+ uint32_t output_surface_id, |
SynchronousCompositorRegistry* registry, |
scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue) |
: cc::OutputSurface( |
@@ -69,6 +70,7 @@ SynchronousCompositorOutputSurface::SynchronousCompositorOutputSurface( |
worker_context_provider, |
scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareDevice(this))), |
routing_id_(routing_id), |
+ output_surface_id_(output_surface_id), |
registry_(registry), |
registered_(false), |
sync_client_(nullptr), |
@@ -127,7 +129,7 @@ void SynchronousCompositorOutputSurface::SwapBuffers( |
cc::CompositorFrame* frame) { |
DCHECK(CalledOnValidThread()); |
DCHECK(sync_client_); |
- sync_client_->SwapBuffers(frame); |
+ sync_client_->SwapBuffers(output_surface_id_, frame); |
client_->DidSwapBuffers(); |
did_swap_ = true; |
} |
@@ -191,8 +193,10 @@ void SynchronousCompositorOutputSurface::InvokeComposite( |
} |
void SynchronousCompositorOutputSurface::ReturnResources( |
+ uint32_t output_surface_id, |
const cc::CompositorFrameAck& frame_ack) { |
- ReclaimResources(&frame_ack); |
+ if (output_surface_id_ == output_surface_id) |
+ ReclaimResources(&frame_ack); |
} |
void SynchronousCompositorOutputSurface::SetMemoryPolicy(size_t bytes_limit) { |