summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Koƛcielnicki <koriakin@0x04.net>2010-02-05 18:09:55 +0100
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-02-05 18:09:55 +0100
commite75dd23bd28f636b4c1759633d8dbc775e799add (patch)
tree3b7846997b36372c4b869bac8c2d4afbe4eacc4f
parent41fc1fdec47fa824c598e1f3d828f4c8c4a2cb71 (diff)
nv50/accel: Fix mangled A8+A8 shader.
Turns out we used a misaligned long instruction near the end, and the shader was getting killed after writing R, A components. This has gone unnoticed since the remaining G, B outputs aren't actually used.
-rw-r--r--src/nv50_accel.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index 5fa539c..1218e18 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -291,7 +291,7 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
OUT_RING (chan, (0 << NV50TCL_CB_DEF_SET_BUFFER_SHIFT) | 0x4000);
BEGIN_RING(chan, tesla, NV50TCL_CB_ADDR, 1);
OUT_RING (chan, 0);
- BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 15);
+ BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 16);
OUT_RING (chan, 0x80000000);
OUT_RING (chan, 0x90000004);
OUT_RING (chan, 0x82030208);
@@ -302,7 +302,8 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
OUT_RING (chan, 0x00008784);
OUT_RING (chan, 0xf0400209);
OUT_RING (chan, 0x00008784);
- OUT_RING (chan, 0xc002000c);
+ OUT_RING (chan, 0xc002000d);
+ OUT_RING (chan, 0x00000780);
OUT_RING (chan, 0x10008600);
OUT_RING (chan, 0x10008604);
OUT_RING (chan, 0x10000609);