diff options
Diffstat (limited to 'radeon/radeon_bo_gem.c')
-rw-r--r-- | radeon/radeon_bo_gem.c | 10 |
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)); |