[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-nouveau: Changes to 'ubuntu'



 ChangeLog                              |  125 ++++++++
 configure.ac                           |    2 
 debian/changelog                       |   19 +
 debian/patches/101-git-a80785f792.diff |  477 ---------------------------------
 debian/patches/102-fixup-close.diff    |   77 -----
 debian/patches/series                  |    2 
 src/drmmode_display.c                  |   57 +++
 src/nouveau_dri2.c                     |   18 +
 src/nouveau_exa.c                      |    5 
 src/nv30_exa.c                         |  272 +++++++++---------
 src/nv_accel_common.c                  |   13 
 src/nv_driver.c                        |   11 
 12 files changed, 375 insertions(+), 703 deletions(-)

New commits:
commit 171572d3319e8cfdd4c12cd23b35d0bd002eca3d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 27 13:43:37 2013 +0100

    release to raring

diff --git a/debian/changelog b/debian/changelog
index 6f60aa1..68d35af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-nouveau (1:1.0.7-0ubuntu1) UNRELEASED; urgency=low
+xserver-xorg-video-nouveau (1:1.0.7-0ubuntu1) raring; urgency=low
 
   * Sync to unreleased debian experimental git.
   * Remaining differences:

commit b4c9ce0da253241b6630bcbef04ca47eabf06b59
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 27 13:41:40 2013 +0100

    Sync to unreleased debian experimental git.
    
    * Sync to unreleased debian experimental git.
    * Remaining differences:
      - Try to enable vblank if available (LP: #1019131)
        - 100-vblank-on.diff

diff --git a/debian/changelog b/debian/changelog
index 58bd3e1..6f60aa1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+xserver-xorg-video-nouveau (1:1.0.7-0ubuntu1) UNRELEASED; urgency=low
+
+  * Sync to unreleased debian experimental git.
+  * Remaining differences:
+    - Try to enable vblank if available (LP: #1019131)
+      - 100-vblank-on.diff
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 27 Mar 2013 13:37:09 +0100
+
 xserver-xorg-video-nouveau (1:1.0.7-1) UNRELEASED; urgency=low
 
   * New upstream release.
diff --git a/debian/patches/101-git-a80785f792.diff b/debian/patches/101-git-a80785f792.diff
deleted file mode 100644
index 80aaf90..0000000
--- a/debian/patches/101-git-a80785f792.diff
+++ /dev/null
@@ -1,477 +0,0 @@
-diff --git a/src/drmmode_display.c b/src/drmmode_display.c
-index 429e9cc..9eca60f 100644
---- a/src/drmmode_display.c
-+++ b/src/drmmode_display.c
-@@ -42,6 +42,7 @@
- #include "libudev.h"
- #endif
- 
-+static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height);
- typedef struct {
-     int fd;
-     uint32_t fb_id;
-@@ -345,6 +346,11 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
- 	drmmode_ConvertToKMode(crtc->scrn, &kmode, mode);
- 
- 	fb_id = drmmode->fb_id;
-+#ifdef NOUVEAU_PIXMAP_SHARING
-+	if (crtc->randr_crtc->scanout_pixmap)
-+		x = y = 0;
-+	else
-+#endif
- 	if (drmmode_crtc->rotate_fb_id) {
- 		fb_id = drmmode_crtc->rotate_fb_id;
- 		x = 0;
-@@ -536,6 +542,35 @@ drmmode_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
- 	}
- }
- 
-+#ifdef NOUVEAU_PIXMAP_SHARING
-+static Bool
-+drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
-+{
-+	ScreenPtr screen = xf86ScrnToScreen(crtc->scrn);
-+	PixmapPtr screenpix = screen->GetScreenPixmap(screen);
-+
-+	if (!ppix) {
-+		if (crtc->randr_crtc->scanout_pixmap)
-+			PixmapStopDirtyTracking(crtc->randr_crtc->scanout_pixmap, screenpix);
-+		return TRUE;
-+	}
-+
-+	if (ppix->drawable.width > screenpix->drawable.width ||
-+	    ppix->drawable.height > screenpix->drawable.height) {
-+		Bool ret;
-+		ret = drmmode_xf86crtc_resize(crtc->scrn, ppix->drawable.width, ppix->drawable.height);
-+		if (ret == FALSE)
-+			return FALSE;
-+
-+		screenpix = screen->GetScreenPixmap(screen);
-+		screen->width = screenpix->drawable.width = ppix->drawable.width;
-+		screen->height = screenpix->drawable.height = ppix->drawable.height;
-+	}
-+	PixmapStartDirtyTracking(ppix, screenpix, 0, 0);
-+	return TRUE;
-+}
-+#endif
-+
- static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
- 	.dpms = drmmode_crtc_dpms,
- 	.set_mode_major = drmmode_set_mode_major,
-@@ -547,6 +582,10 @@ static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
- 	.shadow_allocate = drmmode_crtc_shadow_allocate,
- 	.shadow_destroy = drmmode_crtc_shadow_destroy,
- 	.gamma_set = drmmode_gamma_set,
-+
-+#ifdef NOUVEAU_PIXMAP_SHARING
-+	.set_scanout_pixmap = drmmode_set_scanout_pixmap,
-+#endif
- };
- 
- 
-@@ -567,7 +606,7 @@ drmmode_crtc_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num)
- 						 drmmode->mode_res->crtcs[num]);
- 	drmmode_crtc->drmmode = drmmode;
- 
--	ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_VRAM | NOUVEAU_BO_MAP, 0,
-+	ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP, 0,
- 			     64*64*4, NULL, &drmmode_crtc->cursor);
- 	assert(ret == 0);
- 
-diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
-index 036bcff..e462a86 100644
---- a/src/nouveau_dri2.c
-+++ b/src/nouveau_dri2.c
-@@ -134,6 +134,7 @@ nouveau_dri2_copy_region2(ScreenPtr pScreen, DrawablePtr pDraw, RegionPtr pRegio
- {
- 	struct nouveau_dri2_buffer *src = nouveau_dri2_buffer(pSrcBuffer);
- 	struct nouveau_dri2_buffer *dst = nouveau_dri2_buffer(pDstBuffer);
-+	NVPtr pNv = NVPTR(xf86ScreenToScrn(pScreen));
- 	RegionPtr pCopyClip;
- 	GCPtr pGC;
- 	DrawablePtr src_draw, dst_draw;
-@@ -178,6 +179,23 @@ nouveau_dri2_copy_region2(ScreenPtr pScreen, DrawablePtr pDraw, RegionPtr pRegio
- 	}
- 	pGC->funcs->ChangeClip(pGC, CT_REGION, pCopyClip, 0);
- 	ValidateGC(dst_draw, pGC);
-+
-+	/* If this is a full buffer swap or frontbuffer flush, throttle on
-+	 * the previous one.
-+	 */
-+	if (dst->base.attachment == DRI2BufferFrontLeft &&
-+	    REGION_NUM_RECTS(pRegion) == 1) {
-+		BoxPtr extents = REGION_EXTENTS(pScreen, pRegion);
-+		if (extents->x1 == 0 && extents->y1 == 0 &&
-+		    extents->x2 == pDraw->width &&
-+		    extents->y2 == pDraw->height) {
-+			PixmapPtr fpix = get_drawable_pixmap(dst_draw);
-+			struct nouveau_bo *bo = nouveau_pixmap_bo(fpix);
-+			if (bo)
-+				nouveau_bo_wait(bo, NOUVEAU_BO_RD, pNv->client);
-+		}
-+	}
-+
- 	pGC->ops->CopyArea(src_draw, dst_draw, pGC, 0, 0,
- 			   pDraw->width, pDraw->height, off_x, off_y);
- 
-diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
-index 8191aeb..bcc0d4e 100644
---- a/src/nouveau_exa.c
-+++ b/src/nouveau_exa.c
-@@ -139,6 +139,11 @@ nouveau_exa_create_pixmap(ScreenPtr pScreen, int width, int height, int depth,
- 		return NULL;
- 	}
- 
-+#ifdef NOUVEAU_PIXMAP_SHARING
-+	if ((usage_hint & 0xffff) == CREATE_PIXMAP_USAGE_SHARED)
-+		nvpix->shared = TRUE;
-+#endif
-+
- 	return nvpix;
- }
- 
-diff --git a/src/nv30_exa.c b/src/nv30_exa.c
-index 95509bc..21586e9 100644
---- a/src/nv30_exa.c
-+++ b/src/nv30_exa.c
-@@ -820,146 +820,146 @@ NVAccelInitNV30TCL(ScrnInfoPtr pScrn)
- 	PUSH_DATA (push, 4096<<16);
- 
- 	PUSH_DATAu(push, pNv->scratch, PFP_PASS, 2 * 4);
--	PUSH_DATA (push, 0x18009e80); /* txph r0, a[tex0], t[0] */
--	PUSH_DATA (push, 0x1c9dc801);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x3fe1c800);
--	PUSH_DATA (push, 0x1802be83); /* txph r1, a[tex1], t[1] */
--	PUSH_DATA (push, 0x1c9dc801); /* exit */
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x3fe1c800);
-+	PUSH_DATAs(push, 0x18009e80); /* txph r0, a[tex0], t[0] */
-+	PUSH_DATAs(push, 0x1c9dc801);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x3fe1c800);
-+	PUSH_DATAs(push, 0x1802be83); /* txph r1, a[tex1], t[1] */
-+	PUSH_DATAs(push, 0x1c9dc801); /* exit */
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x3fe1c800);
- 
- 	PUSH_DATAu(push, pNv->scratch, PFP_NV12_BILINEAR, 8 * 4);
--	PUSH_DATA (push, 0x17028200); /* texr r0.x, a[tex0], t[1] */
--	PUSH_DATA (push, 0x1c9dc801);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x3fe1c800);
--	PUSH_DATA (push, 0x04000e02); /* madr r1.xyz, r0.x, imm.x, imm.yzww */
--	PUSH_DATA (push, 0x1c9c0000);
--	PUSH_DATA (push, 0x00000002);
--	PUSH_DATA (push, 0x0001f202);
--	PUSH_DATA (push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
--	PUSH_DATA (push, 0xbf5ee393);
--	PUSH_DATA (push, 0x3f078fef);
--	PUSH_DATA (push, 0xbf8a6762);
--	PUSH_DATA (push, 0x1704ac80); /* texr r0.yz, a[tex1], t[2] */
--	PUSH_DATA (push, 0x1c9dc801);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x3fe1c800);
--	PUSH_DATA (push, 0x04000e02); /* madr r1.xyz, r0.y, imm, r1 */
--	PUSH_DATA (push, 0x1c9cab00);
--	PUSH_DATA (push, 0x0001c802);
--	PUSH_DATA (push, 0x0001c804);
--	PUSH_DATA (push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
--	PUSH_DATA (push, 0xbec890d6);
--	PUSH_DATA (push, 0x40011687);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x04000e81); /* madr r0.xyz, r0.z, imm, r1 */
--	PUSH_DATA (push, 0x1c9d5500);
--	PUSH_DATA (push, 0x0001c802);
--	PUSH_DATA (push, 0x0001c804);
--	PUSH_DATA (push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
--	PUSH_DATA (push, 0xbf501a37);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
-+	PUSH_DATAs(push, 0x17028200); /* texr r0.x, a[tex0], t[1] */
-+	PUSH_DATAs(push, 0x1c9dc801);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x3fe1c800);
-+	PUSH_DATAs(push, 0x04000e02); /* madr r1.xyz, r0.x, imm.x, imm.yzww */
-+	PUSH_DATAs(push, 0x1c9c0000);
-+	PUSH_DATAs(push, 0x00000002);
-+	PUSH_DATAs(push, 0x0001f202);
-+	PUSH_DATAs(push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
-+	PUSH_DATAs(push, 0xbf5ee393);
-+	PUSH_DATAs(push, 0x3f078fef);
-+	PUSH_DATAs(push, 0xbf8a6762);
-+	PUSH_DATAs(push, 0x1704ac80); /* texr r0.yz, a[tex1], t[2] */
-+	PUSH_DATAs(push, 0x1c9dc801);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x3fe1c800);
-+	PUSH_DATAs(push, 0x04000e02); /* madr r1.xyz, r0.y, imm, r1 */
-+	PUSH_DATAs(push, 0x1c9cab00);
-+	PUSH_DATAs(push, 0x0001c802);
-+	PUSH_DATAs(push, 0x0001c804);
-+	PUSH_DATAs(push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
-+	PUSH_DATAs(push, 0xbec890d6);
-+	PUSH_DATAs(push, 0x40011687);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x04000e81); /* madr r0.xyz, r0.z, imm, r1 */
-+	PUSH_DATAs(push, 0x1c9d5500);
-+	PUSH_DATAs(push, 0x0001c802);
-+	PUSH_DATAs(push, 0x0001c804);
-+	PUSH_DATAs(push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
-+	PUSH_DATAs(push, 0xbf501a37);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
- 
- 	PUSH_DATAu(push, pNv->scratch, PFP_NV12_BICUBIC, 24 * 4);
--	PUSH_DATA (push, 0x01008604); /* movr r2.xy, a[tex0] */
--	PUSH_DATA (push, 0x1c9dc801);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x03000600); /* addr r0.xy, r2, imm.x */
--	PUSH_DATA (push, 0x1c9dc808);
--	PUSH_DATA (push, 0x00000002);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x3f000000); /* { 0.50, 0.00, 0.00, 0.00 } */
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x17000e06); /* texr r3.xyz, r0, t[0] */
--	PUSH_DATA (push, 0x1c9dc800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x17000e00); /* texr r0.xyz, r0.y, t[0] */
--	PUSH_DATA (push, 0x1c9caa00);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x02000a02); /* mulr r1.xz, r3.xxyy, imm.xxyy */
--	PUSH_DATA (push, 0x1c9ca00c);
--	PUSH_DATA (push, 0x0000a002);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
--	PUSH_DATA (push, 0x3f800000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x02001402); /* mulr r1.yw, r0.xxyy, imm.xxyy */
--	PUSH_DATA (push, 0x1c9ca000);
--	PUSH_DATA (push, 0x0000a002);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
--	PUSH_DATA (push, 0x3f800000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x03001e04); /* addr r2, r2.xyxy, r1 */
--	PUSH_DATA (push, 0x1c9c8808);
--	PUSH_DATA (push, 0x0001c804);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x17020200); /* texr r0.x, r2, t[1] */
--	PUSH_DATA (push, 0x1c9dc808);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x17020402); /* texr r1.y, r2.xwxw, t[1] */
--	PUSH_DATA (push, 0x1c9d9808);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x17020202); /* texr r1.x, r2.zyxy, t[1] */
--	PUSH_DATA (push, 0x1c9c8c08);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x1f400280); /* lrph r0.x, r0.z, r0, r1.y */
--	PUSH_DATA (push, 0x1c9d5400);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0000aa04);
--	PUSH_DATA (push, 0x17020400); /* texr r0.y, r2.zwzz, t[1] */
--	PUSH_DATA (push, 0x1c9d5c08);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x1f400480); /* lrph r0.y, r0.z, r1.x, r0 */
--	PUSH_DATA (push, 0x1c9d5400);
--	PUSH_DATA (push, 0x00000004);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x1f400280); /* lrph r0.x, r3.z, r0, r0.y */
--	PUSH_DATA (push, 0x1c9d540c);
--	PUSH_DATA (push, 0x0001c900);
--	PUSH_DATA (push, 0x0000ab00);
--	PUSH_DATA (push, 0x04400e80); /* madh r0.xyz, r0.x, imm.x, imm.yzww */
--	PUSH_DATA (push, 0x1c9c0100);
--	PUSH_DATA (push, 0x00000002);
--	PUSH_DATA (push, 0x0001f202);
--	PUSH_DATA (push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
--	PUSH_DATA (push, 0xbf5ee393);
--	PUSH_DATA (push, 0x3f078fef);
--	PUSH_DATA (push, 0xbf8a6762);
--	PUSH_DATA (push, 0x1704ac02); /* texr r1.yz, a[tex1], t[2] */
--	PUSH_DATA (push, 0x1c9dc801);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x0001c800);
--	PUSH_DATA (push, 0x04400e80); /* madh r0.xyz, r1.y, imm, r0 */
--	PUSH_DATA (push, 0x1c9caa04);
--	PUSH_DATA (push, 0x0001c802);
--	PUSH_DATA (push, 0x0001c900);
--	PUSH_DATA (push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
--	PUSH_DATA (push, 0xbec890d6);
--	PUSH_DATA (push, 0x40011687);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x04400e81); /* madh r0.xyz, r1.z, imm, r0 */
--	PUSH_DATA (push, 0x1c9d5404);
--	PUSH_DATA (push, 0x0001c802);
--	PUSH_DATA (push, 0x0001c900);
--	PUSH_DATA (push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
--	PUSH_DATA (push, 0xbf501a37);
--	PUSH_DATA (push, 0x00000000);
--	PUSH_DATA (push, 0x00000000);
-+	PUSH_DATAs(push, 0x01008604); /* movr r2.xy, a[tex0] */
-+	PUSH_DATAs(push, 0x1c9dc801);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x03000600); /* addr r0.xy, r2, imm.x */
-+	PUSH_DATAs(push, 0x1c9dc808);
-+	PUSH_DATAs(push, 0x00000002);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x3f000000); /* { 0.50, 0.00, 0.00, 0.00 } */
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x17000e06); /* texr r3.xyz, r0, t[0] */
-+	PUSH_DATAs(push, 0x1c9dc800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x17000e00); /* texr r0.xyz, r0.y, t[0] */
-+	PUSH_DATAs(push, 0x1c9caa00);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x02000a02); /* mulr r1.xz, r3.xxyy, imm.xxyy */
-+	PUSH_DATAs(push, 0x1c9ca00c);
-+	PUSH_DATAs(push, 0x0000a002);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
-+	PUSH_DATAs(push, 0x3f800000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x02001402); /* mulr r1.yw, r0.xxyy, imm.xxyy */
-+	PUSH_DATAs(push, 0x1c9ca000);
-+	PUSH_DATAs(push, 0x0000a002);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
-+	PUSH_DATAs(push, 0x3f800000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x03001e04); /* addr r2, r2.xyxy, r1 */
-+	PUSH_DATAs(push, 0x1c9c8808);
-+	PUSH_DATAs(push, 0x0001c804);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x17020200); /* texr r0.x, r2, t[1] */
-+	PUSH_DATAs(push, 0x1c9dc808);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x17020402); /* texr r1.y, r2.xwxw, t[1] */
-+	PUSH_DATAs(push, 0x1c9d9808);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x17020202); /* texr r1.x, r2.zyxy, t[1] */
-+	PUSH_DATAs(push, 0x1c9c8c08);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x1f400280); /* lrph r0.x, r0.z, r0, r1.y */
-+	PUSH_DATAs(push, 0x1c9d5400);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0000aa04);
-+	PUSH_DATAs(push, 0x17020400); /* texr r0.y, r2.zwzz, t[1] */
-+	PUSH_DATAs(push, 0x1c9d5c08);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x1f400480); /* lrph r0.y, r0.z, r1.x, r0 */
-+	PUSH_DATAs(push, 0x1c9d5400);
-+	PUSH_DATAs(push, 0x00000004);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x1f400280); /* lrph r0.x, r3.z, r0, r0.y */
-+	PUSH_DATAs(push, 0x1c9d540c);
-+	PUSH_DATAs(push, 0x0001c900);
-+	PUSH_DATAs(push, 0x0000ab00);
-+	PUSH_DATAs(push, 0x04400e80); /* madh r0.xyz, r0.x, imm.x, imm.yzww */
-+	PUSH_DATAs(push, 0x1c9c0100);
-+	PUSH_DATAs(push, 0x00000002);
-+	PUSH_DATAs(push, 0x0001f202);
-+	PUSH_DATAs(push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
-+	PUSH_DATAs(push, 0xbf5ee393);
-+	PUSH_DATAs(push, 0x3f078fef);
-+	PUSH_DATAs(push, 0xbf8a6762);
-+	PUSH_DATAs(push, 0x1704ac02); /* texr r1.yz, a[tex1], t[2] */
-+	PUSH_DATAs(push, 0x1c9dc801);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x0001c800);
-+	PUSH_DATAs(push, 0x04400e80); /* madh r0.xyz, r1.y, imm, r0 */
-+	PUSH_DATAs(push, 0x1c9caa04);
-+	PUSH_DATAs(push, 0x0001c802);
-+	PUSH_DATAs(push, 0x0001c900);
-+	PUSH_DATAs(push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
-+	PUSH_DATAs(push, 0xbec890d6);
-+	PUSH_DATAs(push, 0x40011687);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x04400e81); /* madh r0.xyz, r1.z, imm, r0 */
-+	PUSH_DATAs(push, 0x1c9d5404);
-+	PUSH_DATAs(push, 0x0001c802);
-+	PUSH_DATAs(push, 0x0001c900);
-+	PUSH_DATAs(push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
-+	PUSH_DATAs(push, 0xbf501a37);
-+	PUSH_DATAs(push, 0x00000000);
-+	PUSH_DATAs(push, 0x00000000);
- 
- 	return TRUE;
- }
-diff --git a/src/nv_accel_common.c b/src/nv_accel_common.c
-index 57e52ff..b06fe0c 100644
---- a/src/nv_accel_common.c
-+++ b/src/nv_accel_common.c
-@@ -35,10 +35,19 @@ nouveau_allocate_surface(ScrnInfoPtr scrn, int width, int height, int bpp,
- 	NVPtr pNv = NVPTR(scrn);
- 	Bool scanout = (usage_hint & NOUVEAU_CREATE_PIXMAP_SCANOUT);
- 	Bool tiled = (usage_hint & NOUVEAU_CREATE_PIXMAP_TILED);
-+	Bool shared = FALSE;
- 	union nouveau_bo_config cfg = {};
- 	int flags = NOUVEAU_BO_MAP | (bpp >= 8 ? NOUVEAU_BO_VRAM : 0);
- 	int cpp = bpp / 8, ret;
- 
-+#ifdef NOUVEAU_PIXMAP_SHARING
-+	shared = ((usage_hint & 0xffff) == CREATE_PIXMAP_USAGE_SHARED);
-+#endif
-+
-+	flags = NOUVEAU_BO_MAP;
-+	if (bpp >= 8)
-+		flags |= shared ? NOUVEAU_BO_GART : NOUVEAU_BO_VRAM;
-+
- 	if (pNv->Architecture >= NV_ARCH_50) {
- 		if (scanout) {
- 			if (pNv->tiled_scanout) {
-@@ -48,9 +57,9 @@ nouveau_allocate_surface(ScrnInfoPtr scrn, int width, int height, int bpp,
- 				*pitch = NOUVEAU_ALIGN(width * cpp, 256);
- 			}
- 		} else {
--			if (bpp >= 8)
-+			if (bpp >= 8 && !shared)
- 				tiled = TRUE;
--			*pitch = NOUVEAU_ALIGN(width * cpp, 64);
-+			*pitch = NOUVEAU_ALIGN(width * cpp, shared ? 256 : 64);
- 		}
- 	} else {
- 		if (scanout && pNv->tiled_scanout)
-diff --git a/src/nv_driver.c b/src/nv_driver.c
-index f14c847..9f62fe2 100644
---- a/src/nv_driver.c
-+++ b/src/nv_driver.c
-@@ -452,7 +452,7 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty)
- {
- 	RegionRec pixregion;
- 
--	PixmapRegionInit(&pixregion, dirty->slave_dst->master_pixmap);
-+	PixmapRegionInit(&pixregion, dirty->slave_dst);
- 
- 	DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
- 	PixmapSyncDirtyHelper(dirty, &pixregion);
-@@ -676,7 +676,7 @@ nouveau_setup_capabilities(ScrnInfoPtr pScrn)
- 		if (value & DRM_PRIME_CAP_EXPORT)
- 			pScrn->capabilities |= RR_Capability_SourceOutput;
- 		if (value & DRM_PRIME_CAP_IMPORT)
--			pScrn->capabilities |= RR_Capability_SourceOffload;
-+			pScrn->capabilities |= RR_Capability_SourceOffload | RR_Capability_SinkOutput;
- 	}
- #endif
- }
diff --git a/debian/patches/102-fixup-close.diff b/debian/patches/102-fixup-close.diff
deleted file mode 100644
index b9a6108..0000000
--- a/debian/patches/102-fixup-close.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- a/src/drmmode_display.c
-+++ b/src/drmmode_display.c
-@@ -627,6 +627,9 @@
- 	drmmode_output->mode_output =
- 		drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
- 
-+	if (!drmmode_output->mode_output)
-+		return XF86OutputStatusDisconnected;
-+
- 	switch (drmmode_output->mode_output->connection) {
- 	case DRM_MODE_CONNECTED:
- 		status = XF86OutputStatusConnected;
-@@ -663,6 +666,9 @@
- 	drmModePropertyPtr props;
- 	xf86MonPtr ddc_mon = NULL;
- 
-+	if (!koutput)
-+		return NULL;
-+
- 	/* look for an EDID property */
- 	for (i = 0; i < koutput->count_props; i++) {
- 		props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
-@@ -927,6 +933,9 @@
- 			drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
- 	}
- 
-+	if (!drmmode_output->mode_output)
-+		return FALSE;
-+
- 	for (i = 0; i < drmmode_output->num_props; i++) {
- 		drmmode_prop_ptr p = &drmmode_output->props[i];
- 		if (p->atoms[0] != property)
-@@ -1437,6 +1446,7 @@
- 	if (drmmode->uevent_monitor) {
- 		struct udev *u = udev_monitor_get_udev(drmmode->uevent_monitor);
- 
-+		RemoveGeneralSocket(udev_monitor_get_fd(drmmode->uevent_monitor));
- 		udev_monitor_unref(drmmode->uevent_monitor);
- 		udev_unref(u);
- 	}
-@@ -1524,6 +1534,12 @@
- drmmode_screen_fini(ScreenPtr pScreen)
- {
- 	ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
-+	drmmode_ptr drmmode = drmmode_from_scrn(scrn);
- 
- 	drmmode_uevent_fini(scrn);
-+
-+	/* Register a wakeup handler to get informed on DRM events */
-+	RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
-+				     drmmode_wakeup_handler, scrn);
-+	RemoveGeneralSocket(drmmode->fd);
- }
---- a/src/nv_driver.c
-+++ b/src/nv_driver.c
-@@ -432,8 +432,8 @@
- 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n");
- 
- 	ret = drmDropMaster(pNv->dev->fd);
--	if (ret)
--		ErrorF("Error dropping master: %d\n", ret);
-+	if (ret && errno != EIO && errno != ENODEV)
-+		ErrorF("Error dropping master: %i(%m)\n", -errno);
- }
- 
- static void
-@@ -624,8 +624,9 @@
- {
- 	NVPtr pNv = NVPTR(pScrn);
- 
--	nouveau_device_del(&pNv->dev);
- 	drmFree(pNv->drm_device_name);
-+	nouveau_client_del(&pNv->client);
-+	nouveau_device_del(&pNv->dev);
- }
- 
- static Bool
diff --git a/debian/patches/series b/debian/patches/series
index 3822187..e8e209c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,5 +3,3 @@
 # Ubuntu patches
 
 100-vblank-on.diff
-101-git-a80785f792.diff
-102-fixup-close.diff

commit 1130ace7563bc42e2e7839bee3ec1ab00243c864
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 27 13:37:38 2013 +0100

    New upstream release.

diff --git a/ChangeLog b/ChangeLog
index ea92c08..4cea0ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,128 @@
+commit 6771424d79e541d2fa7253a582db3dc9108fd97d
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date:   Wed Mar 27 09:50:03 2013 +0100
+
+    bump to 1.0.7
+    
+    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+
+commit 84998320162a74a0861b7be1fcc230e50f08424a
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date:   Mon Mar 25 13:55:37 2013 +0100
+
+    Clean up some errors on closing.
+    
+    If forced close happens, all ioctl's will fail. Some of the handlers
+    also need to be unregistered before the module is unloaded entirely.
+
+commit a80785f79268ed3701fc69cbd9194ad12822c82c
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Feb 11 09:56:25 2013 +1000
+
+    nouveau: fix build against old servers (part 2)
+    
+    Should fix next bit of
+    https://bugs.freedesktop.org/show_bug.cgi?id=60369
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 05dc9b57896689a3dbd9e6aeb16d57c49515b02e
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date:   Sun Feb 3 21:12:46 2013 +0100
+
+    nv30/exa: fix shaders on big-endian machines
+    
+    Direct port of commit d1bc38b6673c54af61196056c489383fba8dced8
+    "nv40/exa: fix shaders on big-endian machines" to nv30.
+    
+    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=60050
+    
+    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
+commit 61a277488f7195914cbdda10355db0d758fc801c
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Thu Feb 7 10:47:20 2013 +1000
+
+    nouveau: fix build on older X servers
+    
+    should fix https://bugs.freedesktop.org/show_bug.cgi?id=60369
+    
+    Reported-by: fabio.ped@libero.it
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit e8f222fd10e21f39488d3d8c697e4948cd787cd0
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Feb 6 16:21:50 2013 +1000
+
+    nouveau: make prime regression fix more robust.
+    
+    This makes this fix more robust and less crashy.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit d762631c9306b6580b34db1e7eb57bbcac901390
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Feb 6 15:52:33 2013 +1000
+
+    nouveau: align shared buffers to 256
+    
+    We were getting 0xa5 error code on 2D transfers from tiled VRAM to untiled
+    GART when using USB offload devices, this fixes this by upping the alignment
+    on the 2D engine for shared buffers.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit c6980b2add5752a7c285a846b2c9353c9d18afd4
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Feb 6 15:24:09 2013 +1000
+
+    nouveau: fix regression in PRIME since 58284cf32778d54cde139423450bc33360784503
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 59fb3f0252e9b769c5877cfe83d8dbc51cdff232
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Feb 6 14:58:08 2013 +1000
+
+    nouveau: create shared pixmaps in GART
+    
+    this creates the shared pixmaps in GART, and makes sure they are untiled.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 1fdd7db94b55c65ea62cc9eaefff620b20e9e4ea
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jan 7 15:28:53 2013 +1000
+
+    nouveau: add reverse prime support
+    
+    This allows the nvidia card to scanout Intel cards rendering.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 58284cf32778d54cde139423450bc33360784503
+Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
+Date:   Tue Jan 29 16:38:21 2013 +1000
+
+    dri2: fix missing frame throttle on copy_region buffer swaps
+    
+    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
+commit 912d418fdfd2e99eef1e5c631c76dda1d82cf451
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date:   Mon Jan 21 00:15:38 2013 +0100
+
+    nouveau: put cursor BO in GART
+    
+    Keeping it in VRAM wastes CPU time, because cursor_set ioctl reads
+    handed BO back to RAM, just to write it to actual cursor BO.
+    
+    Here (nv92/core i7), this patch decreases overall cpu usage of
+    drmmode_load_cursor_argb from 4.6ms to ~90us and lets nv50_crtc_cursor_set
+    disappear from perf traces.
+    
+    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
 commit 8f934fad5d4934936b3265f272ca81e73c60d7dc
 Author: Dave Airlie <airlied@redhat.com>
 Date:   Mon Jan 7 14:13:10 2013 +1000
diff --git a/debian/changelog b/debian/changelog
index 8b6208d..e84245c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-nouveau (1:1.0.7-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 27 Mar 2013 13:37:09 +0100
+
 xserver-xorg-video-nouveau (1:1.0.6-1) experimental; urgency=low
 
   [ Sven Joachim ]

commit 6771424d79e541d2fa7253a582db3dc9108fd97d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Mar 27 09:50:03 2013 +0100

    bump to 1.0.7
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>

diff --git a/configure.ac b/configure.ac
index 7535bfe..137de9c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-nouveau],
-        [1.0.6],
+        [1.0.7],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-nouveau])
 

