diff --git a/app/emulation/spice-protocol/ympbuild b/app/emulation/spice-protocol/ympbuild index a74ef032..18e6a785 100644 --- a/app/emulation/spice-protocol/ympbuild +++ b/app/emulation/spice-protocol/ympbuild @@ -27,6 +27,6 @@ build(){ } package(){ - ninja -C build + ninja -C build install } diff --git a/x11/drivers/xf86-video-ati/xf86-video-ati-19.1.0-upstream_fixes-1.patch b/x11/drivers/xf86-video-ati/xf86-video-ati-19.1.0-upstream_fixes-1.patch new file mode 100644 index 00000000..551b8178 --- /dev/null +++ b/x11/drivers/xf86-video-ati/xf86-video-ati-19.1.0-upstream_fixes-1.patch @@ -0,0 +1,464 @@ +Submitted By: Douglas R. Reno +Date: 2021-08-11 +Initial Package Version: 19.1.0 +Upstream Status: Applied +Origin: Upstream commits after 19.1.0 release. +Description: Fixes several performance regressions on some ATI + graphics cards. Also rolls the fix for compiling + with GCC-10 into the source tree, and adapts the + driver to build with the next minor version of + Xorg-Server (anything that uses master/slave terms + will fail to build). On a SysV machine with an ATI + card, this nets a 4x speed improvement, and the + capability of running GNOME and KDE Plasma without + problems. + +diff -Naurp xf86-video-ati-19.1.0.orig/man/radeon.man xf86-video-ati-19.1.0/man/radeon.man +--- xf86-video-ati-19.1.0.orig/man/radeon.man 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/man/radeon.man 2021-07-29 16:27:10.685285445 -0500 +@@ -290,7 +290,7 @@ on. If this option is set, the default v + 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 -Naurp xf86-video-ati-19.1.0.orig/src/compat-api.h xf86-video-ati-19.1.0/src/compat-api.h +--- xf86-video-ati-19.1.0.orig/src/compat-api.h 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/compat-api.h 2021-07-29 16:27:49.721971221 -0500 +@@ -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 -Naurp xf86-video-ati-19.1.0.orig/src/drmmode_display.c xf86-video-ati-19.1.0/src/drmmode_display.c +--- xf86-video-ati-19.1.0.orig/src/drmmode_display.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/drmmode_display.c 2021-07-29 16:40:03.226063398 -0500 +@@ -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 ++#endif + + #include "drmmode_display.h" + +@@ -720,7 +722,7 @@ drmmode_crtc_prime_scanout_update(xf86Cr + 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; + } +@@ -1275,7 +1277,7 @@ drmmode_show_cursor (xf86CrtcPtr crtc) + arg.hot_y = yhot; + + ret = drmIoctl(pRADEONEnt->fd, DRM_IOCTL_MODE_CURSOR2, &arg); +- if (ret == -EINVAL) ++ if (ret == -1 && errno == EINVAL) + use_set_cursor2 = FALSE; + else + return; +@@ -1356,7 +1358,7 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr c + + 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 -Naurp xf86-video-ati-19.1.0.orig/src/drmmode_display.h xf86-video-ati-19.1.0/src/drmmode_display.h +--- xf86-video-ati-19.1.0.orig/src/drmmode_display.h 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/drmmode_display.h 2021-07-29 16:24:44.570461234 -0500 +@@ -262,7 +262,7 @@ Bool drmmode_wait_vblank(xf86CrtcPtr crt + uint64_t *ust, uint32_t *result_seq); + + +-miPointerSpriteFuncRec drmmode_sprite_funcs; ++extern miPointerSpriteFuncRec drmmode_sprite_funcs; + + + #endif +diff -Naurp xf86-video-ati-19.1.0.orig/src/evergreen_state.h xf86-video-ati-19.1.0/src/evergreen_state.h +--- xf86-video-ati-19.1.0.orig/src/evergreen_state.h 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/evergreen_state.h 2021-07-29 16:29:19.799246069 -0500 +@@ -350,7 +350,7 @@ extern void *RADEONEXACreatePixmap2(Scre + 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 -Naurp xf86-video-ati-19.1.0.orig/src/r600_state.h xf86-video-ati-19.1.0/src/r600_state.h +--- xf86-video-ati-19.1.0.orig/src/r600_state.h 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/r600_state.h 2021-07-29 16:29:36.132114565 -0500 +@@ -321,6 +321,6 @@ extern void *RADEONEXACreatePixmap2(Scre + 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 -Naurp xf86-video-ati-19.1.0.orig/src/radeon_dri2.c xf86-video-ati-19.1.0/src/radeon_dri2.c +--- xf86-video-ati-19.1.0.orig/src/radeon_dri2.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon_dri2.c 2021-07-29 16:45:41.467337925 -0500 +@@ -729,7 +729,9 @@ radeon_dri2_exchange_buffers(DrawablePtr + struct dri2_buffer_priv *front_priv = front->driverPrivate; + struct dri2_buffer_priv *back_priv = back->driverPrivate; + ScreenPtr screen = draw->pScreen; ++#ifdef USE_GLAMOR + RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(screen)); ++#endif + RegionRec region; + int tmp; + +diff -Naurp xf86-video-ati-19.1.0.orig/src/radeon_exa.c xf86-video-ati-19.1.0/src/radeon_exa.c +--- xf86-video-ati-19.1.0.orig/src/radeon_exa.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon_exa.c 2021-07-29 16:30:48.280533631 -0500 +@@ -282,7 +282,7 @@ void RADEONEXADestroyPixmap(ScreenPtr pS + free(driverPriv); + } + +-Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_handle) ++Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr secondary, void **fd_handle) + { + struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix); + +diff -Naurp xf86-video-ati-19.1.0.orig/src/radeon_glamor.c xf86-video-ati-19.1.0/src/radeon_glamor.c +--- xf86-video-ati-19.1.0.orig/src/radeon_glamor.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon_glamor.c 2021-07-29 16:31:05.112398098 -0500 +@@ -366,7 +366,7 @@ radeon_glamor_set_pixmap_bo(DrawablePtr + + + 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 -Naurp xf86-video-ati-19.1.0.orig/src/radeon.h xf86-video-ati-19.1.0/src/radeon.h +--- xf86-video-ati-19.1.0.orig/src/radeon.h 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon.h 2021-07-29 16:30:34.626643574 -0500 +@@ -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 +@@ -790,19 +790,18 @@ static inline Bool radeon_set_pixmap_bo( + + static inline struct radeon_buffer *radeon_get_pixmap_bo(PixmapPtr pPix) + { +-#ifdef USE_GLAMOR + RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pPix->drawable.pScreen)); +- ++#ifdef USE_GLAMOR + if (info->use_glamor) { + struct radeon_pixmap *priv; + priv = radeon_get_pixmap_private(pPix); + return priv ? priv->bo : NULL; + } else + #endif +- { +- struct radeon_exa_pixmap_priv *driver_priv; +- driver_priv = exaGetPixmapDriverPrivate(pPix); +- return driver_priv ? driver_priv->bo : NULL; ++ if (info->accelOn) { ++ struct radeon_exa_pixmap_priv *driver_priv; ++ driver_priv = exaGetPixmapDriverPrivate(pPix); ++ return driver_priv ? driver_priv->bo : NULL; + } + + return NULL; +@@ -896,7 +895,7 @@ radeon_pixmap_get_fb(PixmapPtr pix) + handle); + } + +- return *fb_ptr; ++ return fb_ptr ? *fb_ptr : NULL; + } + + +diff -Naurp xf86-video-ati-19.1.0.orig/src/radeon_kms.c xf86-video-ati-19.1.0/src/radeon_kms.c +--- xf86-video-ati-19.1.0.orig/src/radeon_kms.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon_kms.c 2021-07-29 16:37:14.531422523 -0500 +@@ -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 dir + 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 dir + #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(xf86Cr + 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(PixmapDirtyUpd + #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(PixmapDirtyUpdat + 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(xf86CrtcP + 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(xf86CrtcP + 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(xf86 + 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(PixmapDirtyU + 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(BLOCK + (*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 + 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 +diff -Naurp xf86-video-ati-19.1.0.orig/src/radeon_present.c xf86-video-ati-19.1.0/src/radeon_present.c +--- xf86-video-ati-19.1.0.orig/src/radeon_present.c 2019-10-15 11:16:29.000000000 -0500 ++++ xf86-video-ati-19.1.0/src/radeon_present.c 2021-07-29 16:38:30.019814341 -0500 +@@ -254,7 +254,9 @@ radeon_present_check_flip(RRCrtcPtr crtc + 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 + 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 + "normal if using PRIME render offloading)\n"); + priv->fb_failed = TRUE; + } ++#endif + + return FALSE; + } diff --git a/x11/drivers/xf86-video-ati-/ympbuild b/x11/drivers/xf86-video-ati/ympbuild similarity index 71% rename from x11/drivers/xf86-video-ati-/ympbuild rename to x11/drivers/xf86-video-ati/ympbuild index 20074612..e6d1e2f2 100644 --- a/x11/drivers/xf86-video-ati-/ympbuild +++ b/x11/drivers/xf86-video-ati/ympbuild @@ -7,18 +7,24 @@ description='ATI video driver' email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') -source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/archive/xf86-video-ati-19.1.0/xf86-video-ati-xf86-video-ati-19.1.0.tar.gz') +source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/archive/xf86-video-ati-19.1.0/xf86-video-ati-xf86-video-ati-19.1.0.tar.gz' + 'xf86-video-ati-19.1.0-upstream_fixes-1.patch') depends=() makedepends=() -md5sums=('fd01d83507660e3be37fe679af822ce8') +md5sums=('fd01d83507660e3be37fe679af822ce8' + 'SKIP') group=(x11.drivers) uses=() arch=('x86_64') cd $name-$name-$version +prepare(){ + patch -Np1 -i ../xf86-video-ati-19.1.0-upstream_fixes-1.patch +} + setup(){ - ./autogen.sh + autoreconf -fvi ./configure --prefix=/usr \ --libdir=/usr/lib64/ } diff --git a/x11/drivers/xf86-video-geode-/ympbuild b/x11/drivers/xf86-video-geode-/ympbuild deleted file mode 100644 index 272df05f..00000000 --- a/x11/drivers/xf86-video-geode-/ympbuild +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -name='xf86-video-geode' -release='1' -version='2.11.20' -url='https://gitlab.freedesktop.org/xorg/driver/xf86-video-geode' -description='AMD Geode GX2 and LX video driver' -email='bayramk@gmail.com' -maintainer='bk' -license=('GPLv3') -source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-geode/-/archive/xf86-video-geode-2.11.20/xf86-video-geode-xf86-video-geode-2.11.20.tar.gz') -depends=() -makedepends=() -md5sums=('92610d3d6ae3b66cebf0d995af57a2b2') -group=(x11.drivers) -uses=() -arch=('x86_64') - -cd $name-$name-$version - -setup(){ - ./autogen.sh - ./configure --prefix=/usr \ - --libdir=/usr/lib64/ -} - -build(){ - make -} - -package(){ - make install -} - diff --git a/x11/drivers/xf86-video-intel-/ympbuild b/x11/drivers/xf86-video-intel-/ympbuild deleted file mode 100644 index 6d830baa..00000000 --- a/x11/drivers/xf86-video-intel-/ympbuild +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -name='xf86-video-intel' -release='1' -version='2.99.917' -url='https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel' -description='X.Org driver for Intel cards' -email='bayramk@gmail.com' -maintainer='bk' -license=('GPLv3') -source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/archive/2.99.917/xf86-video-intel-2.99.917.tar.gz') -depends=() -makedepends=() -md5sums=('d64f75756e20c39d94af45f12cfb5a7b') -group=(x11.drivers) -uses=() -arch=('x86_64') - -cd $name-$version - -setup(){ - meson setup build --prefix=/usr \ - --libdir=/usr/lib64/ -} - -build(){ - ninja -C build -} - -package(){ - ninja -C build install -} - diff --git a/x11/drivers/xf86-video-intel/ympbuild b/x11/drivers/xf86-video-intel/ympbuild new file mode 100644 index 00000000..23e78994 --- /dev/null +++ b/x11/drivers/xf86-video-intel/ympbuild @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +name='xf86-video-intel' +release='1' +version='2.99.917' +url='https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel' +description='X.Org driver for Intel cards' +email='bayramk@gmail.com' +maintainer='bk' +license=('GPLv3') +source=('https://salsa.debian.org/xorg-team/driver/xserver-xorg-video-intel/-/archive/xserver-xorg-video-intel-2_2.99.917+git20210115-1/xserver-xorg-video-intel-xserver-xorg-video-intel-2_2.99.917+git20210115-1.tar.gz') +depends=() +makedepends=() +md5sums=('65da7b24b5fe8ccaf94c387d81ecd623') +group=(x11.drivers) +uses=() +arch=('x86_64') + +_name=xserver-xorg-video-intel +_version=2_2.99.917+git20210115-1 + +cd ${_name}-${_name}-${_version} + +unset CFLAGS +unset CXXFLAGS + +setup(){ + autoreconf -vfi + ./configure --prefix=/usr \ + --libdir=/usr/lib64/ \ + --with-default-dri=3 +} + +build(){ + make +} + +package(){ + make install +} + diff --git a/x11/drivers/xf86-video-nouveau/xorg-server-21.1.diff b/x11/drivers/xf86-video-nouveau/xorg-server-21.1.diff new file mode 100644 index 00000000..03d0b80c --- /dev/null +++ b/x11/drivers/xf86-video-nouveau/xorg-server-21.1.diff @@ -0,0 +1,50 @@ +diff --git a/src/compat-api.h b/src/compat-api.h +index fde2f4b1cfde75875c07bfe13524dc6ba2661382..8a1fcf9be1c5d1ceb48a50f2ed533d93ec7ff4c7 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 55df6f8f11c9e14b1891e5c841faef10c17f0a35..db3b112a2db70f8e902e54aa3af99e51e7d0c6f7 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 e72a6b65a81119f12f3608295a4547762a866ad7..f9ab4af19361d99d74f580d1ff3f28d49843e8b0 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); + } + diff --git a/x11/drivers/xf86-video-neuveau-/ympbuild b/x11/drivers/xf86-video-nouveau/ympbuild similarity index 74% rename from x11/drivers/xf86-video-neuveau-/ympbuild rename to x11/drivers/xf86-video-nouveau/ympbuild index 8d57b385..d8b99f21 100644 --- a/x11/drivers/xf86-video-neuveau-/ympbuild +++ b/x11/drivers/xf86-video-nouveau/ympbuild @@ -7,18 +7,24 @@ description='Accelerated Open Source driver for nVidia cards' email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') -source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/xf86-video-nouveau-1.0.17/xf86-video-nouveau-xf86-video-nouveau-1.0.17.tar.gz') +source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/xf86-video-nouveau-1.0.17/xf86-video-nouveau-xf86-video-nouveau-1.0.17.tar.gz' + 'xorg-server-21.1.diff') depends=() makedepends=() -md5sums=('25bff83c14f949979026a691b8922b7b') +md5sums=('25bff83c14f949979026a691b8922b7b' + 'SKIP') group=(x11.drivers) uses=() arch=('x86_64') cd $name-$name-$version +prepare(){ + patch -Np1 -i ../xorg-server-21.1.diff +} + setup(){ - ./autogen.sh + autoreconf -fvi ./configure --prefix=/usr \ --libdir=/usr/lib64/ } diff --git a/x11/drivers/xf86-video-omap-/ympbuild b/x11/drivers/xf86-video-omap-/ympbuild deleted file mode 100644 index f02513a2..00000000 --- a/x11/drivers/xf86-video-omap-/ympbuild +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -name='xf86-video-omap' -release='1' -version='0.4.5' -url='https://gitlab.freedesktop.org/xorg/driver/xf86-video-omap' -description='OMAP video driver' -email='bayramk@gmail.com' -maintainer='bk' -license=('GPLv3') -source=('https://gitlab.freedesktop.org/xorg/driver/xf86-video-omap/-/archive/xf86-video-omap-0.4.5/xf86-video-omap-xf86-video-omap-0.4.5.tar.gz') -depends=() -makedepends=() -md5sums=('9e37feb542b52ad43370955a41356604') -group=(x11.drivers) -uses=() -arch=('x86_64') - -cd $name-$name-$version - -setup(){ - ./autogen.sh - ./configure --prefix=/usr \ - --libdir=/usr/lib64/ -} - -build(){ - make -} - -package(){ - make install -} - diff --git a/x11/drivers/xf86-video-openchrome-/ympbuild b/x11/drivers/xf86-video-openchrome/ympbuild similarity index 54% rename from x11/drivers/xf86-video-openchrome-/ympbuild rename to x11/drivers/xf86-video-openchrome/ympbuild index a4bec7b0..0cef8158 100644 --- a/x11/drivers/xf86-video-openchrome-/ympbuild +++ b/x11/drivers/xf86-video-openchrome/ympbuild @@ -7,17 +7,21 @@ description='X.Org driver for VIA/S3G cardss' email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') -source=('https://www.x.org/archive/individual/driver/xf86-video-openchrome-0.6.0.tar.gz') +source=('https://salsa.debian.org/xorg-team/driver/xserver-xorg-video-openchrome/-/archive/xserver-xorg-video-openchrome-1_0.6.0-5/xserver-xorg-video-openchrome-xserver-xorg-video-openchrome-1_0.6.0-5.tar.gz') depends=(libXvMC) makedepends=() -md5sums=('7c2975c01979e50c25d2f1872ae78edb') +md5sums=('2b4c2da2a2ca05314b552cf76d45c8e1') group=(x11.drivers) uses=() arch=('x86_64') -cd $name-$version +_name="xserver-xorg-video-openchrome" +_version="1_0.6.0-5" + +cd ${_name}-${_name}-${_version} setup(){ + autoreconf -fvi ./configure --prefix=/usr \ --libdir=/usr/lib64/ } diff --git a/x11/drivers/xf86-video-qxl-/ympbuild b/x11/drivers/xf86-video-qxl/ympbuild similarity index 96% rename from x11/drivers/xf86-video-qxl-/ympbuild rename to x11/drivers/xf86-video-qxl/ympbuild index 426bcea9..efec0143 100644 --- a/x11/drivers/xf86-video-qxl-/ympbuild +++ b/x11/drivers/xf86-video-qxl/ympbuild @@ -18,7 +18,7 @@ arch=('x86_64') cd $name-$version setup(){ - ./autogen.sh + autoreconf -fvi ./configure --prefix=/usr \ --libdir=/usr/lib64/ }