diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/xf86-video-nouveau-fixup-ABI.patch | 64 | ||||
-rw-r--r-- | gnu/packages/xorg.scm | 3 |
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))) |