From: Eric Anholt Date: Fri, 8 Oct 2010 05:37:36 +0000 (-0700) Subject: i965: Handle swizzles in the addition of YUV texture constants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5b24d69fcd6359dc959ec465c7e77b4626a27e72;p=mesa.git i965: Handle swizzles in the addition of YUV texture constants. If someone happened to land a set in a different swizzle order, we would have assertion failed. --- diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c index da3d3486cea..af1fda86513 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_fp.c +++ b/src/mesa/drivers/dri/i965/brw_wm_fp.c @@ -549,6 +549,7 @@ static struct prog_src_register search_or_add_const4f( struct brw_wm_compile *c, GLfloat values[4]; GLuint idx; GLuint swizzle; + struct prog_src_register reg; values[0] = s0; values[1] = s1; @@ -556,8 +557,10 @@ static struct prog_src_register search_or_add_const4f( struct brw_wm_compile *c, values[3] = s3; idx = _mesa_add_unnamed_constant( paramList, values, 4, &swizzle ); - assert(swizzle == SWIZZLE_NOOP); /* Need to handle swizzle in reg setup */ - return src_reg(PROGRAM_STATE_VAR, idx); + reg = src_reg(PROGRAM_STATE_VAR, idx); + reg.Swizzle = swizzle; + + return reg; }