summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-06-15 15:49:25 +1000
committerBen Skeggs <skeggsb@gmail.com>2008-06-29 15:46:18 +1000
commitfa5cd63f96d2b69ded48d40b9cb7e57c147f7332 (patch)
tree06d2a99a5adb408f77d47764ee65a591aaf2d5fb /src/gallium/drivers/nv50
parentc0ed6a871cd3513e17a1fab960f5626485ffed13 (diff)
nv50: simplify interp crap a bit...
hopefully there wasn't a good reason I went the route I did.. can't recall..
Diffstat (limited to 'src/gallium/drivers/nv50')
-rw-r--r--src/gallium/drivers/nv50/nv50_program.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 5eec68e5e1..5800a347bf 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -1263,7 +1263,7 @@ nv50_program_tx_prep(struct nv50_pc *pc)
NOUVEAU_ERR("%d attrib regs\n", pc->attr_nr);
if (pc->attr_nr) {
- struct nv50_reg *iv = NULL, *tmp = NULL;
+ struct nv50_reg *iv = NULL;
int aid = 0;
pc->attr = calloc(pc->attr_nr * 4, sizeof(struct nv50_reg));
@@ -1272,6 +1272,8 @@ nv50_program_tx_prep(struct nv50_pc *pc)
if (pc->p->type == PIPE_SHADER_FRAGMENT) {
iv = alloc_temp(pc, NULL);
+ emit_interp(pc, iv, iv, iv, FALSE);
+ emit_flop(pc, 0, iv, iv);
aid++;
}
@@ -1297,14 +1299,10 @@ nv50_program_tx_prep(struct nv50_pc *pc)
if (pc->p->type != PIPE_SHADER_FRAGMENT)
continue;
- emit_interp(pc, iv, iv, iv, FALSE);
- tmp = alloc_temp(pc, NULL);
- emit_flop(pc, 0, tmp, iv);
- emit_interp(pc, &a[0], &a[0], tmp, TRUE);
- emit_interp(pc, &a[1], &a[1], tmp, TRUE);
- emit_interp(pc, &a[2], &a[2], tmp, TRUE);
- emit_interp(pc, &a[3], &a[3], tmp, TRUE);
- free_temp(pc, tmp);
+ emit_interp(pc, &a[0], &a[0], iv, TRUE);
+ emit_interp(pc, &a[1], &a[1], iv, TRUE);
+ emit_interp(pc, &a[2], &a[2], iv, TRUE);
+ emit_interp(pc, &a[3], &a[3], iv, TRUE);
}
if (iv)