Mesa (master): i965: Handle swizzles in the addition of YUV texture constants.

Eric Anholt anholt at kemper.freedesktop.org
Fri Oct 8 17:25:39 UTC 2010


Module: Mesa
Branch: master
Commit: 5b24d69fcd6359dc959ec465c7e77b4626a27e72
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b24d69fcd6359dc959ec465c7e77b4626a27e72

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Oct  7 22:37:36 2010 -0700

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.

---

 src/mesa/drivers/dri/i965/brw_wm_fp.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c
index da3d348..af1fda8 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;
 }
 
 




More information about the mesa-commit mailing list