Index: content/browser/compositor/gpu_browser_compositor_output_surface.cc |
diff --git a/content/browser/compositor/gpu_browser_compositor_output_surface.cc b/content/browser/compositor/gpu_browser_compositor_output_surface.cc |
index 4cdfbb78650dd035d8ff2b8659dc75090cd89159..894a70a08641095f378e5a6d09f4cae8f10a964b 100644 |
--- a/content/browser/compositor/gpu_browser_compositor_output_surface.cc |
+++ b/content/browser/compositor/gpu_browser_compositor_output_surface.cc |
@@ -65,6 +65,7 @@ void GpuBrowserCompositorOutputSurface::OnReflectorChanged() { |
reflector_texture_.reset(new ReflectorTexture(context_provider())); |
reflector_->OnSourceTextureMailboxUpdated(reflector_texture_->mailbox()); |
} |
+ reflector_texture_defined_ = false; |
} |
void GpuBrowserCompositorOutputSurface::BindToClient( |
@@ -108,12 +109,13 @@ void GpuBrowserCompositorOutputSurface::SwapBuffers( |
gfx::Size surface_size = frame.size; |
if (reflector_) { |
- if (frame.sub_buffer_rect) { |
+ if (frame.sub_buffer_rect && reflector_texture_defined_) { |
reflector_texture_->CopyTextureSubImage(*frame.sub_buffer_rect); |
reflector_->OnSourcePostSubBuffer(*frame.sub_buffer_rect, surface_size); |
} else { |
reflector_texture_->CopyTextureFullImage(surface_size); |
reflector_->OnSourceSwapBuffers(surface_size); |
+ reflector_texture_defined_ = true; |
} |
} |