Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 138818) |
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
@@ -2017,10 +2017,6 @@ |
} |
CHECK_GL_ERROR(); |
- copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); |
- copy_texture_CHROMIUM_->Initialize(); |
- CHECK_GL_ERROR(); |
- |
disallowed_features_ = disallowed_features; |
vertex_attrib_manager_.reset(new VertexAttribManager()); |
@@ -8506,6 +8502,17 @@ |
return; |
} |
+ // Defer initializing the CopyTextureCHROMIUMResourceManager until it is |
+ // needed because it takes 10s of milliseconds to initialize. |
+ if (!copy_texture_CHROMIUM_.get()) { |
+ CopyRealGLErrorsToWrapper(); |
+ copy_texture_CHROMIUM_.reset(new CopyTextureCHROMIUMResourceManager()); |
+ copy_texture_CHROMIUM_->Initialize(); |
+ RestoreCurrentFramebufferBindings(); |
+ if (PeekGLError() != GL_NO_ERROR) |
+ return; |
+ } |
+ |
GLenum dest_type; |
GLenum dest_internal_format; |
bool dest_level_defined = dest_info->GetLevelSize(GL_TEXTURE_2D, level, |