On Wed, Aug 24, 2016 at 10:04:58PM -0700, Kenneth Graunke wrote: > On Friday, August 12, 2016 3:59:35 PM PDT Kenneth Graunke wrote: > > When generating mipmaps for sRGB textures, force both decode and encode, > > so the filtering is done in linear colorspace, regardless of settings. > > > > Fixes a WebGL conformance test in Chrome: > > https://www.khronos.org/registry/webgl/sdk/tests/conformance2/textures/misc/tex-srgb-mipmap.html?webglVersion=2 > > > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > > --- > > src/mesa/drivers/common/meta_generate_mipmap.c | 12 ++++++++++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/src/mesa/drivers/common/meta_generate_mipmap.c > > b/src/mesa/drivers/common/meta_generate_mipmap.c > > index 9cebbf7..bbe9d6d 100644 > > --- a/src/mesa/drivers/common/meta_generate_mipmap.c > > +++ b/src/mesa/drivers/common/meta_generate_mipmap.c > > @@ -221,9 +221,17 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, > > GLenum target, > > GL_LINEAR); > > _mesa_set_sampler_wrap(ctx, mipmap->samp_obj, GL_CLAMP_TO_EDGE, > > GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE); > > + } > > + > > + if (ctx->Extensions.EXT_texture_sRGB_decode) { > > + const struct gl_texture_image *baseImage = > > + _mesa_select_tex_image(texObj, target, texObj->BaseLevel); > > + const bool srgb = > > + _mesa_get_format_color_encoding(baseImage->TexFormat) == GL_SRGB; > > > > - /* We don't want to encode or decode sRGB values; treat them as > > linear. */ > > - _mesa_set_sampler_srgb_decode(ctx, mipmap->samp_obj, > > GL_SKIP_DECODE_EXT); > > + _mesa_set_sampler_srgb_decode(ctx, mipmap->samp_obj, > > + srgb ? GL_DECODE_EXT : > > GL_SKIP_DECODE_EXT); > > + _mesa_set_framebuffer_srgb(ctx, srgb); > > } > > > > _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, mipmap->samp_obj); > > > > Still could use review on this. Thanks!
Seems sane to me: Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev