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
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