[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