diff -uNr xf86-video-nouveau-original/src/nv50_accel.c xf86-video-nouveau/src/nv50_accel.c --- xf86-video-nouveau-original/src/nv50_accel.c 2012-07-27 23:30:52.715704369 -0500 +++ xf86-video-nouveau/src/nv50_accel.c 2012-07-28 02:06:44.173305161 -0500 @@ -241,67 +241,19 @@ BEGIN_NV04(push, NV50_3D(TEX_LIMITS(2)), 1); PUSH_DATA (push, 0x54); - PUSH_DATAu(push, pNv->scratch, PVP_OFFSET, 30 * 2); + PUSH_DATAu(push, pNv->scratch, PVP_OFFSET, 3 * 2 * 2); PUSH_DATA (push, 0x10000001); PUSH_DATA (push, 0x0423c788); PUSH_DATA (push, 0x10000205); PUSH_DATA (push, 0x0423c788); - PUSH_DATA (push, 0xc0800401); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xc0830405); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xc0860409); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xe0810601); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xe0840605); - PUSH_DATA (push, 0x00204780); - PUSH_DATA (push, 0xe0870609); - PUSH_DATA (push, 0x00208780); - PUSH_DATA (push, 0xb1000001); - PUSH_DATA (push, 0x00008780); - PUSH_DATA (push, 0xb1000205); - PUSH_DATA (push, 0x00014780); - PUSH_DATA (push, 0xb1000409); - PUSH_DATA (push, 0x00020780); - PUSH_DATA (push, 0x90000409); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0020001); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0020205); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0890009); - PUSH_DATA (push, 0x00000788); - PUSH_DATA (push, 0xc08a020d); - PUSH_DATA (push, 0x00000788); - PUSH_DATA (push, 0xc08b0801); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xc08e0805); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xc0910809); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xe08c0a01); - PUSH_DATA (push, 0x00200780); - PUSH_DATA (push, 0xe08f0a05); - PUSH_DATA (push, 0x00204780); - PUSH_DATA (push, 0xe0920a09); - PUSH_DATA (push, 0x00208780); - PUSH_DATA (push, 0xb1000001); - PUSH_DATA (push, 0x00034780); - PUSH_DATA (push, 0xb1000205); - PUSH_DATA (push, 0x00040780); - PUSH_DATA (push, 0xb1000409); - PUSH_DATA (push, 0x0004c780); - PUSH_DATA (push, 0x90000409); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0020001); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0020205); - PUSH_DATA (push, 0x00000780); - PUSH_DATA (push, 0xc0940011); - PUSH_DATA (push, 0x00000788); - PUSH_DATA (push, 0xc0950215); - PUSH_DATA (push, 0x00000789); + PUSH_DATA (push, 0x10000409); + PUSH_DATA (push, 0x0423c788); + PUSH_DATA (push, 0x1000060d); + PUSH_DATA (push, 0x0423c788); + PUSH_DATA (push, 0x10000811); + PUSH_DATA (push, 0x0423c788); + PUSH_DATA (push, 0x10000a15); + PUSH_DATA (push, 0x0423c789); /* fetch only VTX_ATTR[0,8,9].xy */ BEGIN_NV04(push, NV50_3D(VP_ATTR_EN(0)), 2); diff -uNr xf86-video-nouveau-original/src/nv50_xv.c xf86-video-nouveau/src/nv50_xv.c --- xf86-video-nouveau-original/src/nv50_xv.c 2012-07-27 23:30:52.725704438 -0500 +++ xf86-video-nouveau/src/nv50_xv.c 2012-07-28 02:07:18.673556721 -0500 @@ -247,6 +247,8 @@ int sx2=pbox->x2; int sy1=pbox->y1; int sy2=pbox->y2; + tx2 = tx2 / width; + ty2 = ty2 / height; if (nouveau_pushbuf_space(push, 64, 0, 0) || nouveau_pushbuf_refn (push, refs, 3))