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..e6c00a32d3e064e26afca83fa796a3e893885e16 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -6149,15 +6149,11 @@ 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; |
} |
@@ -6167,6 +6163,8 @@ void GLES2DecoderImpl::DoGenerateMipmap(GLenum target) { |
// this change can not generate correct mipmap. |
glGenerateMipmapEXT(target); |
} |
+ } else { |
+ glGenerateMipmapEXT(target); |
} |
if (texture_zero_level_set) { |