From: Marek Olšák Date: Fri, 7 Oct 2011 22:27:16 +0000 (+0200) Subject: pb_bufmgr_cache: flush cache when create_buffer fails and try again X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39d7de69b1e3317ba813b4475f2b6132d70f8eef;p=mesa.git pb_bufmgr_cache: flush cache when create_buffer fails and try again NOTE: This is a candidate for the stable branches. --- diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c index 58721c068e2..0e6896afd0a 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c @@ -324,6 +324,13 @@ pb_cache_manager_create_buffer(struct pb_manager *_mgr, return NULL; buf->buffer = mgr->provider->create_buffer(mgr->provider, size, desc); + + /* Empty the cache and try again. */ + if (!buf->buffer) { + mgr->base.flush(&mgr->base); + buf->buffer = mgr->provider->create_buffer(mgr->provider, size, desc); + } + if(!buf->buffer) { FREE(buf); return NULL;