intel: query whether a buffer is reusable.
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 11 May 2010 07:54:06 +0000 (08:54 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 11 May 2010 07:54:06 +0000 (08:54 +0100)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
intel/intel_bufmgr.c
intel/intel_bufmgr.h
intel/intel_bufmgr_gem.c
intel/intel_bufmgr_priv.h

index ce21a33..9144fdd 100644 (file)
@@ -229,6 +229,13 @@ int drm_intel_bo_disable_reuse(drm_intel_bo *bo)
        return 0;
 }
 
+int drm_intel_bo_is_reusable(drm_intel_bo *bo)
+{
+       if (bo->bufmgr->bo_is_reusable)
+               return bo->bufmgr->bo_is_reusable(bo);
+       return 0;
+}
+
 int drm_intel_bo_busy(drm_intel_bo *bo)
 {
        if (bo->bufmgr->bo_busy)
index 0984ab0..cbcddb6 100644 (file)
@@ -126,6 +126,7 @@ int drm_intel_bo_busy(drm_intel_bo *bo);
 int drm_intel_bo_madvise(drm_intel_bo *bo, int madv);
 
 int drm_intel_bo_disable_reuse(drm_intel_bo *bo);
+int drm_intel_bo_is_reusable(drm_intel_bo *bo);
 int drm_intel_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo);
 
 /* drm_intel_bufmgr_gem.c */
index 8fa5631..9daa89a 100644 (file)
@@ -1904,6 +1904,14 @@ drm_intel_gem_bo_disable_reuse(drm_intel_bo *bo)
 }
 
 static int
+drm_intel_gem_bo_is_reusable(drm_intel_bo *bo)
+{
+       drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
+
+       return bo_gem->reusable;
+}
+
+static int
 _drm_intel_gem_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo)
 {
        drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
@@ -2060,6 +2068,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
        bufmgr_gem->bufmgr.check_aperture_space =
            drm_intel_gem_check_aperture_space;
        bufmgr_gem->bufmgr.bo_disable_reuse = drm_intel_gem_bo_disable_reuse;
+       bufmgr_gem->bufmgr.bo_is_reusable = drm_intel_gem_bo_is_reusable;
        bufmgr_gem->bufmgr.get_pipe_from_crtc_id =
            drm_intel_gem_get_pipe_from_crtc_id;
        bufmgr_gem->bufmgr.bo_references = drm_intel_gem_bo_references;
index fb84e70..f987d97 100644 (file)
@@ -247,6 +247,13 @@ struct _drm_intel_bufmgr {
        int (*bo_disable_reuse) (drm_intel_bo *bo);
 
        /**
+        * Query whether a buffer is reusable.
+        *
+        * \param bo Buffer to query
+        */
+       int (*bo_is_reusable) (drm_intel_bo *bo);
+
+       /**
         *
         * Return the pipe associated with a crtc_id so that vblank
         * synchronization can use the correct data in the request.