Index: content/common/gpu/image_transport_surface_fbo_mac.mm |
diff --git a/content/common/gpu/image_transport_surface_fbo_mac.mm b/content/common/gpu/image_transport_surface_fbo_mac.mm |
index fc7e5ec4bf370933a39cd3ebca0a647539d8b82e..aab15aebbfda88b650e13866221a1936de6eb4aa 100644 |
--- a/content/common/gpu/image_transport_surface_fbo_mac.mm |
+++ b/content/common/gpu/image_transport_surface_fbo_mac.mm |
@@ -101,6 +101,8 @@ bool ImageTransportSurfaceFBO::SetBackbufferAllocation(bool allocation) { |
return true; |
backbuffer_suggested_allocation_ = allocation; |
AdjustBufferAllocation(); |
+ if (!allocation) |
+ storage_provider_->DiscardBackbuffer(); |
return true; |
} |
@@ -130,17 +132,15 @@ bool ImageTransportSurfaceFBO::SwapBuffers() { |
return true; |
glFlush(); |
+ DCHECK(!is_swap_buffers_pending_); |
+ is_swap_buffers_pending_ = true; |
+ |
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
- params.surface_handle = storage_provider_->GetSurfaceHandle(); |
+ params.surface_handle = storage_provider_->SwapBuffersAndGetSurfaceHandle(); |
params.size = GetSize(); |
params.scale_factor = scale_factor_; |
params.latency_info.swap(latency_info_); |
helper_->SendAcceleratedSurfaceBuffersSwapped(params); |
- |
- DCHECK(!is_swap_buffers_pending_); |
- is_swap_buffers_pending_ = true; |
- |
- storage_provider_->WillSwapBuffers(); |
return true; |
} |