From: Michel Dänzer <[email protected]>

Fixes crash when running a compositor and DRI_PRIME client via DRI2.

Reported-by: Qiang Yu <[email protected]>
Signed-off-by: Michel Dänzer <[email protected]>
---
 src/amdgpu_glamor.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
index 52aa30d..b6ec98f 100644
--- a/src/amdgpu_glamor.c
+++ b/src/amdgpu_glamor.c
@@ -278,12 +278,17 @@ static Bool
 amdgpu_glamor_share_pixmap_backing(PixmapPtr pixmap, ScreenPtr slave,
                                   void **handle_p)
 {
-       struct amdgpu_pixmap *priv = amdgpu_get_pixmap_private(pixmap);
+       ScreenPtr screen = pixmap->drawable.pScreen;
+       CARD16 stride;
+       CARD32 size;
+       int fd;
 
-       if (!priv)
+       fd = glamor_fd_from_pixmap(screen, pixmap, &stride, &size);
+       if (fd < 0)
                return FALSE;
 
-       return amdgpu_share_pixmap_backing(priv->bo, handle_p);
+       *handle_p = (void *)(long)fd;
+       return TRUE;
 }
 
 static Bool
-- 
2.8.1

_______________________________________________
xorg-driver-ati mailing list
[email protected]
https://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to