intel: query whether a buffer is reusable.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
main
Chris Wilson 2010-05-11 08:54:06 +01:00
parent 7ca558494d
commit 07e7589d86
4 changed files with 24 additions and 0 deletions

View File

@ -229,6 +229,13 @@ int drm_intel_bo_disable_reuse(drm_intel_bo *bo)
return 0; 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) int drm_intel_bo_busy(drm_intel_bo *bo)
{ {
if (bo->bufmgr->bo_busy) if (bo->bufmgr->bo_busy)

View 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_madvise(drm_intel_bo *bo, int madv);
int drm_intel_bo_disable_reuse(drm_intel_bo *bo); 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); int drm_intel_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo);
/* drm_intel_bufmgr_gem.c */ /* drm_intel_bufmgr_gem.c */

View File

@ -1903,6 +1903,14 @@ drm_intel_gem_bo_disable_reuse(drm_intel_bo *bo)
return 0; return 0;
} }
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 static int
_drm_intel_gem_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo) _drm_intel_gem_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo)
{ {
@ -2060,6 +2068,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
bufmgr_gem->bufmgr.check_aperture_space = bufmgr_gem->bufmgr.check_aperture_space =
drm_intel_gem_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_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 = bufmgr_gem->bufmgr.get_pipe_from_crtc_id =
drm_intel_gem_get_pipe_from_crtc_id; drm_intel_gem_get_pipe_from_crtc_id;
bufmgr_gem->bufmgr.bo_references = drm_intel_gem_bo_references; bufmgr_gem->bufmgr.bo_references = drm_intel_gem_bo_references;

View File

@ -246,6 +246,13 @@ struct _drm_intel_bufmgr {
*/ */
int (*bo_disable_reuse) (drm_intel_bo *bo); 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 * Return the pipe associated with a crtc_id so that vblank