Index: cc/output/direct_renderer.cc |
diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc |
index 3dba198b5be97829c1b6eec8c9ef1a5f55d25822..57ee33ac8679da91ffa83afbc2850c0180ef8700 100644 |
--- a/cc/output/direct_renderer.cc |
+++ b/cc/output/direct_renderer.cc |
@@ -628,6 +628,14 @@ bool DirectRenderer::UseRenderPass(const RenderPass* render_pass) { |
} |
DCHECK(texture->id()); |
+ if (render_pass->cache_render_pass && |
+ !render_pass->has_damage_from_contributing_content) { |
+ return false; |
+ } |
+ |
+ if (current_frame()->ComputeScissorRectForRenderPass().IsEmpty()) |
+ return false; |
+ |
if (BindFramebufferToTexture(texture)) { |
InitializeViewport(current_frame(), render_pass->output_rect, |
gfx::Rect(render_pass->output_rect.size()), |