commit 84998320162a74a0861b7be1fcc230e50f08424a
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Mon Mar 25 13:55:37 2013 +0100

    Clean up some errors on closing.
    
    If forced close happens, all ioctl's will fail. Some of the handlers
    also need to be unregistered before the module is unloaded entirely.

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9eca60f..6033a6d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -627,6 +627,9 @@ drmmode_output_detect(xf86OutputPtr output)
 	drmmode_output->mode_output =
 		drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
 
+	if (!drmmode_output->mode_output)
+		return XF86OutputStatusDisconnected;
+
 	switch (drmmode_output->mode_output->connection) {
 	case DRM_MODE_CONNECTED:
 		status = XF86OutputStatusConnected;
@@ -663,6 +666,9 @@ drmmode_output_get_modes(xf86OutputPtr output)
 	drmModePropertyPtr props;
 	xf86MonPtr ddc_mon = NULL;
 
+	if (!koutput)
+		return NULL;
+
 	/* look for an EDID property */
 	for (i = 0; i < koutput->count_props; i++) {
 		props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
@@ -927,6 +933,9 @@ drmmode_output_get_property(xf86OutputPtr output, Atom property)
 			drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
 	}
 
+	if (!drmmode_output->mode_output)
+		return FALSE;
+
 	for (i = 0; i < drmmode_output->num_props; i++) {
 		drmmode_prop_ptr p = &drmmode_output->props[i];
 		if (p->atoms[0] != property)
@@ -1437,6 +1446,7 @@ drmmode_uevent_fini(ScrnInfoPtr scrn)
 	if (drmmode->uevent_monitor) {
 		struct udev *u = udev_monitor_get_udev(drmmode->uevent_monitor);
 
+		RemoveGeneralSocket(udev_monitor_get_fd(drmmode->uevent_monitor));
 		udev_monitor_unref(drmmode->uevent_monitor);
 		udev_unref(u);
 	}
@@ -1524,6 +1534,12 @@ void
 drmmode_screen_fini(ScreenPtr pScreen)
 {
 	ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
+	drmmode_ptr drmmode = drmmode_from_scrn(scrn);
 
 	drmmode_uevent_fini(scrn);
+
+	/* Register a wakeup handler to get informed on DRM events */
+	RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
+				     drmmode_wakeup_handler, scrn);
+	RemoveGeneralSocket(drmmode->fd);
 }
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 9f62fe2..2b74fc6 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -432,8 +432,8 @@ NVLeaveVT(VT_FUNC_ARGS_DECL)
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n");
 
 	ret = drmDropMaster(pNv->dev->fd);
-	if (ret)
-		ErrorF("Error dropping master: %d\n", ret);
+	if (ret && errno != EIO && errno != ENODEV)
+		ErrorF("Error dropping master: %i(%m)\n", -errno);
 }
 
 static void
