From 8cb18760cccf2c89d94c50ff14b330ec2d5c4a3c Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 6 Feb 2015 02:06:27 -0800 Subject: [PATCH] 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 --- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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 6456a61..5f81402 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: -- 2.7.4