summaryrefslogtreecommitdiff
path: root/radeon/radeon_bo_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'radeon/radeon_bo_gem.c')
-rw-r--r--radeon/radeon_bo_gem.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/radeon/radeon_bo_gem.c b/radeon/radeon_bo_gem.c
index bc8058d8..fbd3318b 100644
--- a/radeon/radeon_bo_gem.c
+++ b/radeon/radeon_bo_gem.c
@@ -81,7 +81,15 @@ static struct radeon_bo *bo_open(struct radeon_bo_manager *bom,
bo->base.flags = flags;
bo->base.ptr = NULL;
bo->map_count = 0;
- if (handle) {
+ if (flags & RADEON_BO_FLAGS_SLAVE) {
+ r = drmPrimeBufferGet(bom->fd, handle, &bo->base.handle);
+ if (r != 0) {
+ fprintf(stderr,"failed to get prime slave buffer %d\n", handle);
+ free(bo);
+ return NULL;
+ }
+ }
+ else if (handle) {
struct drm_gem_open open_arg;
memset(&open_arg, 0, sizeof(open_arg));