summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-12-16 09:49:09 +1000
committerBen Skeggs <bskeggs@redhat.com>2010-12-16 09:49:09 +1000
commit1fc564fe3494cf0abcc848d0e90bf2232f8fd272 (patch)
tree160615b0097c89b5cede82ecf8e33ce9a402dc8b
parentb6cb21b91f7d0409794a14ddbdd606728d4d49e3 (diff)
downloadxorg-driver-xf86-video-nouveau-1fc564fe3494cf0abcc848d0e90bf2232f8fd272.tar.gz
nv50/xv: use mad in nv12 shader, rather than mul+add
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nv50_accel.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index 0369839..d6c7528 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -352,7 +352,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), 28);
+ BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 24);
OUT_RING (chan, 0x80000008);
OUT_RING (chan, 0x90000408);
OUT_RING (chan, 0x82010400);
@@ -367,20 +367,17 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
OUT_RING (chan, 0x82040404);
OUT_RING (chan, 0xf0400201);
OUT_RING (chan, 0x0000c784);
- OUT_RING (chan, 0xc0840008);
- OUT_RING (chan, 0xb002060c);
- OUT_RING (chan, 0xc0850008);
- OUT_RING (chan, 0xb0020810);
- OUT_RING (chan, 0xc0860008);
- OUT_RING (chan, 0xb0020a14);
- OUT_RING (chan, 0xc0870208);
- OUT_RING (chan, 0xb0020600);
- OUT_RING (chan, 0xc0890208);
- OUT_RING (chan, 0xb0020a08);
- OUT_RING (chan, 0xc0880205);
- OUT_RING (chan, 0x00000780);
- OUT_RING (chan, 0xb0000805);
- OUT_RING (chan, 0x00004781);
+ OUT_RING (chan, 0xe084000c);
+ OUT_RING (chan, 0xe0850010);
+ OUT_RING (chan, 0xe0860015);
+ OUT_RING (chan, 0x00014780);
+ OUT_RING (chan, 0xe0870201);
+ OUT_RING (chan, 0x0000c780);
+ OUT_RING (chan, 0xe0890209);
+ OUT_RING (chan, 0x00014780);
+ OUT_RING (chan, 0xe0880205);
+ OUT_RING (chan, 0x00010781);
+
/* HPOS.xy = ($o0, $o1), HPOS.zw = (0.0, 1.0), then map $o2 - $o5 */
BEGIN_RING(chan, tesla, NV50TCL_VP_RESULT_MAP(0), 2);
OUT_RING (chan, 0x41400100);