On Mon, 2008-12-15 at 15:08 -0800, Keith Packard wrote:
> This limits application memory usage by waiting for the GPU to free memory
> rather than simply continuing to allocate more memory.

I think I theoretically prefer the current behavior in the presence of
max_entries where you still alloc a new buffer (so you're not syncing)
but you free the buffer being unreferenced instead of adding it to the
cache.

Of course, I haven't run with max_entries yet since we shouldn't need
it.

> Signed-off-by: Keith Packard <kei...@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;
-- 
Eric Anholt
e...@anholt.net                         eric.anh...@intel.com


Attachment: signature.asc
Description: This is a digitally signed message part

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to