summaryrefslogtreecommitdiff
path: root/libdrm/intel/intel_bufmgr_gem.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2008-08-13 10:08:02 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-08-13 10:08:02 -0700
commit2f03ba4aad1718a36168550b6a146b79540252e6 (patch)
tree7bc55a8948f00c60ad2354171dd345e35e6ff741 /libdrm/intel/intel_bufmgr_gem.c
parent085df6491e4975681a6e17ff9a67d01268aa7553 (diff)
parentb0e68829462aad00ce68be998da6313bca754e9a (diff)
Merge branch 'master' into modesetting-gem
Conflicts: libdrm/Makefile.am libdrm/xf86drm.h shared-core/i915_dma.c shared-core/i915_irq.c
Diffstat (limited to 'libdrm/intel/intel_bufmgr_gem.c')
-rw-r--r--libdrm/intel/intel_bufmgr_gem.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index 02b1b252..af20efb2 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -103,6 +103,11 @@ struct _dri_bo_gem {
const char *name;
/**
+ * Kenel-assigned global name for this object
+ */
+ unsigned int global_name;
+
+ /**
* Index of the buffer within the validation list while preparing a
* batchbuffer execution.
*/
@@ -834,13 +839,16 @@ dri_gem_flink(dri_bo *bo, uint32_t *name)
struct drm_gem_flink flink;
int ret;
- flink.handle = bo_gem->gem_handle;
-
- ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_GEM_FLINK, &flink);
- if (ret != 0)
- return -errno;
-
- *name = flink.name;
+ if (!bo_gem->global_name) {
+ flink.handle = bo_gem->gem_handle;
+
+ ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_GEM_FLINK, &flink);
+ if (ret != 0)
+ return -errno;
+ bo_gem->global_name = flink.name;
+ }
+
+ *name = bo_gem->global_name;
return 0;
}
@@ -866,7 +874,7 @@ intel_bufmgr_gem_enable_reuse(dri_bufmgr *bufmgr)
*
*/
static int
-dri_gem_check_aperture_space(dri_bo *bo)
+dri_gem_check_aperture_space(dri_bo **bo_array, int count)
{
return 0;
}