| Index: gpu/command_buffer/service/texture_definition.cc
|
| diff --git a/gpu/command_buffer/service/texture_definition.cc b/gpu/command_buffer/service/texture_definition.cc
|
| index 7b38f86f3000ea82e1f31be294a84ac4f8bc9109..0c50a2217621bdd39ce5c48e8dbf249234688615 100644
|
| --- a/gpu/command_buffer/service/texture_definition.cc
|
| +++ b/gpu/command_buffer/service/texture_definition.cc
|
| @@ -405,8 +405,14 @@ void TextureDefinition::UpdateTextureInternal(Texture* texture) const {
|
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter_);
|
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap_s_);
|
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap_t_);
|
| - if (image_buffer_.get())
|
| - image_buffer_->BindToTexture(target_);
|
| +
|
| + if (image_buffer_.get()) {
|
| + gfx::GLImage* existing_image = texture->GetLevelImage(target_, 0);
|
| + // Don't need to re-bind if already bound before.
|
| + if (!existing_image || !image_buffer_->IsClient(existing_image)) {
|
| + image_buffer_->BindToTexture(target_);
|
| + }
|
| + }
|
|
|
| if (defined_) {
|
| texture->face_infos_.resize(1);
|
|
|