Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index 986dbba7e3603d696fabe1ac235414e38671b435..b4b28b74b761aa1e878d14d385dd4d21301ac6a5 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -6149,24 +6149,23 @@ void GLES2DecoderImpl::DoGenerateMipmap(GLenum target) { |
enable_srgb = |
GetColorEncodingFromInternalFormat(internal_format) == GL_SRGB; |
} |
- if (!enable_srgb || !feature_info_->feature_flags().desktop_srgb_support || |
- !workarounds().decode_encode_srgb_for_generatemipmap) { |
- if (feature_info_->feature_flags().desktop_srgb_support) { |
- state_.EnableDisableFramebufferSRGB(enable_srgb); |
- } |
- glGenerateMipmapEXT(target); |
- } else { |
+ if (enable_srgb && feature_info_->feature_flags().desktop_srgb_support) { |
+ state_.EnableDisableFramebufferSRGB(enable_srgb); |
+ } |
+ if (enable_srgb && workarounds().decode_encode_srgb_for_generatemipmap) { |
if (target == GL_TEXTURE_2D) { |
- state_.EnableDisableFramebufferSRGB(true); |
if (!InitializeSRGBConverter("generateMipmap")) { |
return; |
} |
srgb_converter_->GenerateMipmap(this, tex, target); |
} else { |
- // TODO(yizhou): If the target is GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY, |
+ // TODO(yizhou): If the target is GL_TEXTURE_3D ,GL_TEXTURE_2D_ARRAY, |
+ // GL_TEXTURE_CUBE_MAP, |
// this change can not generate correct mipmap. |
glGenerateMipmapEXT(target); |
} |
+ } else { |
+ glGenerateMipmapEXT(target); |
} |
if (texture_zero_level_set) { |