rpms/xorg-x11-drv-nouveau/devel nouveau-exa-no-pa_fa.patch, NONE, 1.1 nouveau-nva0-corruption-fix.patch, NONE, 1.1 nouveau-zfill-fallback.patch, NONE, 1.1 .cvsignore, 1.50, 1.51 nouveau-bgnr.patch, 1.2, 1.3 sources, 1.51, 1.52 xorg-x11-drv-nouveau.spec, 1.64, 1.65 nouveau-bicubic-2x.patch, 1.18, NONE nouveau-nv50-nva0-noaccel.patch, 1.3, NONE

Ben Skeggs bskeggs at fedoraproject.org
Sun Jul 4 23:26:55 UTC 2010


Author: bskeggs

Update of /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv24172

Modified Files:
	.cvsignore nouveau-bgnr.patch sources 
	xorg-x11-drv-nouveau.spec 
Added Files:
	nouveau-exa-no-pa_fa.patch nouveau-nva0-corruption-fix.patch 
	nouveau-zfill-fallback.patch 
Removed Files:
	nouveau-bicubic-2x.patch nouveau-nv50-nva0-noaccel.patch 
Log Message:
* Mon Jul 5 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.16-8.20100615gitdb98ad2
- bring in latest upstream



nouveau-exa-no-pa_fa.patch:
 drmmode_display.c |    2 +-
 nouveau_exa.c     |    5 +++++
 nv_driver.c       |    3 +--
 3 files changed, 7 insertions(+), 3 deletions(-)

--- NEW FILE nouveau-exa-no-pa_fa.patch ---
>From 826d6fbf45f9ec229c7ba12faf95692421a86f91 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs at redhat.com>
Date: Mon, 5 Jul 2010 09:14:51 +1000
Subject: [PATCH 3/4] use UTS/DFS rather than libwfb for tiled pixmap access

---
 src/drmmode_display.c |    2 +-
 src/nouveau_exa.c     |    5 +++++
 src/nv_driver.c       |    2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 586b0ac..31912c6 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1016,7 +1016,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
 	if (scrn->virtualX == width && scrn->virtualY == height)
 		return TRUE;
 
