[Nouveau] [PATCH] nv50/accel: Fix mangled A8+A8 shader.
Marcin Kościelnicki
koriakin at 0x04.net
Fri Feb 5 09:01:09 PST 2010
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.
---
src/nv50_accel.c | 5 +++--
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);
--
1.6.4.1
More information about the Nouveau
mailing list