From: Kenneth Graunke Date: Fri, 6 Feb 2015 10:06:27 +0000 (-0800) Subject: i965: Override swizzles for integer luminance formats. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8cb18760cccf2c89d94c50ff14b330ec2d5c4a3c;p=mesa.git i965: Override swizzles for integer luminance formats. The hardware's integer luminance formats are completely unusable; currently we fall back to RGBA. This means we need to override the texture swizzle to obtain the XXX1 values expected for luminance formats. Fixes spec/EXT_texture_integer/texwrap formats bordercolor [swizzled] on Broadwell - 100% of border color tests now pass on Broadwell. Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Chris Forbes Cc: mesa-stable@lists.freedesktop.org --- 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 6456a61ed21..5f814029dc4 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -199,6 +199,14 @@ brw_get_texture_swizzle(const struct gl_context *ctx, swizzles[1] = SWIZZLE_ZERO; swizzles[2] = SWIZZLE_ZERO; break; + case GL_LUMINANCE: + if (t->_IsIntegerFormat) { + swizzles[0] = SWIZZLE_X; + swizzles[1] = SWIZZLE_X; + swizzles[2] = SWIZZLE_X; + swizzles[3] = SWIZZLE_ONE; + } + break; case GL_RED: case GL_RG: case GL_RGB: