summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkangyuan.shu@intel.com <kangyuan.shu@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-19 05:33:13 +0000
committerkangyuan.shu@intel.com <kangyuan.shu@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-19 05:33:13 +0000
commit1ff40f831a12d8e150714ab79eefcae7b4932252 (patch)
tree217e0f5d7bc04a65523730c2bf149705190050d2
parent304c9a8023c104b1d88ed8ffe48cc0bac21533b0 (diff)
downloadchromium_src-1ff40f831a12d8e150714ab79eefcae7b4932252.zip
chromium_src-1ff40f831a12d8e150714ab79eefcae7b4932252.tar.gz
chromium_src-1ff40f831a12d8e150714ab79eefcae7b4932252.tar.bz2
gpu: Restore render target before other GL states when in Virtual GL Context
Restore render target first becasue some GL states is render target relavent, such as scssior box. This fix the rendering bug on http://ie.microsoft.com/testdrive/mobile/Performance/Galactic/Default.html. BUG=168980 Review URL: https://chromiumcodereview.appspot.com/12300003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183167 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 0f34765..c04d1e4 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3603,14 +3603,17 @@ GLuint GLES2DecoderImpl::GetBackbufferServiceId() const {
}
void GLES2DecoderImpl::RestoreState() const {
- state_.RestoreState();
-
// TODO: Restore multisample bindings
GLuint service_id = state_.bound_draw_framebuffer ?
state_.bound_draw_framebuffer->service_id() :
GetBackbufferServiceId();
glBindFramebufferEXT(GL_FRAMEBUFFER, service_id);
OnFboChanged();
+
+ // Restore gl states after bind framebuffer, to ensure the gl states
+ // applied to right FBO
+ // gman: There is no framebuffer state so this is a bug in the driver
+ state_.RestoreState();
}
void GLES2DecoderImpl::OnFboChanged() const {