[Intel-gfx] [PATCH] intel: When re-use cache is full, wait instead of allocating
Keith Packard
keithp at keithp.com
Tue Dec 16 00:08:13 CET 2008
This limits application memory usage by waiting for the GPU to free memory
rather than simply continuing to allocate more memory.
Signed-off-by: Keith Packard <keithp at keithp.com>
---
libdrm/intel/intel_bufmgr_gem.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c
index 323007a..9f6ef68 100644
--- a/libdrm/intel/intel_bufmgr_gem.c
+++ b/libdrm/intel/intel_bufmgr_gem.c
@@ -350,8 +350,12 @@ drm_intel_gem_bo_alloc(drm_intel_bufmgr *bufmgr, const char *name,
bo_gem = bucket->head;
busy.handle = bo_gem->gem_handle;
- ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
- alloc_from_cache = (ret == 0 && busy.busy == 0);
+ if (bucket->max_entries != -1 && bucket->num_entries >= bucket->max_entries)
+ alloc_from_cache = 1;
+ else {
+ ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
+ alloc_from_cache = (ret == 0 && busy.busy == 0);
+ }
if (alloc_from_cache) {
bucket->head = bo_gem->next;
--
1.5.6.5
More information about the Intel-gfx
mailing list