[Mesa-dev] [PATCH 1/2] i965: Explicitely handle swizzles for MESA_FORMAT_R_SRGB8

Tapani Pälli tapani.palli at intel.com
Wed Nov 28 06:47:23 UTC 2018


On 11/22/18 8:00 PM, Gert Wollny wrote:
> 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: 5363869d4971780401b21bb75083ef2518c12be
>    965: Force zero swizzles for unused components in GL_RED and GL_RG

As Emil said, 'Fixes' line needs to be fixed before committing. 
Otherwise this LGTM;

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

> Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
> ---
>   src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
> 
> 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 018bae98e8..4daa0e2add 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 ||
> 


More information about the mesa-dev mailing list