diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu.h | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/i965/brw_vs_emit.c | 11 | 
2 files changed, 11 insertions, 4 deletions
| diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h index ffdddd0a38..d15a8f9008 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.h +++ b/src/mesa/drivers/dri/i965/brw_eu.h @@ -633,6 +633,8 @@ static INLINE struct brw_reg brw_swizzle( struct brw_reg reg,  					    GLuint z,  					    GLuint w)  { +   assert(reg.file != BRW_IMMEDIATE_VALUE); +     reg.dw1.bits.swizzle = BRW_SWIZZLE4(BRW_GET_SWZ(reg.dw1.bits.swizzle, x),  				       BRW_GET_SWZ(reg.dw1.bits.swizzle, y),  				       BRW_GET_SWZ(reg.dw1.bits.swizzle, z), @@ -650,6 +652,7 @@ static INLINE struct brw_reg brw_swizzle1( struct brw_reg reg,  static INLINE struct brw_reg brw_writemask( struct brw_reg reg,  					      GLuint mask )  { +   assert(reg.file != BRW_IMMEDIATE_VALUE);     reg.dw1.bits.writemask &= mask;     return reg;  } @@ -657,6 +660,7 @@ static INLINE struct brw_reg brw_writemask( struct brw_reg reg,  static INLINE struct brw_reg brw_set_writemask( struct brw_reg reg,  						  GLuint mask )  { +   assert(reg.file != BRW_IMMEDIATE_VALUE);     reg.dw1.bits.writemask = mask;     return reg;  } diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c index 7b946eb0d8..7cbf22f2da 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_emit.c +++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c @@ -1180,10 +1180,12 @@ static struct brw_reg get_arg( struct brw_vs_compile *c,     /* Convert 3-bit swizzle to 2-bit.        */ -   reg.dw1.bits.swizzle = BRW_SWIZZLE4(GET_SWZ(src->Swizzle, 0), -				       GET_SWZ(src->Swizzle, 1), -				       GET_SWZ(src->Swizzle, 2), -				       GET_SWZ(src->Swizzle, 3)); +   if (reg.file != BRW_IMMEDIATE_VALUE) { +      reg.dw1.bits.swizzle = BRW_SWIZZLE4(GET_SWZ(src->Swizzle, 0), +					  GET_SWZ(src->Swizzle, 1), +					  GET_SWZ(src->Swizzle, 2), +					  GET_SWZ(src->Swizzle, 3)); +   }     /* Note this is ok for non-swizzle instructions:       */ @@ -1229,6 +1231,7 @@ static struct brw_reg get_dst( struct brw_vs_compile *c,        reg = brw_null_reg();     } +   assert(reg.type != BRW_IMMEDIATE_VALUE);     reg.dw1.bits.writemask = dst.WriteMask;     return reg; | 
