On 2018-10-15 1:43 p.m., Gong S. wrote: > Sorry, I have found the problem. If I remove this line from "/etc/X11/xorg.conf", X would not crash: > Option "DRI" "3" If removing Option "AccelMethod" "EXA" as well also works, that would be the best solution for you. > So it is my fault. Sorry. The crash is still a bug, even though EXA & DRI3 isn't recommended, because it can't work correctly in some cases. Any chance you can test if the attached patch fixes the crash? -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer
From e64500c35c3c4b233d12358837a18dcf362ba8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> Date: Mon, 15 Oct 2018 17:14:41 +0200 Subject: [PATCH xf86-video-ati] dri3: Handle radeon_get_pixmap_bo returning NULL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: b85b7b11f5b5 "Add struct radeon_buffer" Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> --- src/radeon_dri3.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/radeon_dri3.c b/src/radeon_dri3.c index 7e89a2f0b..25078bae1 100644 --- a/src/radeon_dri3.c +++ b/src/radeon_dri3.c @@ -212,7 +212,7 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, CARD16 *stride, CARD32 *size) { - struct radeon_bo *bo; + struct radeon_buffer *bo; int fd; #ifdef USE_GLAMOR ScrnInfoPtr scrn = xf86ScreenToScrn(screen); @@ -222,10 +222,10 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, return glamor_fd_from_pixmap(screen, pixmap, stride, size); #endif - bo = radeon_get_pixmap_bo(pixmap)->bo.radeon; + bo = radeon_get_pixmap_bo(pixmap); if (!bo) { exaMoveInPixmap(pixmap); - bo = radeon_get_pixmap_bo(pixmap)->bo.radeon; + bo = radeon_get_pixmap_bo(pixmap); if (!bo) return -1; } @@ -233,11 +233,11 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, if (pixmap->devKind > UINT16_MAX) return -1; - if (radeon_gem_prime_share_bo(bo, &fd) < 0) + if (radeon_gem_prime_share_bo(bo->bo.radeon, &fd) < 0) return -1; *stride = pixmap->devKind; - *size = bo->size; + *size = bo->bo.radeon->size; return fd; } -- 2.19.1
Attachment:
signature.asc
Description: OpenPGP digital signature