[Mesa-dev] [PATCH] pb_bufmgr_cache: flush cache when create_buffer fails and try again

Jose Fonseca jfonseca at vmware.com
Fri Oct 7 16:44:02 PDT 2011



----- Original Message -----
> NOTE: This is a candidate for the stable branches.
> ---
>  src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
> b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
> index 58721c0..0e6896a 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);


This looks OK, but shouldn't we try flushing the cache first (i.e., invoke pb_cache_manager_flush) before flushing the inner buffer manager?

Jose

> +
> +   /* 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;
> --
> 1.7.4.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list