From e2e8225bacd5d0b757a469289ae4c408365376b1 Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Wed, 27 Feb 2019 15:20:56 +0000 Subject: [PATCH] Make pixmap exportable in ms_do_pageflip Otherwise glamor_gbm_bo_from_pixmap will fail and cause the pageflip to fail. Fixes #68 Signed-off-by: Yuxuan Shui --- glamor/glamor.h | 2 ++ glamor/glamor_egl.c | 2 +- hw/xfree86/drivers/modesetting/pageflip.c | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/glamor/glamor.h b/glamor/glamor.h index 8d79597e2..c25befbcd 100644 --- a/glamor/glamor.h +++ b/glamor/glamor.h @@ -249,6 +249,8 @@ extern _X_EXPORT int glamor_name_from_pixmap(PixmapPtr pixmap, * */ extern _X_EXPORT struct gbm_bo *glamor_gbm_bo_from_pixmap(ScreenPtr screen, PixmapPtr pixmap); +extern _X_EXPORT Bool +glamor_make_pixmap_exportable(PixmapPtr pixmap, Bool modifiers_ok); /* @glamor_pixmap_from_fds: Creates a pixmap to wrap a dma-buf fds. * diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 69844d4e2..6ca8449e0 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -259,7 +259,7 @@ glamor_get_name_from_bo(int gbm_fd, struct gbm_bo *bo, int *name) *name = -1; } -static Bool +Bool glamor_make_pixmap_exportable(PixmapPtr pixmap, Bool modifiers_ok) { ScreenPtr screen = pixmap->drawable.pScreen; diff --git a/hw/xfree86/drivers/modesetting/pageflip.c b/hw/xfree86/drivers/modesetting/pageflip.c index 9667f132d..d3a21f703 100644 --- a/hw/xfree86/drivers/modesetting/pageflip.c +++ b/hw/xfree86/drivers/modesetting/pageflip.c @@ -245,6 +245,10 @@ ms_do_pageflip(ScreenPtr screen, struct ms_flipdata *flipdata; glamor_block_handler(screen); + if (!glamor_make_pixmap_exportable(new_front, FALSE)) { + return FALSE; + } + new_front_bo.gbm = glamor_gbm_bo_from_pixmap(screen, new_front); new_front_bo.dumb = NULL; -- GitLab