summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-07-06 10:16:43 +0100
committerDave Airlie <airlied@redhat.com>2012-07-06 10:16:43 +0100
commit296259c58dc2bb24deba7479c8ebc80043446863 (patch)
tree14701354fadffb6ebb0141885f52def81f16e7b6
parentc293d0e9a914c9b4e90e84efa39b8c9e6235ba9b (diff)
intel: fixup for handle interfacesprime
-rw-r--r--src/intel_uxa.c14
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;
}