mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-04 01:40:30 +01:00
meta: Don't do srgb to linear decode when blitting srgb textures.
Fixes the GL_SRGB8_ALPHA8 -> GL_RGBA8 blits in fbo-srgb-blit.c Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
164108e3db
commit
a513bee2f2
1 changed files with 10 additions and 0 deletions
|
|
@ -1186,6 +1186,7 @@ blitframebuffer_texture(struct gl_context *ctx,
|
|||
const GLint maxLevelSave = texObj->MaxLevel;
|
||||
const GLenum wrapSSave = texObj->Sampler.WrapS;
|
||||
const GLenum wrapTSave = texObj->Sampler.WrapT;
|
||||
const GLenum srgbSave = texObj->Sampler.sRGBDecode;
|
||||
const GLenum target = texObj->Target;
|
||||
|
||||
if (drawAtt->Texture == readAtt->Texture) {
|
||||
|
|
@ -1217,6 +1218,12 @@ blitframebuffer_texture(struct gl_context *ctx,
|
|||
}
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
|
||||
if (ctx->Extensions.EXT_texture_sRGB_decode) {
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT,
|
||||
GL_SKIP_DECODE_EXT);
|
||||
}
|
||||
|
||||
_mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
_mesa_set_enable(ctx, target, GL_TRUE);
|
||||
|
||||
|
|
@ -1278,6 +1285,9 @@ blitframebuffer_texture(struct gl_context *ctx,
|
|||
}
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, wrapSSave);
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, wrapTSave);
|
||||
if (ctx->Extensions.EXT_texture_sRGB_decode) {
|
||||
_mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT, srgbSave);
|
||||
}
|
||||
|
||||
/* Done with color buffer */
|
||||
mask &= ~GL_COLOR_BUFFER_BIT;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue