nv50: emit predicate for interp
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Wed, 18 Aug 2010 12:36:47 +0000 (14:36 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Wed, 18 Aug 2010 12:37:10 +0000 (14:37 +0200)
src/gallium/drivers/nv50/nv50_pc_emit.c

index b5f4383aa1a3f840c3c092f9e4a254793d12a221..bc151c3a80845d17a5b23ad8ce90502ded8a65bd 100644 (file)
@@ -596,8 +596,12 @@ emit_interp(struct nv_pc *pc, struct nv_instruction *i)
    if (i->centroid)
       pc->emit[0] |= 1 << 24;
 
+   assert(i->is_long || !i->flags_src);
+
    if (i->is_long) {
-      pc->emit[1] |= 0x0780 |
+      set_pred(pc, i);
+
+      pc->emit[1] |=
              (pc->emit[0] & (3 << 24)) >> (24 - 16) |
              (pc->emit[0] & (1 <<  8)) >> (18 -  8);