import xorg-x11-drv-ati-19.1.0-1.el8
This commit is contained in:
parent
0780f7b216
commit
c008d4c046
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/xf86-video-ati-19.0.1.tar.bz2
|
SOURCES/xf86-video-ati-19.1.0.tar.bz2
|
||||||
|
@ -1 +1 @@
|
|||||||
e8899c2d237381d9278429a1427e02fcba1d5174 SOURCES/xf86-video-ati-19.0.1.tar.bz2
|
aea1d11c05531b03f2eb67c6785cddf6d7f30e5f SOURCES/xf86-video-ati-19.1.0.tar.bz2
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
From 2cbbd8648cdd27db8076565943b932ef81337053 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
|
||||||
Date: Fri, 20 Sep 2019 18:47:02 +0200
|
|
||||||
Subject: [PATCH xf86-video-ati] Don't set up black scanout buffer if LeaveVT
|
|
||||||
is called from CloseScreen
|
|
||||||
|
|
||||||
Avoids a crash described in
|
|
||||||
https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/merge_requests/43#note_223718
|
|
||||||
|
|
||||||
(Ported from amdgpu commit 5b8bc9fc505c551dcd9b0ed5ab835a49fa4f9fda)
|
|
||||||
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
|
|
||||||
---
|
|
||||||
src/radeon_kms.c | 10 +++++++++-
|
|
||||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
|
|
||||||
index 777fc14e..107c1ce7 100644
|
|
||||||
--- a/src/radeon_kms.c
|
|
||||||
+++ b/src/radeon_kms.c
|
|
||||||
@@ -2629,6 +2629,12 @@ void RADEONLeaveVT_KMS(ScrnInfoPtr pScrn)
|
|
||||||
unsigned w = 0, h = 0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
+ /* If we're called from CloseScreen, trying to clear the black
|
|
||||||
+ * scanout BO will likely crash and burn
|
|
||||||
+ */
|
|
||||||
+ if (!pScreen->GCperDepth[0])
|
|
||||||
+ goto hide_cursors;
|
|
||||||
+
|
|
||||||
/* Compute maximum scanout dimensions of active CRTCs */
|
|
||||||
for (i = 0; i < xf86_config->num_crtc; i++) {
|
|
||||||
crtc = xf86_config->crtc[i];
|
|
||||||
@@ -2701,8 +2707,10 @@ void RADEONLeaveVT_KMS(ScrnInfoPtr pScrn)
|
|
||||||
pScrn->displayWidth * info->pixel_bytes * pScrn->virtualY);
|
|
||||||
}
|
|
||||||
|
|
||||||
- TimerSet(NULL, 0, 1000, cleanup_black_fb, pScreen);
|
|
||||||
+ if (pScreen->GCperDepth[0])
|
|
||||||
+ TimerSet(NULL, 0, 1000, cleanup_black_fb, pScreen);
|
|
||||||
|
|
||||||
+ hide_cursors:
|
|
||||||
xf86_hide_cursors (pScrn);
|
|
||||||
|
|
||||||
radeon_drop_drm_master(pScrn);
|
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
33
SOURCES/0001-Handle-NULL-fb_ptr-in-pixmap_get_fb.patch
Normal file
33
SOURCES/0001-Handle-NULL-fb_ptr-in-pixmap_get_fb.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 4d84cf438e7f1bebf0053035ef0292e9fed257d1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
||||||
|
Date: Fri, 29 Nov 2019 16:37:32 +0100
|
||||||
|
Subject: [PATCH 1/2] Handle NULL fb_ptr in pixmap_get_fb
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
This can happen when HW acceleration is disabled.
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/188
|
||||||
|
|
||||||
|
Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
|
||||||
|
---
|
||||||
|
src/radeon.h | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/radeon.h b/src/radeon.h
|
||||||
|
index 2c913466..8e964805 100644
|
||||||
|
--- a/src/radeon.h
|
||||||
|
+++ b/src/radeon.h
|
||||||
|
@@ -896,7 +896,7 @@ radeon_pixmap_get_fb(PixmapPtr pix)
|
||||||
|
handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
- return *fb_ptr;
|
||||||
|
+ return fb_ptr ? *fb_ptr : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -0,0 +1,72 @@
|
|||||||
|
From c0eb5dbd9c1db6b6d5b1574bcd8c584170d7ab54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
||||||
|
Date: Wed, 27 Nov 2019 20:50:58 +0400
|
||||||
|
Subject: [PATCH 2/2] Don't crash X server if GPU acceleration is not available
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Commit d1d8e3c8d0a0a0394d395eba171460501745209b causes X server
|
||||||
|
to fail on startup when GPU acceleration is not working (or is
|
||||||
|
disabled). The reason is that `radeon_get_pixmap_bo` function
|
||||||
|
gets called too early (before EXA has been initialized) and
|
||||||
|
fails with an assert:
|
||||||
|
|
||||||
|
#0 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
|
||||||
|
#1 0x76ab1c6c in __GI_abort () at abort.c:79
|
||||||
|
#2 0x76ac0b64 in __assert_fail_base (fmt=0x76bfbce4 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7658c80c "key->initialized", file=<optimized out>, line=121,
|
||||||
|
function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:92
|
||||||
|
#3 0x76ac0c0c in __GI___assert_fail (assertion=0x7658c80c "key->initialized", file=0x7658c9d0 "../include/privates.h", line=121,
|
||||||
|
function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:101
|
||||||
|
#4 0x76579e6c in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at ../include/privates.h:121
|
||||||
|
#5 0x7657a954 in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at exa.c:70
|
||||||
|
#6 dixGetPrivate (key=<optimized out>, privates=<optimized out>) at ../include/privates.h:136
|
||||||
|
#7 exaGetPixmapDriverPrivate (pPix=<optimized out>) at exa.c:68
|
||||||
|
#8 0x7623d460 in radeon_get_pixmap_bo (pPix=0x71c1b8) at radeon.h:804
|
||||||
|
#9 radeon_get_pixmap_handle (pixmap=0x71c1b8, handle=0x7fa22328) at radeon_bo_helper.c:357
|
||||||
|
#10 0x76244458 in radeon_pixmap_get_fb (pix=0x71c1b8) at radeon.h:886
|
||||||
|
#11 drmmode_set_mode_major (crtc=0x691860, mode=0x69191c, rotation=<optimized out>, x=<optimized out>, y=<optimized out>) at drmmode_display.c:918
|
||||||
|
#12 0x762467e8 in drmmode_set_desired_modes (pScrn=0x67c678, drmmode=<optimized out>, set_hw=1) at drmmode_display.c:3128
|
||||||
|
#13 0x0047bfa4 in MapWindow (client=0x669ec8, pWin=0x7206c0) at window.c:2722
|
||||||
|
#14 MapWindow (pWin=0x7206c0, client=0x669ec8) at window.c:2665
|
||||||
|
#15 0x00449650 in dix_main (argc=3, argv=0x7fa22604, envp=<optimized out>) at main.c:247
|
||||||
|
#16 0x76ab2198 in __libc_start_main (main=0x42db10 <main>, argc=3, argv=0x7fa22604, init=<optimized out>, fini=0x606434 <__libc_csu_fini>, rtld_fini=0x77229930 <_dl_fini>,
|
||||||
|
stack_end=0x7fa225e0) at libc-start.c:308
|
||||||
|
#17 0x0042db80 in __start () at ../sysdeps/mips/start.S:110
|
||||||
|
|
||||||
|
Don't call `exaGetPixmapDriverPrivate` if the acceleration (EXA) is not
|
||||||
|
enabled [yet] to avoid the problem.
|
||||||
|
|
||||||
|
Closes: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/188
|
||||||
|
Closes: https://bugzilla.altlinux.org/show_bug.cgi?id=37539
|
||||||
|
Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
|
||||||
|
---
|
||||||
|
src/radeon.h | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/radeon.h b/src/radeon.h
|
||||||
|
index 8e964805..e4a2ba66 100644
|
||||||
|
--- a/src/radeon.h
|
||||||
|
+++ b/src/radeon.h
|
||||||
|
@@ -790,8 +790,8 @@ static inline Bool radeon_set_pixmap_bo(PixmapPtr pPix, struct radeon_buffer *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;
|
||||||
|
@@ -799,7 +799,7 @@ static inline struct radeon_buffer *radeon_get_pixmap_bo(PixmapPtr pPix)
|
||||||
|
return priv ? priv->bo : NULL;
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
- {
|
||||||
|
+ if (info->accelOn) {
|
||||||
|
struct radeon_exa_pixmap_priv *driver_priv;
|
||||||
|
driver_priv = exaGetPixmapDriverPrivate(pPix);
|
||||||
|
return driver_priv ? driver_priv->bo : NULL;
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
Summary: Xorg X11 ati video driver
|
Summary: Xorg X11 ati video driver
|
||||||
Name: xorg-x11-drv-ati
|
Name: xorg-x11-drv-ati
|
||||||
Version: 19.0.1
|
Version: 19.1.0
|
||||||
Release: 2%{?gver}%{?dist}
|
Release: 1%{?gver}%{?dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X Hardware Support
|
Group: User Interface/X Hardware Support
|
||||||
@ -21,7 +21,8 @@ Group: User Interface/X Hardware Support
|
|||||||
Source0: https://www.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
|
Source0: https://www.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
|
||||||
#Source0: %{tarball}-%{gitdate}.tar.xz
|
#Source0: %{tarball}-%{gitdate}.tar.xz
|
||||||
|
|
||||||
Patch14: 0001-Don-t-set-up-black-scanout-buffer-if-LeaveVT-is-call.patch
|
Patch1: 0001-Handle-NULL-fb_ptr-in-pixmap_get_fb.patch
|
||||||
|
Patch2: 0002-Don-t-crash-X-server-if-GPU-acceleration-is-not-avai.patch
|
||||||
|
|
||||||
ExcludeArch: s390 s390x
|
ExcludeArch: s390 s390x
|
||||||
|
|
||||||
@ -43,7 +44,8 @@ X.Org X11 ati video driver.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{?!gitdate:%{version}}
|
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{?!gitdate:%{version}}
|
||||||
%patch14 -p1 -b .leavevt
|
%patch1 -p1 -b .null-fb_ptr
|
||||||
|
%patch2 -p1 -b .shadowfb-crash-fix
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -iv
|
autoreconf -iv
|
||||||
@ -62,6 +64,14 @@ find $RPM_BUILD_ROOT -regex ".*\.la$" | xargs rm -f --
|
|||||||
%{_datadir}/X11/xorg.conf.d/10-radeon.conf
|
%{_datadir}/X11/xorg.conf.d/10-radeon.conf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 26 2020 Michel Dänzer <mdaenzer@redhat.com> - 19.1.0-1
|
||||||
|
- ati 19.1.0 (#1728818)
|
||||||
|
- Drop patch 0001-Don-t-set-up-black-scanout-buffer-if-LeaveVT-is-call.patch,
|
||||||
|
merged upstream
|
||||||
|
- Add patches 0001-Handle-NULL-fb_ptr-in-pixmap_get_fb.patch &
|
||||||
|
0002-Don-t-crash-X-server-if-GPU-acceleration-is-not-avai.patch from
|
||||||
|
upstream Git master, fixing crashes with ShadowFB
|
||||||
|
|
||||||
* Tue Nov 12 2019 Olivier Fourdan <ofourdan@redhat.com> - 19.0.1-2
|
* Tue Nov 12 2019 Olivier Fourdan <ofourdan@redhat.com> - 19.0.1-2
|
||||||
- Fix a regression with user-switching (#1757864)
|
- Fix a regression with user-switching (#1757864)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user