r300: fix VP source conflict resolution on 64-bit machines
authorMaciej Cencora <m.cencora@gmail.com>
Sun, 22 Nov 2009 14:08:46 +0000 (15:08 +0100)
committerMaciej Cencora <m.cencora@gmail.com>
Sun, 22 Nov 2009 14:08:46 +0000 (15:08 +0100)
On 32bit machines we were lucky because the sizeof(reg) == sizeof(rc_src_register).
On 64bit machines pointers are 8 bytes long, so we were overwriting other data.

src/mesa/drivers/dri/r300/compiler/radeon_program.h

index 33db3ea0ff8330ed82aa8152dc6a55a913c3c8a2..03592884eb20e9533e8907a4947b30addedee5a0 100644 (file)
@@ -191,7 +191,7 @@ struct rc_src_register lmul_swizzle(unsigned int swizzle, struct rc_src_register
 
 static inline void reset_srcreg(struct rc_src_register* reg)
 {
-       memset(reg, 0, sizeof(reg));
+       memset(reg, 0, sizeof(struct rc_src_register));
        reg->Swizzle = RC_SWIZZLE_XYZW;
 }