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