xf86-video-ati: rebuild against xorg and add patches from upstream master

This commit is contained in:
dkwo 2021-12-27 17:47:08 +01:00 committed by Leah Neukirchen
parent 25104d95d1
commit a3bedda5c4
6 changed files with 527 additions and 2 deletions

View file

@ -0,0 +1,63 @@
From 3c7c84ed49564907a148ae99b03200e0be350060 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
Date: Fri, 26 Mar 2021 17:42:10 +0100
Subject: [PATCH] Guard local variable priv only used with glamor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes compile errors with glamor disabled:
../../src/radeon_present.c: In function radeon_present_check_flip:
../../src/radeon_present.c:281:21: error: invalid use of undefined type struct radeon_pixmap
281 | if (priv && priv->fb_failed)
| ^~
../../src/radeon_present.c:288:19: error: invalid use of undefined type struct radeon_pixmap
288 | if (priv && !priv->fb_failed) {
| ^~
../../src/radeon_present.c:292:10: error: invalid use of undefined type struct radeon_pixmap
292 | priv->fb_failed = TRUE;
| ^~
---
src/radeon_present.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/radeon_present.c b/src/radeon_present.c
index 494655c9..d010aa19 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -254,7 +254,9 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
xf86CrtcPtr xf86_crtc = crtc->devPrivate;
ScreenPtr screen = window->drawable.pScreen;
ScrnInfoPtr scrn = xf86_crtc->scrn;
+#ifdef USE_GLAMOR
struct radeon_pixmap *priv = radeon_get_pixmap_private(pixmap);
+#endif
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
RADEONInfoPtr info = RADEONPTR(scrn);
PixmapPtr screen_pixmap = screen->GetScreenPixmap(screen);
@@ -278,10 +280,13 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
return FALSE;
#endif
+#ifdef USE_GLAMOR
if (priv && priv->fb_failed)
return FALSE;
+#endif
if (!radeon_pixmap_get_fb(pixmap)) {
+#ifdef USE_GLAMOR
if (!priv)
priv = radeon_get_pixmap_private(pixmap);
@@ -291,6 +296,7 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
"normal if using PRIME render offloading)\n");
priv->fb_failed = TRUE;
}
+#endif
return FALSE;
}
--
GitLab

View file

@ -0,0 +1,27 @@
From 5eba006e4129e8015b822f9e1d2f1e613e252cda Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
Date: Tue, 2 Feb 2021 12:45:54 +0100
Subject: [PATCH] Only include dri.h with older versions of xserver
Not needed anymore with current versions.
---
src/drmmode_display.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3099a729..a58f24dd 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -45,7 +45,9 @@
#include "radeon_glamor.h"
#include "radeon_reg.h"
+#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,19,99,1,0)
#include <dri.h>
+#endif
#include "drmmode_display.h"
--
GitLab

View file

@ -0,0 +1,34 @@
From 77d9ab03ca20e683be4c40ccc879e201b538f7e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
Date: Fri, 26 Mar 2021 17:37:53 +0100
Subject: [PATCH] Guard local variable info only used with glamor
Fixes compiler warning with glamor disabled:
radeon_dri2.c: In function 'radeon_dri2_exchange_buffers':
radeon_dri2.c:732:19: error: unused variable 'info' [-Werror=unused-variable]
RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(screen));
^~~~
---
src/radeon_dri2.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 66a223d8..17983779 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -728,8 +728,9 @@ radeon_dri2_exchange_buffers(DrawablePtr draw, DRI2BufferPtr front, DRI2BufferPt
{
struct dri2_buffer_priv *front_priv = front->driverPrivate;
struct dri2_buffer_priv *back_priv = back->driverPrivate;
- ScreenPtr screen = draw->pScreen;
- RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(screen));
+#ifdef USE_GLAMOR
+ RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(draw->pScreen));
+#endif
RegionRec region;
int tmp;
--
GitLab

View file

