diff options
author | kangyuan.shu@intel.com <kangyuan.shu@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-19 05:33:13 +0000 |
---|---|---|
committer | kangyuan.shu@intel.com <kangyuan.shu@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-19 05:33:13 +0000 |
commit | 1ff40f831a12d8e150714ab79eefcae7b4932252 (patch) | |
tree | 217e0f5d7bc04a65523730c2bf149705190050d2 | |
parent | 304c9a8023c104b1d88ed8ffe48cc0bac21533b0 (diff) | |
download | chromium_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.cc | 7 |
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 { |