Chromium Code Reviews| Index: cc/output/gl_renderer.cc |
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
| index 10014f8b89d9ab4d1fb9805210e8ac5176652a2a..f34eb18f6644fed9f988c7139294e1588d856805 100644 |
| --- a/cc/output/gl_renderer.cc |
| +++ b/cc/output/gl_renderer.cc |
| @@ -168,6 +168,7 @@ GLRenderer::GLRenderer(RendererClient* client, |
| is_backbuffer_discarded_(false), |
| visible_(true), |
| is_scissor_enabled_(false), |
| + scissor_rect_needs_reset_(true), |
| stencil_shadow_(false), |
| blend_shadow_(false), |
| highp_threshold_min_(highp_threshold_min), |
| @@ -2486,7 +2487,7 @@ void GLRenderer::SetScissorTestRect(gfx::Rect scissor_rect) { |
| // Don't unnecessarily ask the context to change the scissor, because it |
| // may cause undesired GPU pipeline flushes. |
| - if (scissor_rect == scissor_rect_) |
| + if (scissor_rect == scissor_rect_ && !scissor_rect_needs_reset_) |
|
reveman
2013/11/24 21:56:57
can you explain why we need this now but not befor
slavi
2013/11/25 23:13:14
Ganesh and the GlRendeder are sharing the GL state
enne (OOO)
2013/11/25 23:14:10
Yeah, this looks like it should be a separate patc
slavi
2013/11/25 23:22:52
Ok. I'll prepare it as a separate patch.
|
| return; |
| scissor_rect_ = scissor_rect; |
| @@ -2496,6 +2497,8 @@ void GLRenderer::SetScissorTestRect(gfx::Rect scissor_rect) { |
| scissor_rect.y(), |
| scissor_rect.width(), |
| scissor_rect.height())); |
| + |
| + scissor_rect_needs_reset_ = false; |
| } |
| void GLRenderer::SetDrawViewport(gfx::Rect window_space_viewport) { |
| @@ -2946,6 +2949,7 @@ void GLRenderer::ReinitializeGLState() { |
| // Make sure scissoring starts as disabled. |
| is_scissor_enabled_ = false; |
| GLC(context_, context_->disable(GL_SCISSOR_TEST)); |
| + scissor_rect_needs_reset_ = true; |
| } |
| bool GLRenderer::CanUseSkiaGPUBackend() const { |