| Index: gpu/command_buffer/service/gles2_cmd_srgb_converter.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_srgb_converter.cc b/gpu/command_buffer/service/gles2_cmd_srgb_converter.cc
|
| index 8300d6190f3f9068868984d02274fd5b37f95b21..1f85360f6777f2a4d9382d30df4b21b239cc4b0b 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_srgb_converter.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_srgb_converter.cc
|
| @@ -360,10 +360,15 @@ void SRGBConverter::GenerateMipmap(const gles2::GLES2Decoder* decoder,
|
| const GLint mipmap_levels =
|
| TextureManager::ComputeMipMapCount(target, width, height, depth);
|
|
|
| - // bind srgb_decoder_textures_[1] to draw framebuffer
|
| glBindTexture(GL_TEXTURE_2D, srgb_converter_textures_[1]);
|
| - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
|
| - GL_UNSIGNED_BYTE, nullptr);
|
| + if (feature_info_->ext_color_buffer_float_available() &&
|
| + feature_info_->oes_texture_float_linear_available()) {
|
| + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, height, 0, GL_RGBA,
|
| + GL_UNSIGNED_BYTE, nullptr);
|
| + } else {
|
| + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA,
|
| + GL_UNSIGNED_BYTE, nullptr);
|
| + }
|
| glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER, srgb_decoder_fbo_);
|
| glFramebufferTexture2DEXT(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
|
| GL_TEXTURE_2D, srgb_converter_textures_[1], 0);
|
| @@ -387,7 +392,6 @@ void SRGBConverter::GenerateMipmap(const gles2::GLES2Decoder* decoder,
|
|
|
| glDrawArrays(GL_TRIANGLES, 0, 6);
|
|
|
| - // generateMipmap for srgb_decoder_textures_[1]
|
| glBindTexture(GL_TEXTURE_2D, srgb_converter_textures_[1]);
|
| glGenerateMipmapEXT(GL_TEXTURE_2D);
|
|
|
|
|