summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv50
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2010-08-18 14:36:47 +0200
committerChristoph Bumiller <[email protected]>2010-08-18 14:37:10 +0200
commiteaab76457818fad0926b84c663440e8987e1f19f (patch)
tree882a5cee5f7953e3ae790bf6b920c47b97077ca7 /src/gallium/drivers/nv50
parent1bbbc8e0c8230d33cb1eae89cc47b5296edefc10 (diff)
nv50: emit predicate for interp
Diffstat (limited to 'src/gallium/drivers/nv50')
-rw-r--r--src/gallium/drivers/nv50/nv50_pc_emit.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc_emit.c b/src/gallium/drivers/nv50/nv50_pc_emit.c
index b5f4383aa1a..bc151c3a808 100644
--- a/src/gallium/drivers/nv50/nv50_pc_emit.c
+++ b/src/gallium/drivers/nv50/nv50_pc_emit.c
@@ -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);