@@ -624,8 +624,9 @@ NVCloseDRM(ScrnInfoPtr pScrn)
 {
 	NVPtr pNv = NVPTR(pScrn);
 
-	nouveau_device_del(&pNv->dev);
 	drmFree(pNv->drm_device_name);
+	nouveau_client_del(&pNv->client);
+	nouveau_device_del(&pNv->dev);
 }
 
 static Bool

commit a80785f79268ed3701fc69cbd9194ad12822c82c
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Feb 11 09:56:25 2013 +1000

    nouveau: fix build against old servers (part 2)
    
    Should fix next bit of
    https://bugs.freedesktop.org/show_bug.cgi?id=60369
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 71c9ff9..9eca60f 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -346,9 +346,12 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
 	drmmode_ConvertToKMode(crtc->scrn, &kmode, mode);
 
 	fb_id = drmmode->fb_id;
+#ifdef NOUVEAU_PIXMAP_SHARING
 	if (crtc->randr_crtc->scanout_pixmap)
 		x = y = 0;
-	else if (drmmode_crtc->rotate_fb_id) {
+	else
+#endif
+	if (drmmode_crtc->rotate_fb_id) {
 		fb_id = drmmode_crtc->rotate_fb_id;
 		x = 0;
 		y = 0;
@@ -539,11 +542,11 @@ drmmode_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
 	}
 }
 
