| 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_,
|
|
|