diff --git a/src/amdgpu_bo_helper.c b/src/amdgpu_bo_helper.c index 6f7d6dfc486bfd9343b9498b117db7d22de2e4b5..3f622142d1f30a80a63fa65d8e3a94d45d1215b0 100644 --- a/src/amdgpu_bo_helper.c +++ b/src/amdgpu_bo_helper.c @@ -185,13 +185,15 @@ uint64_t amdgpu_pixmap_get_tiling_info(PixmapPtr pixmap) Bool amdgpu_pixmap_get_handle(PixmapPtr pixmap, uint32_t *handle) { -#ifdef USE_GLAMOR ScreenPtr screen = pixmap->drawable.pScreen; ScrnInfoPtr scrn = xf86ScreenToScrn(screen); AMDGPUInfoPtr info = AMDGPUPTR(scrn); -#endif - struct amdgpu_pixmap *priv = amdgpu_get_pixmap_private(pixmap); + struct amdgpu_pixmap *priv; + + if (info->shadow_fb) + return FALSE; + priv = amdgpu_get_pixmap_private(pixmap); if (!priv) { priv = calloc(1, sizeof(*priv)); amdgpu_set_pixmap_private(pixmap, priv); diff --git a/src/amdgpu_pixmap.h b/src/amdgpu_pixmap.h index 94ec210f4dec46095a665ef1ee47746a91e9bdcb..663d414b8c7546672a4b30d49d0b5d68b13580d4 100644 --- a/src/amdgpu_pixmap.h +++ b/src/amdgpu_pixmap.h @@ -162,7 +162,7 @@ amdgpu_pixmap_get_fb(PixmapPtr pix) handle); } - return *fb_ptr; + return fb_ptr ? *fb_ptr : NULL; } enum {