summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-12-17 11:04:40 +1000
committerBen Skeggs <bskeggs@redhat.com>2010-12-17 11:04:40 +1000
commiteba7e173a5006ff50b950d0e8b8154564471a9ce (patch)
treec2ebb359e5c783f2e19a5ea3d89f45d8d89c6206
parentb025ceb40a5e94a3657f3c7f76044c49a1a05e8d (diff)
downloadxorg-driver-xf86-video-nouveau-eba7e173a5006ff50b950d0e8b8154564471a9ce.tar.gz
nvc0/xv: use mad in nv12 shader, rather than mul+add
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nvc0_accel.c37
1 files changed, 12 insertions, 25 deletions
diff --git a/src/nvc0_accel.c b/src/nvc0_accel.c
index c782b5d..96f9a10 100644
--- a/src/nvc0_accel.c
+++ b/src/nvc0_accel.c
@@ -617,11 +617,11 @@ NVAccelInit3D_NVC0(ScrnInfoPtr pScrn)
return FALSE;
}
BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_LINE_LENGTH_IN, 2);
- OUT_RING (chan, 25 * 8 + 20 * 4);
+ OUT_RING (chan, 19 * 8 + 20 * 4);
OUT_RING (chan, 1);
BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_EXEC, 1);
OUT_RING (chan, 0x100111);
- BEGIN_RING_NI(chan, NvSubM2MF, NVC0_M2MF_DATA, 25 * 2 + 20);
+ BEGIN_RING_NI(chan, NvSubM2MF, NVC0_M2MF_DATA, 19 * 2 + 20);
OUT_RING (chan, 0x00021462);
OUT_RING (chan, 0x00000000);
OUT_RING (chan, 0x00000000);
@@ -642,7 +642,6 @@ NVAccelInit3D_NVC0(ScrnInfoPtr pScrn)
OUT_RING (chan, 0x00000000);
OUT_RING (chan, 0x0000000f);
OUT_RING (chan, 0x00000000);
-
OUT_RING (chan, 0xfff09c00);
OUT_RING (chan, 0xc07e007c);
OUT_RING (chan, 0x10209c00);
@@ -667,30 +666,18 @@ NVAccelInit3D_NVC0(ScrnInfoPtr pScrn)
OUT_RING (chan, 0xc07e0094);
OUT_RING (chan, 0xfc001e86);
OUT_RING (chan, 0x80130001);
- OUT_RING (chan, 0x40009c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x0830dc20);
- OUT_RING (chan, 0x50000000);
- OUT_RING (chan, 0x50009c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x08411c20);
- OUT_RING (chan, 0x50000000);
- OUT_RING (chan, 0x60009c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x08515c20);
- OUT_RING (chan, 0x50000000);
- OUT_RING (chan, 0x70109c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x08301c20);
- OUT_RING (chan, 0x50000000);
+ OUT_RING (chan, 0x4000dc40);
+ OUT_RING (chan, 0x30064000);
+ OUT_RING (chan, 0x50011c40);
+ OUT_RING (chan, 0x30084000);
+ OUT_RING (chan, 0x60015c40);
+ OUT_RING (chan, 0x300a4000);
+ OUT_RING (chan, 0x70101c40);
+ OUT_RING (chan, 0x30064000);
OUT_RING (chan, 0x90109c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x08509c20);
- OUT_RING (chan, 0x50000000);
+ OUT_RING (chan, 0x300a4000);
OUT_RING (chan, 0x80105c40);
- OUT_RING (chan, 0x58004000);
- OUT_RING (chan, 0x04405c20);
- OUT_RING (chan, 0x50000000);
+ OUT_RING (chan, 0x30084000);
OUT_RING (chan, 0x00001de7);
OUT_RING (chan, 0x80000000);