From cb7b145a25452de8b549e8c8e9ec3bcc752e55dc Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 17 Aug 2016 12:03:41 +0200 Subject: [PATCH] modesetting: Fix msSharePixmapBacking returning a non-linear bo glamor_fd_from_pixmap() may return a tiled bo, which is not suitable for sharing with another GPU as tiling usually is GPU specific. Switch to glamor_shareable_fd_from_pixmap(), which always returns a linear bo. This fixes mis-rendering when running the mode setting driver on the master gpu in a dual-gpu setup and running an opengl app with DRI_PRIME=1. Signed-off-by: Hans de Goede Reviewed-by: Keith Packard --- hw/xfree86/drivers/modesetting/driver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index 5ebb39485..a8e83b291 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -1382,7 +1382,8 @@ msSharePixmapBacking(PixmapPtr ppix, ScreenPtr screen, void **handle) int ret; CARD16 stride; CARD32 size; - ret = glamor_fd_from_pixmap(ppix->drawable.pScreen, ppix, &stride, &size); + ret = glamor_shareable_fd_from_pixmap(ppix->drawable.pScreen, ppix, + &stride, &size); if (ret == -1) return FALSE;