From: Gert Wollny Date: Thu, 22 Nov 2018 18:00:02 +0000 (+0100) Subject: i965: Explicitely handle swizzles for MESA_FORMAT_R_SRGB8 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d8bb88d0b4d6d58c854ded1d5a6d2bc5e615902e;p=mesa.git i965: Explicitely handle swizzles for MESA_FORMAT_R_SRGB8 The format is emulated by using ISL_FORMAT_L8_SRGB, therefore we need to force swizzles for the GBA channels. However, doing this only based on the data type GL_RED breaks other formats, therefore, test specifically for the format. Fixes: c5363869d4971780401b21bb75083ef2518c12be i965: Force zero swizzles for unused components in GL_RED and GL_RG Signed-off-by: Gert Wollny Reviewed-by: Tapani Pälli --- diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 018bae98e88..4daa0e2add1 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -420,11 +420,15 @@ brw_get_texture_swizzle(const struct gl_context *ctx, } break; case GL_RED: - swizzles[1] = SWIZZLE_ZERO; + if (img->TexFormat == MESA_FORMAT_R_SRGB8) { + swizzles[0] = SWIZZLE_X; + swizzles[1] = SWIZZLE_ZERO; + swizzles[2] = SWIZZLE_ZERO; + swizzles[3] = SWIZZLE_ONE; + break; + } /* fallthrough */ case GL_RG: - swizzles[2] = SWIZZLE_ZERO; - /* fallthrough */ case GL_RGB: if (_mesa_get_format_bits(img->TexFormat, GL_ALPHA_BITS) > 0 || img->TexFormat == MESA_FORMAT_RGB_DXT1 ||