diff options
author | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2009-09-03 12:54:41 +0200 |
---|---|---|
committer | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2009-09-03 12:54:41 +0200 |
commit | 8b1ef3fa357f5bbd6d3f73714a86ce380b867a71 (patch) | |
tree | 9df9a0b4204a514eb31357daf27dd6820875dd4b | |
parent | ffee352726750849b1e1efd00c52ddae813805f3 (diff) |
nv50: move centroid, flat bits when making interp long
Before this, just the perspective divide bit was moved in
convert_to_long of the load interpolant instruction.
-rw-r--r-- | src/gallium/drivers/nv50/nv50_program.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 1cb1ce74bd..4a838529de 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -1106,10 +1106,10 @@ convert_to_long(struct nv50_pc *pc, struct nv50_program_exec *e) m = 0xffff7fff; break; case 0x8: - /* INTERP */ - m = ~0x02000000; - if (e->inst[0] & 0x02000000) - q = 0x00020000; + /* INTERP (move centroid, perspective and flat bits) */ + m = ~0x03000100; + q = (e->inst[0] & (3 << 24)) >> (24 - 16); + q |= (e->inst[0] & (1 << 8)) << (18 - 8); break; case 0x9: /* RCP */ |