diff options
author | Dave Airlie <airlied@redhat.com> | 2012-07-06 10:16:43 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-07-06 10:16:43 +0100 |
commit | 296259c58dc2bb24deba7479c8ebc80043446863 (patch) | |
tree | 14701354fadffb6ebb0141885f52def81f16e7b6 | |
parent | c293d0e9a914c9b4e90e84efa39b8c9e6235ba9b (diff) |
intel: fixup for handle interfacesprime
-rw-r--r-- | src/intel_uxa.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/intel_uxa.c b/src/intel_uxa.c index 01d139ae..1f8372c0 100644 --- a/src/intel_uxa.c +++ b/src/intel_uxa.c @@ -1177,7 +1177,7 @@ Bool intel_uxa_create_screen_resources(ScreenPtr screen) } static Bool -intel_uxa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, int *fd_handle) +intel_uxa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **fd_handle) { ScrnInfoPtr scrn = xf86ScreenToScrn(ppix->drawable.pScreen); intel_screen_private *intel = intel_get_screen_private(scrn); @@ -1185,6 +1185,7 @@ intel_uxa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, int *fd_handle) unsigned int size, tiling, swizzle; dri_bo *bo = intel_get_pixmap_bo(ppix), *newbo; int stride; + int handle; if (drm_intel_bo_references(intel->batch_bo, bo)) intel_batch_submit(intel->scrn); @@ -1214,25 +1215,28 @@ intel_uxa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, int *fd_handle) } drm_intel_bo_get_tiling(bo, &tiling, &swizzle); fprintf(stderr,"tiling %x swizzle %x\n", tiling, swizzle); - drm_intel_bufmgr_gem_set_bo_prime(bo, fd_handle); + drm_intel_bufmgr_gem_set_bo_prime(bo, &handle); + + *fd_handle = (void *)(long)handle; return TRUE; } static Bool -intel_uxa_set_shared_pixmap_backing(PixmapPtr ppix, int fd_handle) +intel_uxa_set_shared_pixmap_backing(PixmapPtr ppix, void *fd_handle) { ScrnInfoPtr scrn = xf86ScreenToScrn(ppix->drawable.pScreen); intel_screen_private *intel = intel_get_screen_private(scrn); struct intel_pixmap *priv = intel_get_pixmap_private(ppix); dri_bo *bo; + int ihandle = (int)(long)fd_handle; /* force untiled for now */ - bo = drm_intel_bufmgr_gem_get_bo_prime(intel->bufmgr, fd_handle, 0); + bo = drm_intel_bufmgr_gem_get_bo_prime(intel->bufmgr, ihandle, 0); if (!bo) return FALSE; intel_set_pixmap_bo(ppix, bo); - close(fd_handle); + close(ihandle); return TRUE; } |