Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index ea2d2b57288068b45ca5e6e6ba6618611355be53..10014f8b89d9ab4d1fb9805210e8ac5176652a2a 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -616,9 +616,13 @@ scoped_ptr<ScopedResource> GLRenderer::DrawBackgroundFilters( |
scoped_ptr<ScopedResource> device_background_texture = |
ScopedResource::create(resource_provider_); |
- if (!device_background_texture->Allocate(window_rect.size(), |
- ResourceProvider::TextureUsageAny, |
- RGBA_8888)) { |
+ // The TextureUsageFramebuffer hint makes ResourceProvider avoid immutable |
+ // storage allocation (texStorage2DEXT) for this texture. copyTexImage2D fails |
+ // when called on a texture having immutable storage. |
+ if (!device_background_texture->Allocate( |
+ window_rect.size(), |
+ ResourceProvider::TextureUsageFramebuffer, |
+ RGBA_8888)) { |
return scoped_ptr<ScopedResource>(); |
} else { |
ResourceProvider::ScopedWriteLockGL lock(resource_provider_, |