Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index f8d70c4ddb85012371f11a05db47a70bd3375a6f..fb1ee183c2a86feaffa6e4c294cb047b98c25384 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -3864,6 +3864,9 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( |
Resource** resource, |
DrawingFrame* external_frame, |
gfx::RectF* new_bounds) { |
+ // Don't carry over any GL state from previous RenderPass draw operations. |
+ ReinitializeGLState(); |
ericrk
2016/08/24 19:04:50
This makes sense - so the state was just left over
erikchen
2016/08/24 20:04:36
Yup. Unfortunately, GLRenderer is very stateful.
|
+ |
ScopedResource* contents_texture = |
render_pass_textures_[ca_layer_overlay->rpdq->render_pass_id].get(); |
DCHECK(contents_texture); |
@@ -3967,11 +3970,7 @@ void GLRenderer::CopyRenderPassDrawQuadToOverlayResource( |
// Clear to 0 to ensure the background is transparent. |
gl_->ClearColor(0, 0, 0, 0); |
- if (is_scissor_enabled_) |
- gl_->Disable(GL_SCISSOR_TEST); |
gl_->Clear(GL_COLOR_BUFFER_BIT); |
- if (is_scissor_enabled_) |
- gl_->Enable(GL_SCISSOR_TEST); |
UpdateRPDQTexturesForSampling(¶ms); |
UpdateRPDQBlendMode(¶ms); |