rpms/xorg-x11-drv-nouveau/devel nouveau-tile7000.patch, NONE, 1.1 nouveau-bicubic-2x.patch, 1.10, 1.11 nouveau-multiple-xserver.patch, 1.12, 1.13 nouveau-transition-hack.patch, 1.13, 1.14 xorg-x11-drv-nouveau.spec, 1.55, 1.56

Ben Skeggs bskeggs at fedoraproject.org
Wed Sep 9 06:38:41 UTC 2009


Author: bskeggs

Update of /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14324

Modified Files:
	nouveau-bicubic-2x.patch nouveau-multiple-xserver.patch 
	nouveau-transition-hack.patch xorg-x11-drv-nouveau.spec 
Added Files:
	nouveau-tile7000.patch 
Log Message:
* Wed Sep 09 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.15-8.20090904git2b5ec6a
- nouveau-tile7000.patch: workaround some display corruption on G8x



nouveau-tile7000.patch:
 drmmode_display.c |    4 ++--
 nv_driver.c       |    7 ++++++-
 nv_type.h         |    3 ++-
 3 files changed, 10 insertions(+), 4 deletions(-)

--- NEW FILE nouveau-tile7000.patch ---
>From 3d2f2ba56b85fde22de2244cb9122708b461b5a7 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs at redhat.com>
Date: Wed, 9 Sep 2009 16:26:25 +1000
Subject: [PATCH 4/4] f12: use 0x7000 flags for scanout to avoid mixed tile mode corruption

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

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 266d3a6..6cbced7 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -604,7 +604,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 = (drmmode->cpp == 2 || pNv->pf_ok) ? 0x7000 : 0x7a00;
 		ah = NOUVEAU_ALIGN(height, 1 << (tile_mode + 2));
 		pitch = NOUVEAU_ALIGN(width * drmmode->cpp, 64);
 	} else {
@@ -1225,7 +1225,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 = (scrn->bitsPerPixel == 16 || pNv->pf_ok) ? 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 5838ce7..a70dee2 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -696,6 +696,7 @@ NVPreInitDRM(ScrnInfoPtr pScrn)
 {
 	NVPtr pNv = NVPTR(pScrn);
 	drmVersion *version;
+	uint64_t val;
 	char *bus_id;
 	int ret;
 
@@ -742,6 +743,10 @@ NVPreInitDRM(ScrnInfoPtr pScrn)
 		return FALSE;
 	}
 
+	ret = nouveau_device_get_param(pNv->dev, 0xdeadcafe00000003, &val);
+	if (ret == 0)
+		pNv->pf_ok = (val == 1);
+
 	/* Check if KMS is enabled before we do anything, we don't want to
 	 * go stomping on registers behind its back
 	 */
@@ -1254,7 +1259,7 @@ NVMapMem(ScrnInfoPtr pScrn)
 	size = pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
 	if (pNv->Architecture >= NV_ARCH_50 && pNv->wfb_enabled) {
 		tile_mode = 4;
-		tile_flags = pScrn->bitsPerPixel == 16 ? 0x7000 : 0x7a00;
+		tile_flags = (pScrn->bitsPerPixel == 16 || pNv->pf_ok) ? 0x7000 : 0x7a00;
 		size *= NOUVEAU_ALIGN(pScrn->virtualY, (1 << (tile_mode + 2)));
 	} else {
 		size *= pScrn->virtualY;
diff --git a/src/nv_type.h b/src/nv_type.h
index 285392d..089b090 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -113,6 +113,8 @@ typedef struct _NVRec {
     /* Accessible AGP size */
     unsigned long	AGPSize;
 
+    Bool pf_ok;
+
     /* Various pinned memory regions */
     struct nouveau_bo * scanout;
     struct nouveau_bo * offscreen;
-- 
1.6.4.2


nouveau-bicubic-2x.patch:
 nv30_xv_tex.c |    2 +-
 nv40_xv_tex.c |    3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

Index: nouveau-bicubic-2x.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/nouveau-bicubic-2x.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -r1.10 -r1.11
--- nouveau-bicubic-2x.patch	4 Sep 2009 00:44:52 -0000	1.10
+++ nouveau-bicubic-2x.patch	9 Sep 2009 06:38:38 -0000	1.11
@@ -1,7 +1,7 @@
 From 669fc0a22b4c2b6b8c9572187e151e426f039227 Mon Sep 17 00:00:00 2001
 From: Ben Skeggs <skeggsb at beleth.localdomain>
 Date: Mon, 4 May 2009 17:04:34 +1000
-Subject: [PATCH 3/3] xv: only use bicubic filtering when scaling >=2x
+Subject: [PATCH 3/4] xv: only use bicubic filtering when scaling >=2x
 
 ---
  src/nv30_xv_tex.c |    2 +-

nouveau-multiple-xserver.patch:
 nv_driver.c |   85 ++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 57 insertions(+), 28 deletions(-)

Index: nouveau-multiple-xserver.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/nouveau-multiple-xserver.patch,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- nouveau-multiple-xserver.patch	4 Sep 2009 00:44:52 -0000	1.12
+++ nouveau-multiple-xserver.patch	9 Sep 2009 06:38:38 -0000	1.13
@@ -1,7 +1,7 @@
 From bc70e6309b35633b76c48126bb967d4d85bce4df Mon Sep 17 00:00:00 2001
 From: Ben Skeggs <bskeggs at redhat.com>
 Date: Sun, 28 Jun 2009 20:35:54 +1000
-Subject: [PATCH 1/3] f12: hack to support multiple xserver instances
+Subject: [PATCH 1/4] f12: hack to support multiple xserver instances
 
 ---
  src/nv_driver.c |   84 +++++++++++++++++++++++++++++++++++++-----------------

nouveau-transition-hack.patch:
 drmmode_display.c |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 169 insertions(+), 3 deletions(-)

Index: nouveau-transition-hack.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/devel/nouveau-transition-hack.patch,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- nouveau-transition-hack.patch	4 Sep 2009 00:44:52 -0000	1.13
+++ nouveau-transition-hack.patch	9 Sep 2009 06:38:38 -0000	1.14
@@ -1,7 +1,7 @@
 From bb8bda06e19ac2181fd96a159e6e12ee4f5d108d Mon Sep 17 00:00:00 2001
 From: Ben Skeggs <bskeggs at redhat.com>
 Date: Tue, 30 Jun 2009 10:52:07 +1000
-Subject: [PATCH 2/3] f12: transitions
+Subject: [PATCH 2/4] f12: transitions
 
 ---
  src/drmmode_display.c |  171 ++++++++++++++++++++++++++++++++++++++++++++++++-


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.55
retrieving revision 1.56
diff -u -p -r1.55 -r1.56
--- xorg-x11-drv-nouveau.spec	4 Sep 2009 00:48:27 -0000	1.55
+++ xorg-x11-drv-nouveau.spec	9 Sep 2009 06:38:38 -0000	1.56
@@ -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:   7.%{snapshot}%{?dist}
+Release:   8.%{snapshot}%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -47,6 +47,7 @@ Patch2: nouveau-multiple-xserver.patch
 Patch3: nouveau-transition-hack.patch
 Patch6: nouveau-bicubic-2x.patch
 Patch7: nouveau-bgnr.patch
+Patch8: nouveau-tile7000.patch
 
 %description 
 X.Org X11 nouveau video driver.
@@ -60,6 +61,7 @@ X.Org X11 nouveau video driver.
 %patch3 -p1 -b .transition
 %patch6 -p1 -b .bicubic
 %patch7 -p1 -b .bgnr
+%patch8 -p1 -b .tile7000
 
 %build
 autoreconf -v --install
@@ -83,6 +85,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man4/nouveau.4*
 
 %changelog
+* Wed Sep 09 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.15-8.20090904git2b5ec6a
+- nouveau-tile7000.patch: workaround some display corruption on G8x
+
 * Fri Sep 04 2009 Ben Skeggs <bskeggs at redhat.com> 0.0.15-7.20090904git2b5ec6a
 - fix cursor being left enabled on wrong display
 




More information about the fedora-extras-commits mailing list