@ -0,0 +1,368 @@
From 8da3e4561ef82bb78c9a17b8cd8bf139b9cfd680 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 13 Jul 2020 09:11:28 +1000
Subject: [PATCH] ati: cleanup terminology to use primary/secondary
The X server changed some API/ABIs here.
Based on amdgpu patch by Michel
---
man/radeon.man | 2 +-
src/compat-api.h | 6 ++++
src/drmmode_display.c | 4 +--
src/evergreen_state.h | 2 +-
src/r600_state.h | 2 +-
src/radeon.h | 10 +++---
src/radeon_exa.c | 2 +-
src/radeon_glamor.c | 2 +-
src/radeon_kms.c | 74 +++++++++++++++++++++----------------------
9 files changed, 55 insertions(+), 49 deletions(-)
diff --git a/man/radeon.man b/man/radeon.man
index dcebf537..247dcdb7 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -290,7 +290,7 @@ on. If this option is set, the default value of the property is 'on' or 'off'
accordingly. If this option isn't set, the default value of the property is
.B auto,
which means that TearFree is on for rotated outputs, outputs with RandR
-transforms applied and for RandR 1.4 slave outputs, otherwise off.
+transforms applied and for RandR 1.4 secondary outputs, otherwise off.
.TP
.BI "Option \*qAccelMethod\*q \*q" "string" \*q
Chooses between available acceleration architectures. Valid values are
diff --git a/src/compat-api.h b/src/compat-api.h
index f4e7524f..def6d3e4 100644
--- a/src/compat-api.h
+++ b/src/compat-api.h
@@ -34,4 +34,10 @@
#define BLOCKHANDLER_ARGS pScreen, pTimeout, pReadmask
#endif
+#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
+#define current_primary current_master
+#define primary_pixmap master_pixmap
+#define secondary_dst slave_dst
+#endif
+
#endif
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 72f96a0c..3099a729 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -720,7 +720,7 @@ drmmode_crtc_prime_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list,
ent) {
if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
- dirty->slave_dst =
+ dirty->secondary_dst =
drmmode_crtc->scanout[scanout_id].pixmap;
break;
}
@@ -1356,7 +1356,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
- PixmapStopDirtyTracking(dirty->src, dirty->slave_dst);
+ PixmapStopDirtyTracking(dirty->src, dirty->secondary_dst);
break;
}
}
diff --git a/src/evergreen_state.h b/src/evergreen_state.h
index 7e54e1c7..34ba87b6 100644
--- a/src/evergreen_state.h
+++ b/src/evergreen_state.h
@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
int *new_pitch);
extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
#endif
diff --git a/src/r600_state.h b/src/r600_state.h
index 34345996..567c3ca2 100644
--- a/src/r600_state.h
+++ b/src/r600_state.h
@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
int *new_pitch);
extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);
-extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **handle_p);
+extern Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **handle_p);
extern Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *handle);
#endif
diff --git a/src/radeon.h b/src/radeon.h
index e4a2ba66..68d7756a 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -182,18 +182,18 @@ typedef enum {
static inline ScreenPtr
-radeon_master_screen(ScreenPtr screen)
+radeon_primary_screen(ScreenPtr screen)
{
- if (screen->current_master)
- return screen->current_master;
+ if (screen->current_primary)
+ return screen->current_primary;
return screen;
}
static inline ScreenPtr
-radeon_dirty_master(PixmapDirtyUpdatePtr dirty)
+radeon_dirty_primary(PixmapDirtyUpdatePtr dirty)
{
- return radeon_master_screen(dirty->slave_dst->drawable.pScreen);
+ return radeon_primary_screen(dirty->secondary_dst->drawable.pScreen);
}
static inline DrawablePtr
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 268155ed..320ff992 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv)
free(driverPriv);
}
-Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle)
+Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr seconndary, void **fd_handle)
{
struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix);
diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
index f1098381..ccf99941 100644
--- a/src/radeon_glamor.c
+++ b/src/radeon_glamor.c
@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr drawable, PixmapPtr pixmap)
static Bool
-radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
+radeon_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr secondary,
void **handle_p)
{
ScreenPtr screen = pixmap->drawable.pScreen;
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index b3db7c41..62962d61 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -559,8 +559,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
if (dirty->rotation != RR_Rotate_0) {
dstregion = transform_region(damageregion,
&dirty->f_inverse,
- dirty->slave_dst->drawable.width,
- dirty->slave_dst->drawable.height);
+ dirty->secondary_dst->drawable.width,
+ dirty->secondary_dst->drawable.height);
} else
#endif
{
@@ -568,7 +568,7 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
dstregion = RegionDuplicate(damageregion);
RegionTranslate(dstregion, -dirty->x, -dirty->y);
- PixmapRegionInit(&pixregion, dirty->slave_dst);
+ PixmapRegionInit(&pixregion, dirty->secondary_dst);
RegionIntersect(dstregion, dstregion, &pixregion);
RegionUninit(&pixregion);
}
@@ -585,8 +585,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
if (RegionNil(region))
goto out;
- if (dirty->slave_dst->master_pixmap)
- DamageRegionAppend(&dirty->slave_dst->drawable, region);
+ if (dirty->secondary_dst->primary_pixmap)
+ DamageRegionAppend(&dirty->secondary_dst->drawable, region);
#ifdef HAS_DIRTYTRACKING_ROTATION
PixmapSyncDirtyHelper(dirty);
@@ -595,8 +595,8 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
#endif
radeon_cs_flush_indirect(src_scrn);
- if (dirty->slave_dst->master_pixmap)
- DamageRegionProcessPending(&dirty->slave_dst->drawable);
+ if (dirty->secondary_dst->primary_pixmap)
+ DamageRegionProcessPending(&dirty->secondary_dst->drawable);
out:
DamageEmpty(dirty->damage);
@@ -613,12 +613,12 @@ radeon_prime_scanout_update_abort(xf86CrtcPtr crtc, void *event_data)
void
radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr master_screen = radeon_dirty_master(dirty);
+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
PixmapDirtyUpdatePtr ent;
RegionPtr region;
- xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) {
- if (!radeon_dirty_src_equals(dirty, ent->slave_dst))
+ xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) {
+ if (!radeon_dirty_src_equals(dirty, ent->secondary_dst))
continue;
region = dirty_region(ent);
@@ -631,45 +631,45 @@ radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
#if HAS_SYNC_SHARED_PIXMAP
static Bool
-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr master_screen = radeon_dirty_master(dirty);
+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
- return !!master_screen->SyncSharedPixmap;
+ return !!primary_screen->SyncSharedPixmap;
}
static Bool
-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen;
+ ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen;
- return !!slave_screen->SyncSharedPixmap;
+ return !!secondary_screen->SyncSharedPixmap;
}
static void
call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr master_screen = radeon_dirty_master(dirty);
+ ScreenPtr primary_screen = radeon_dirty_primary(dirty);
- master_screen->SyncSharedPixmap(dirty);
+ primary_screen->SyncSharedPixmap(dirty);
}
#else /* !HAS_SYNC_SHARED_PIXMAP */
static Bool
-master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
{
- ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty));
+ ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty));
- return master_scrn->driverName == scrn->driverName;
+ return primary_scrn->driverName == scrn->driverName;
}
static Bool
-slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
+secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty)
{
- ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen);
+ ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen);
- return slave_scrn->driverName == scrn->driverName;
+ return secondary_scrn->driverName == scrn->driverName;
}
static void
@@ -684,12 +684,12 @@ call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty)
static xf86CrtcPtr
radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
int c;
- /* Find the CRTC which is scanning out from this slave pixmap */
+ /* Find the CRTC which is scanning out from this secondary pixmap */
for (c = 0; c < xf86_config->num_crtc; c++) {
xf86CrtcPtr xf86_crtc = xf86_config->crtc[c];
drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
@@ -714,7 +714,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) {
RegionPtr region;
- if (master_has_sync_shared_pixmap(scrn, dirty))
+ if (primary_has_sync_shared_pixmap(scrn, dirty))
call_sync_shared_pixmap(dirty);
region = dirty_region(dirty);
@@ -727,7 +727,7 @@ radeon_prime_scanout_do_update(xf86CrtcPtr crtc, unsigned scanout_id)
radeon_cs_flush_indirect(scrn);
RegionCopy(&drmmode_crtc->scanout_last_region, region);
RegionTranslate(region, -crtc->x, -crtc->y);
- dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap;
+ dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap;
}
redisplay_dirty(dirty, region);
@@ -754,7 +754,7 @@ radeon_prime_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t u
static void
radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
{
- ScreenPtr screen = dirty->slave_dst->drawable.pScreen;
+ ScreenPtr screen = dirty->secondary_dst->drawable.pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty);
@@ -818,7 +818,7 @@ radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty)
static void
radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent)
{
- ScreenPtr screen = ent->slave_dst->drawable.pScreen;
+ ScreenPtr screen = ent->secondary_dst->drawable.pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn);
xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent);
@@ -893,11 +893,11 @@ radeon_dirty_update(ScrnInfoPtr scrn)
if (screen->isGPU) {
PixmapDirtyUpdatePtr region_ent = ent;
- if (master_has_sync_shared_pixmap(scrn, ent)) {
- ScreenPtr master_screen = radeon_dirty_master(ent);
+ if (primary_has_sync_shared_pixmap(scrn, ent)) {
+ ScreenPtr primary_screen = radeon_dirty_primary(ent);
- xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) {
- if (radeon_dirty_src_equals(ent, region_ent->slave_dst))
+ xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) {
+ if (radeon_dirty_src_equals(ent, region_ent->secondary_dst))
break;
}
}
@@ -921,7 +921,7 @@ radeon_dirty_update(ScrnInfoPtr scrn)
RegionDestroy(region);
} else {
- if (slave_has_sync_shared_pixmap(scrn, ent))
+ if (secondary_has_sync_shared_pixmap(scrn, ent))
continue;
region = dirty_region(ent);
@@ -1216,7 +1216,7 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL)
(*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
pScreen->BlockHandler = RADEONBlockHandler_KMS;
- if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema)
+ if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema)
return;
if (!pScreen->isGPU)
@@ -2584,7 +2584,7 @@ CARD32 cleanup_black_fb(OsTimerPtr timer, CARD32 now, pointer data)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
int c;
- if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema)
+ if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema)
return 0;
/* Unreference the all-black FB created by RADEONLeaveVT_KMS. After
--
GitLab

View file

@ -0,0 +1,33 @@
From f223035f4ffcff2a9296d1e907a5193f8e8845a3 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 4 Feb 2020 16:38:06 -0500
Subject: [PATCH] Fix link failure with gcc 10
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without the 'extern' this looks like a definition not just a
declaration, in every file that includes the header. gcc 10 is stricter
about this kind of multiple definition.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
---
src/drmmode_display.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index 96eaef0a..8cd8a0a6 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -262,7 +262,7 @@ Bool drmmode_wait_vblank(xf86CrtcPtr crtc, drmVBlankSeqType type,
uint64_t *ust, uint32_t *result_seq);
-miPointerSpriteFuncRec drmmode_sprite_funcs;
+extern miPointerSpriteFuncRec drmmode_sprite_funcs;
#endif
--
GitLab

View file

@ -1,12 +1,12 @@
# Template file for 'xf86-video-ati'
pkgname=xf86-video-ati
version=19.1.0
revision=3
revision=4
build_style=gnu-configure
hostmakedepends="pkg-config"
makedepends="xorgproto eudev-libudev-devel libpciaccess-devel
libdrm-devel pixman-devel MesaLib-devel xorg-server-devel"
depends="virtual?xserver-abi-video-24_1 mesa-dri"
depends="virtual?xserver-abi-video-25_1 mesa-dri"
short_desc="Xorg ATI Radeon video driver"
maintainer="Orphaned <orphan@voidlinux.org>"
license="MIT"