+#ifdef NOUVEAU_PIXMAP_SHARING
 static Bool
 drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
 {
 	ScreenPtr screen = xf86ScrnToScreen(crtc->scrn);
-	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 	PixmapPtr screenpix = screen->GetScreenPixmap(screen);
 
 	if (!ppix) {
@@ -566,6 +569,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
 	PixmapStartDirtyTracking(ppix, screenpix, 0, 0);
 	return TRUE;
 }
+#endif
 
 static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
 	.dpms = drmmode_crtc_dpms,
@@ -579,7 +583,9 @@ static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
 	.shadow_destroy = drmmode_crtc_shadow_destroy,
 	.gamma_set = drmmode_gamma_set,
 
+#ifdef NOUVEAU_PIXMAP_SHARING
 	.set_scanout_pixmap = drmmode_set_scanout_pixmap,
+#endif
 };
 
 

commit 05dc9b57896689a3dbd9e6aeb16d57c49515b02e
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Sun Feb 3 21:12:46 2013 +0100

    nv30/exa: fix shaders on big-endian machines
    
    Direct port of commit d1bc38b6673c54af61196056c489383fba8dced8
    "nv40/exa: fix shaders on big-endian machines" to nv30.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=60050
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

diff --git a/src/nv30_exa.c b/src/nv30_exa.c
index 95509bc..21586e9 100644
--- a/src/nv30_exa.c
+++ b/src/nv30_exa.c
@@ -820,146 +820,146 @@ NVAccelInitNV30TCL(ScrnInfoPtr pScrn)
 	PUSH_DATA (push, 4096<<16);
 
 	PUSH_DATAu(push, pNv->scratch, PFP_PASS, 2 * 4);
-	PUSH_DATA (push, 0x18009e80); /* txph r0, a[tex0], t[0] */
-	PUSH_DATA (push, 0x1c9dc801);
-	PUSH_DATA (push, 0x0001c800);
-	PUSH_DATA (push, 0x3fe1c800);
-	PUSH_DATA (push, 0x1802be83); /* txph r1, a[tex1], t[1] */
-	PUSH_DATA (push, 0x1c9dc801); /* exit */
-	PUSH_DATA (push, 0x0001c800);
-	PUSH_DATA (push, 0x3fe1c800);
+	PUSH_DATAs(push, 0x18009e80); /* txph r0, a[tex0], t[0] */
+	PUSH_DATAs(push, 0x1c9dc801);
+	PUSH_DATAs(push, 0x0001c800);
+	PUSH_DATAs(push, 0x3fe1c800);
+	PUSH_DATAs(push, 0x1802be83); /* txph r1, a[tex1], t[1] */
+	PUSH_DATAs(push, 0x1c9dc801); /* exit */


Reply to: