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: c5363869d4
i965: Force zero swizzles for unused components in GL_RED and GL_RG
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
@@ -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 ||
|
||||
|
||||
Reference in New Issue
Block a user