Index: cc/output/direct_renderer.cc |
diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc |
index 1be41e9216244f7695506283ce4779778e768c79..3d2c2e417a3dc567d9b3a519b77d790d3a87afea 100644 |
--- a/cc/output/direct_renderer.cc |
+++ b/cc/output/direct_renderer.cc |
@@ -239,8 +239,18 @@ void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, |
// If we have any copy requests, we can't remove any quads for overlays, |
// otherwise the framebuffer will be missing the overlay contents. |
if (root_render_pass->copy_requests.empty()) { |
+ bool needs_rendering = !frame.root_damage_rect.IsEmpty(); |
overlay_processor_->ProcessForOverlays( |
resource_provider_, render_passes_in_draw_order, &frame.overlay_list); |
+ |
+ // No need to render in case the damage rect is completely composited using |
+ // overlays. |
+ if (needs_rendering && frame.root_damage_rect.IsEmpty()) { |
piman
2015/10/26 17:53:40
Why the test for needs_rendering here?
Why would w
kalyank
2015/10/27 06:09:33
Ya this wasn't needed, Fixed it. Added checks to m
|
+ BindFramebufferToOutputSurface(&frame); |
+ FinishDrawingFrame(&frame); |
+ render_passes_in_draw_order->clear(); |
+ return; |
+ } |
} |
for (size_t i = 0; i < render_passes_in_draw_order->size(); ++i) { |