summaryrefslogtreecommitdiff
path: root/intel/intel_bufmgr_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'intel/intel_bufmgr_gem.c')
-rw-r--r--intel/intel_bufmgr_gem.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index f5ab0a6f..cdf8ca5f 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -195,6 +195,8 @@ struct _drm_intel_bo_gem {
* relocations.
*/
int reloc_tree_fences;
+
+ unsigned int prime_name;
};
static unsigned int
@@ -1783,6 +1785,22 @@ drm_intel_gem_bo_get_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
return 0;
}
+void
+drm_intel_bufmgr_gem_set_bo_prime(drm_intel_bo *bo, uint32_t *name)
+{
+ drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;
+ drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
+ int ret;
+
+ if (!bo_gem->prime_name) {
+ ret = drmPrimeBufferSet(bufmgr_gem->fd, bo_gem->gem_handle, &bo_gem->prime_name);
+ if (ret) {
+ fprintf(stderr,"drm PBS failed\n");
+ }
+ }
+ *name = bo_gem->prime_name;
+}
+
static int
drm_intel_gem_bo_flink(drm_intel_bo *bo, uint32_t * name)
{