xf86-video-ati: Branch 'master' - 4 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Aug 29 15:25:19 UTC 2018
src/radeon.h | 10 +++++++---
src/radeon_bo_helper.c | 3 +++
src/radeon_exa.c | 3 ++-
src/radeon_glamor.c | 4 +++-
4 files changed, 15 insertions(+), 5 deletions(-)
New commits:
commit de88ea2755611bdcb18d91d8234d2ab5be8ff2e9
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Fri Aug 24 11:00:16 2018 +0200
glamor: Handle ihandle == -1 in radeon_glamor_set_shared_pixmap_backing
diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
index c733d192..bffc89ec 100644
--- a/src/radeon_glamor.c
+++ b/src/radeon_glamor.c
@@ -402,11 +402,13 @@ radeon_glamor_set_shared_pixmap_backing(PixmapPtr pixmap, void *handle)
{
ScreenPtr screen = pixmap->drawable.pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+ int ihandle = (int)(long)handle;
if (!radeon_set_shared_pixmap_backing(pixmap, handle, NULL))
return FALSE;
- if (!radeon_glamor_create_textured_pixmap(pixmap,
+ if (ihandle != -1 &&
+ !radeon_glamor_create_textured_pixmap(pixmap,
radeon_get_pixmap_bo(pixmap))) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
"Failed to get PRIME drawable for glamor pixmap.\n");
commit 84bde2df5b453f8aab35aa18b0cf1f20b8d20488
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Fri Aug 24 10:58:51 2018 +0200
EXA: Handle ihandle == -1 in RADEONEXASharePixmapBacking
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 93c2f056..268155ed 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -296,11 +296,12 @@ Bool RADEONEXASharePixmapBacking(PixmapPtr ppix, ScreenPtr slave, void **fd_hand
Bool RADEONEXASetSharedPixmapBacking(PixmapPtr ppix, void *fd_handle)
{
struct radeon_exa_pixmap_priv *driver_priv = exaGetPixmapDriverPrivate(ppix);
+ int ihandle = (int)(long)fd_handle;
if (!radeon_set_shared_pixmap_backing(ppix, fd_handle, &driver_priv->surface))
return FALSE;
- driver_priv->shared = TRUE;
+ driver_priv->shared = ihandle != -1;
return TRUE;
}
commit 1799680f7bd84e0618f34f4c7486799521ddaf83
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Fri Aug 24 10:56:58 2018 +0200
Handle ihandle == -1 in radeon_set_shared_pixmap_backing
It means to stop using the shared pixmap backing.
Fixes crash when changing PRIME slave output configuration.
diff --git a/src/radeon_bo_helper.c b/src/radeon_bo_helper.c
index 79e8ff1b..da5a484f 100644
--- a/src/radeon_bo_helper.c
+++ b/src/radeon_bo_helper.c
@@ -454,6 +454,9 @@ Bool radeon_set_shared_pixmap_backing(PixmapPtr ppix, void *fd_handle,
uint32_t size = ppix->devKind * ppix->drawable.height;
Bool ret = FALSE;
+ if (ihandle == -1)
+ return radeon_set_pixmap_bo(ppix, NULL);
+
bo = (struct radeon_buffer *)calloc(1, sizeof(struct radeon_buffer));
if (!bo)
goto error;
commit 3c42bd04800211f64a17640c7ce7c4111ffd4978
Author: Michel Dänzer <michel.daenzer at amd.com>
Date: Fri Aug 24 10:55:49 2018 +0200
EXA: Handle NULL BO pointer in radeon_set_pixmap_bo
diff --git a/src/radeon.h b/src/radeon.h
index 1a1edb1b..b1d5f5af 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -772,11 +772,15 @@ static inline Bool radeon_set_pixmap_bo(PixmapPtr pPix, struct radeon_buffer *bo
radeon_buffer_unref(&driver_priv->bo);
drmmode_fb_reference(pRADEONEnt->fd, &driver_priv->fb, NULL);
- radeon_buffer_ref(bo);
driver_priv->bo = bo;
- radeon_bo_get_tiling(bo->bo.radeon, &driver_priv->tiling_flags,
- &pitch);
+ if (bo) {
+ radeon_buffer_ref(bo);
+ radeon_bo_get_tiling(bo->bo.radeon, &driver_priv->tiling_flags,
+ &pitch);
+ } else
+ driver_priv->tiling_flags = 0;
+
return TRUE;
}
More information about the xorg-commit
mailing list