nv40: Fix bug in vtxprog + a few tweaks
authorBen Skeggs <skeggsb@gmail.com>
Wed, 12 Dec 2007 12:37:52 +0000 (23:37 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Wed, 12 Dec 2007 12:37:52 +0000 (23:37 +1100)
src/mesa/pipe/nv40/nv40_vertprog.c

index 66722bafa582c22b176f21a11a5bec3d941d6842..b6ebaee2f2a3bff7d0163c77ab7760b291782a3a 100644 (file)
@@ -184,7 +184,7 @@ emit_dst(struct nv40_vpc *vpc, uint32_t *hw, int slot, struct nv40_sreg dst)
                hw[3] |= (dst.index << NV40_VP_INST_DEST_SHIFT);
                if (slot == 0) {
                        hw[0] |= NV40_VP_INST_VEC_RESULT;
-                       hw[0] |= NV40_VP_INST_VEC_DEST_TEMP_MASK;
+                       hw[0] |= NV40_VP_INST_VEC_DEST_TEMP_MASK | (1<<20);
                } else {
                        hw[3] |= NV40_VP_INST_SCA_RESULT;
                        hw[3] |= NV40_VP_INST_SCA_DEST_TEMP_MASK;
@@ -212,12 +212,11 @@ nv40_vp_arith(struct nv40_vpc *vpc, int slot, int op,
 
        if (slot == 0) {
                hw[1] |= (op << NV40_VP_INST_VEC_OPCODE_SHIFT);
-               hw[3] |= (NV40_VP_INST_SCA_RESULT |
-                         NV40_VP_INST_SCA_DEST_TEMP_MASK);
+               hw[3] |= NV40_VP_INST_SCA_DEST_TEMP_MASK;
                hw[3] |= (mask << NV40_VP_INST_VEC_WRITEMASK_SHIFT);
        } else {
                hw[1] |= (op << NV40_VP_INST_SCA_OPCODE_SHIFT);
-               hw[1] |= (NV40_VP_INST_VEC_DEST_TEMP_MASK | (1 << 20));
+               hw[0] |= (NV40_VP_INST_VEC_DEST_TEMP_MASK | (1 << 20));
                hw[3] |= (mask << NV40_VP_INST_SCA_WRITEMASK_SHIFT);
        }