-	if (pNv->Architecture >= NV_ARCH_50 && pNv->wfb_enabled) {
+	if (pNv->Architecture >= NV_ARCH_50 && pNv->tiled_scanout) {
 		tile_mode = 4;
 		tile_flags = 0x7000; //(scrn->bitsPerPixel == 16) ? 0x7000 : 0x7a00;
 		ah = NOUVEAU_ALIGN(height, 1 << (tile_mode + 2));
diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
index 1b8888e..47a274a 100644
--- a/src/nouveau_exa.c
+++ b/src/nouveau_exa.c
@@ -290,8 +290,13 @@ nouveau_exa_wait_marker(ScreenPtr pScreen, int marker)
 static Bool
 nouveau_exa_prepare_access(PixmapPtr ppix, int index)
 {
+	ScrnInfoPtr pScrn = xf86Screens[ppix->drawable.pScreen->myNum];
+	NVPtr pNv = NVPTR(pScrn);
 	struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
 
+	if (pNv->Architecture >= NV_ARCH_50 && !pNv->wfb_enabled)
+		return FALSE;
+
 	if (nouveau_bo_map(bo, NOUVEAU_BO_RDWR))
 		return FALSE;
 	ppix->devPrivate.ptr = bo->map;
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 3f44e1b..ef9b8f8 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -762,7 +762,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
 	}
 
 	if (!pNv->NoAccel && pNv->Architecture >= NV_ARCH_50) {
-		pNv->wfb_enabled = TRUE;
+		pNv->wfb_enabled = FALSE; /* UTS/DFS instead */
 		pNv->tiled_scanout = TRUE;
 	}
 
-- 
1.7.1


nouveau-nva0-corruption-fix.patch:
 drmmode_display.c |    4 ++--
 nv_driver.c       |    3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

--- NEW FILE nouveau-nva0-corruption-fix.patch ---
>From 2a130428dacf7a0a5e272acb1844204492a7394b Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs at redhat.com>
Date: Mon, 10 May 2010 08:31:36 +1000
Subject: [PATCH 2/4] force consistant tiling mode to prevent corruption issues

---
 src/drmmode_display.c |    4 ++--
 src/nv_driver.c       |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9b5d52d..586b0ac 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -420,7 +420,7 @@ drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
 
 	if (pNv->Architecture >= NV_ARCH_50) {
 		tile_mode = 4;
-		tile_flags = (drmmode->cpp == 2) ? 0x7000 : 0x7a00;
+		tile_flags = 0x7000; //(drmmode->cpp == 2) ? 0x7000 : 0x7a00;
 		ah = NOUVEAU_ALIGN(height, 1 << (tile_mode + 2));
 		pitch = NOUVEAU_ALIGN(width * drmmode->cpp, 64);
 	} else {
@@ -1018,7 +1018,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
 
 	if (pNv->Architecture >= NV_ARCH_50 && pNv->wfb_enabled) {
 		tile_mode = 4;
-		tile_flags = (scrn->bitsPerPixel == 16) ? 0x7000 : 0x7a00;
+		tile_flags = 0x7000; //(scrn->bitsPerPixel == 16) ? 0x7000 : 0x7a00;
 		ah = NOUVEAU_ALIGN(height, 1 << (tile_mode + 2));
 		pitch = NOUVEAU_ALIGN(width * (scrn->bitsPerPixel >> 3), 64);
 	} else {
diff --git a/src/nv_driver.c b/src/nv_driver.c
index dd60b64..3f44e1b 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -846,7 +846,7 @@ NVMapMem(ScrnInfoPtr pScrn)
 	size = pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
 	if (pNv->Architecture >= NV_ARCH_50 && pNv->tiled_scanout) {
 		tile_mode = 4;
-		tile_flags = pScrn->bitsPerPixel == 16 ? 0x7000 : 0x7a00;
+		tile_flags = 0x7000; //pScrn->bitsPerPixel == 16 ? 0x7000 : 0x7a00;
 		size *= NOUVEAU_ALIGN(pScrn->virtualY, (1 << (tile_mode + 2)));
 	} else {
 		size *= pScrn->virtualY;
-- 
1.7.1


nouveau-zfill-fallback.patch:
 drmmode_display.c |   36 ++++++++++++++++--------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

--- NEW FILE nouveau-zfill-fallback.patch ---
>From 13ddbe287b7383fc8c4ef91d8748b28e72601637 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs at redhat.com>
Date: Mon, 5 Jul 2010 09:15:25 +1000
Subject: [PATCH 4/4] zfill framebuffer as fallback if fbcon copy fails

---
 src/drmmode_display.c |   35 ++++++++++++++++-------------------
 1 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 31912c6..5986a21 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -178,13 +178,8 @@ drmmode_fbcon_copy(ScreenPtr pScreen)
 	unsigned w = pScrn->virtualX, h = pScrn->virtualY;
 	int i, ret, fbcon_id = 0;
 
-	if (pNv->NoAccel) {
-		if (nouveau_bo_map(pNv->scanout, NOUVEAU_BO_WR))
-			return;
-		memset(pNv->scanout->map, 0x00, pNv->scanout->size);
-		nouveau_bo_unmap(pNv->scanout);
-		return;
-	}
+	if (pNv->NoAccel)
+		goto fallback;
 
 	for (i = 0; i < xf86_config->num_crtc; i++) {
 		drmmode_crtc_private_ptr drmmode_crtc =
@@ -195,32 +190,27 @@ drmmode_fbcon_copy(ScreenPtr pScreen)
 	}
 
 	if (!fbcon_id)
-		return;
+		goto fallback;
 
 	fb = drmModeGetFB(nouveau_device(pNv->dev)->fd, fbcon_id);
 	if (!fb) {
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 			   "Failed to retrieve fbcon fb: id %d\n", fbcon_id);
-		return;
+		goto fallback;
 	}
 
-	if (fb->depth != pScrn->depth) {
+	if (fb->depth != pScrn->depth || fb->width != w || fb->height != h) {
 		drmFree(fb);
-		return;
+		goto fallback;
 	}
 
-	if (w > fb->width)
-		w = fb->width;
-	if (h > fb->height)
-		h = fb->height;
-
 	ret = nouveau_bo_wrap(pNv->dev, fb->handle, &bo);
 	if (ret) {
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 			   "Failed to retrieve fbcon buffer: handle=0x%08x\n",
 			   fb->handle);
 		drmFree(fb);
-		return;
+		goto fallback;
 	}
 
 	pspix = drmmode_pixmap_wrap(pScreen, fb->width, fb->height,
@@ -230,7 +220,7 @@ drmmode_fbcon_copy(ScreenPtr pScreen)
 	if (!pspix) {
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 			   "Failed to create pixmap for fbcon contents\n");
-		return;
+		goto fallback;
 	}
 
 	pdpix = drmmode_pixmap_wrap(pScreen, pScrn->virtualX,
@@ -241,7 +231,7 @@ drmmode_fbcon_copy(ScreenPtr pScreen)
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 			   "Failed to init scanout pixmap for fbcon mirror\n");
 		pScreen->DestroyPixmap(pspix);
-		return;
+		goto fallback;
 	}
 
 	exa->PrepareCopy(pspix, pdpix, 0, 0, GXcopy, ~0);
@@ -257,6 +247,13 @@ drmmode_fbcon_copy(ScreenPtr pScreen)
 
 	pScreen->DestroyPixmap(pdpix);
 	pScreen->DestroyPixmap(pspix);
+	return;
+
+fallback:
+	if (nouveau_bo_map(pNv->scanout, NOUVEAU_BO_WR))
+		return;
+	memset(pNv->scanout->map, 0x00, pNv->scanout->size);
+	nouveau_bo_unmap(pNv->scanout);
 }
 
 static Bool
-- 
1.7.1



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/.cvsignore,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -p -r1.50 -r1.51
--- .cvsignore	8 Feb 2010 05:07:33 -0000	1.50
+++ .cvsignore	4 Jul 2010 23:26:54 -0000	1.51
@@ -1 +1 @@
-xf86-video-nouveau-0.0.16-20100205gite75dd23.tar.bz2
+xf86-video-nouveau-0.0.16-20100615gitdb98ad2.tar.bz2

nouveau-bgnr.patch:
 nv_driver.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: nouveau-bgnr.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/nouveau-bgnr.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- nouveau-bgnr.patch	8 Feb 2010 04:22:53 -0000	1.2
+++ nouveau-bgnr.patch	4 Jul 2010 23:26:54 -0000	1.3
@@ -1,17 +1,17 @@
-From 5428142140f578a0a73f288fdf821ace9fea6a60 Mon Sep 17 00:00:00 2001
+From 4be55bf4d858def31a6ed1bea77d7dbcff79845e Mon Sep 17 00:00:00 2001
 From: Ben Skeggs <bskeggs at redhat.com>
 Date: Mon, 8 Feb 2010 12:51:47 +1000
-Subject: [PATCH 2/2] set canDoBGNoneRoot
+Subject: [PATCH 1/4] set canDoBGNoneRoot
 
 ---
  src/nv_driver.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 
 diff --git a/src/nv_driver.c b/src/nv_driver.c
-index 248a151..b5bc0a7 100644
+index 0abe400..dd60b64 100644
 --- a/src/nv_driver.c
 +++ b/src/nv_driver.c
-@@ -673,6 +673,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
+@@ -658,6 +658,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
  
  	/* Set pScrn->monitor */
  	pScrn->monitor = pScrn->confScreen->monitor;
@@ -20,5 +20,5 @@ index 248a151..b5bc0a7 100644
  	/*
  	 * The first thing we should figure out is the depth, bpp, etc.
 -- 
-1.6.6.1
+1.7.1
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/sources,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -p -r1.51 -r1.52
--- sources	8 Feb 2010 05:07:33 -0000	1.51
+++ sources	4 Jul 2010 23:26:54 -0000	1.52
@@ -1 +1 @@
-155fc40dd5d17f91f87d09a94d5551a8  xf86-video-nouveau-0.0.16-20100205gite75dd23.tar.bz2
+4a5e81e82d56d511fc8272d0ea79844e  xf86-video-nouveau-0.0.16-20100615gitdb98ad2.tar.bz2


Index: xorg-x11-drv-nouveau.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/xorg-x11-drv-nouveau.spec,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -p -r1.64 -r1.65
--- xorg-x11-drv-nouveau.spec	8 Feb 2010 04:22:53 -0000	1.64
+++ xorg-x11-drv-nouveau.spec	4 Jul 2010 23:26:54 -0000	1.65
@@ -7,8 +7,8 @@
 # git clone git://git.freedesktop.org/git/nouveau/xf86-video-nouveau
 # git-archive --format=tar --prefix=xf86-video-nouveau-0.0.10/ %{git_version} | bzip2 > xf86-video-nouveau-0.0.10-%{gitdate}.tar.bz2
 
-%define gitdate 20100205
-%define git_version e75dd23
+%define gitdate 20100615
+%define git_version db98ad2
 
 %define snapshot %{gitdate}git%{git_version}
 
@@ -19,7 +19,7 @@ Name:      xorg-x11-drv-nouveau
 # need to set an epoch to get version number in sync with upstream
 Epoch:     1
 Version:   %{nouveau_version}
-Release:   0.%{snapshot}%{?dist}
+Release:   8.%{snapshot}%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -32,17 +32,20 @@ ExcludeArch: s390 s390x
 
 BuildRequires: libtool automake autoconf
 BuildRequires: xorg-x11-server-devel > 1.7.99.3-3
-BuildRequires: libdrm-devel >= 2.4.17-2
+BuildRequires: libdrm-devel >= 2.4.18-0.1
 BuildRequires: mesa-libGL-devel
-BuildRequires: kernel-headers >= 2.6.31
+BuildRequires: libudev-devel
 
 Requires:  hwdata
 Requires:  xorg-x11-server-Xorg > 1.7.99.3-3
-Requires:  libdrm >= 2.4.17-2
-Requires:  kernel-drm-nouveau = 15
-
-Patch0: nouveau-bicubic-2x.patch
-Patch1: nouveau-bgnr.patch
+Requires:  libdrm >= 2.4.18-0.1
+Requires:  kernel-drm-nouveau = 16
+Requires:  libudev
+
+Patch0: nouveau-bgnr.patch
+Patch1: nouveau-nva0-corruption-fix.patch
+Patch2: nouveau-exa-no-pa_fa.patch
+Patch3: nouveau-zfill-fallback.patch
 
 %description 
 X.Org X11 nouveau video driver.
@@ -50,12 +53,14 @@ X.Org X11 nouveau video driver.
 %prep
 %setup -q -n %{tarball}-%{version}
 
-%patch0 -p1 -b .bicubic
-%patch1 -p1 -b .bgnr
+%patch0 -p1 -b .bgnr
+%patch1 -p1 -b .tile7000
+%patch2 -p1 -b .no_wfb
+%patch3 -p1 -b .zfill
 
 %build
 autoreconf -v --install
-%configure --disable-static --with-kms=yes
+%configure --disable-static
 
 make
 
@@ -75,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man4/nouveau.4*
 
 %changelog
+* Mon Jul 5 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.16-8.20100615gitdb98ad2
+- bring in latest upstream
+
 * Mon Feb 08 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.16-0.20100205gite75dd23 
 - pull in latest upstream, no longer any non-kms support
 


--- nouveau-bicubic-2x.patch DELETED ---


--- nouveau-nv50-nva0-noaccel.patch DELETED ---



More information about the scm-commits mailing list