aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch64
-rw-r--r--gnu/packages/xorg.scm3
3 files changed, 67 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 8f042f118e..f25548f137 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1887,6 +1887,7 @@ dist_patch_DATA = \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-mach64-bool-to-boolean.patch \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
+ %D%/packages/patches/xf86-video-nouveau-fixup-ABI.patch \
%D%/packages/patches/xf86-video-savage-xorg-compat.patch \
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch \
diff --git a/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch b/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch
new file mode 100644
index 0000000000..a18e3f8ab9
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch
@@ -0,0 +1,64 @@
+From e80e73ced69b15662103d0fd6837db4ce6c6eb5b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 13 Jul 2020 09:20:15 +1000
+Subject: [PATCH] nouveau: fixup driver for new X server ABI
+
+---
+ src/compat-api.h | 4 ++++
+ src/nouveau_exa.c | 2 +-
+ src/nv_driver.c | 6 +++---
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index fde2f4b..8a1fcf9 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -102,4 +102,8 @@
+
+ #endif
+
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
++#define secondary_dst slave_dst
++#endif
++
+ #endif
+diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
+index 55df6f8..db3b112 100644
+--- a/src/nouveau_exa.c
++++ b/src/nouveau_exa.c
+@@ -157,7 +157,7 @@ nouveau_exa_destroy_pixmap(ScreenPtr pScreen, void *priv)
+
+ #ifdef NOUVEAU_PIXMAP_SHARING
+ static Bool
+-nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **handle_p)
++nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr secondary, void **handle_p)
+ {
+ struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
+ struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index e72a6b6..f9ab4af 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -559,16 +559,16 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty)
+ {
+ RegionRec pixregion;
+
+- PixmapRegionInit(&pixregion, dirty->slave_dst);
++ PixmapRegionInit(&pixregion, dirty->secondary_dst);
+
+- DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
++ DamageRegionAppend(&dirty->secondary_dst->drawable, &pixregion);
+ #ifdef HAS_DIRTYTRACKING_ROTATION
+ PixmapSyncDirtyHelper(dirty);
+ #else
+ PixmapSyncDirtyHelper(dirty, &pixregion);
+ #endif
+
+- DamageRegionProcessPending(&dirty->slave_dst->drawable);
++ DamageRegionProcessPending(&dirty->secondary_dst->drawable);
+ RegionUninit(&pixregion);
+ }
+
+--
+2.33.1
+
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 6c36ef3053..17e24173a6 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3237,7 +3237,8 @@ supported, and the RENDER extension is not accelerated by this driver.")
(uri (string-append "mirror://xorg/individual/driver/xf86-video-nouveau-"
version ".tar.bz2"))
(sha256
- (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9"))))
+ (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9"))
+ (patches (search-patches "xf86-video-nouveau-fixup-ABI.patch"))))
(build-system gnu-build-system)
(inputs `(("xorg-server" ,xorg-server)))
(native-inputs `(("pkg-config" ,pkg-config)))