summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorsievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 23:53:32 +0000
committersievers@chromium.org <sievers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 23:53:32 +0000
commit81fc9d04622c12919783e52302e6d72054f68ed3 (patch)
tree99c82e80be95d646527f1663abe454b9076c7ec5 /gpu
parent37d6cba6df242a38e1e60b21c84513f4d075003f (diff)
downloadchromium_src-81fc9d04622c12919783e52302e6d72054f68ed3.zip
chromium_src-81fc9d04622c12919783e52302e6d72054f68ed3.tar.gz
chromium_src-81fc9d04622c12919783e52302e6d72054f68ed3.tar.bz2
Android: Extend QualComm scissor bug workaround
This extends the workaround from https://codereview.chromium.org/11734037/ Apparently, the driver also applies an incorrect scissor after we change the texture to FBO binding with glFramebufferTexture2D(). BUG=188600 NOTRY=True Review URL: https://codereview.chromium.org/12566032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188232 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 0d6ba07..5e3bea65d 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3790,6 +3790,7 @@ void GLES2DecoderImpl::RestoreTextureState(unsigned service_id) const {
void GLES2DecoderImpl::OnFboChanged() const {
if (workarounds().restore_scissor_on_fbo_change)
+ // The driver forgets the correct scissor when modifying the FBO binding.
glScissor(state_.scissor_x, state_.scissor_y,
state_.scissor_width, state_.scissor_height);
}
@@ -4810,6 +4811,7 @@ void GLES2DecoderImpl::DoFramebufferRenderbuffer(
if (framebuffer == state_.bound_draw_framebuffer) {
clear_state_dirty_ = true;
}
+ OnFboChanged();
}
void GLES2DecoderImpl::DoDisable(GLenum cap) {
@@ -4968,6 +4970,7 @@ void GLES2DecoderImpl::DoFramebufferTexture2D(
if (framebuffer == state_.bound_draw_framebuffer) {
clear_state_dirty_ = true;
}
+ OnFboChanged();
}
void GLES2DecoderImpl::DoGetFramebufferAttachmentParameteriv(