struct list_head delayed;
pb_size numDelayed;
+ unsigned size_factor;
};
return 0;
/* be lenient with size */
- if(buf->base.size >= 2*size)
+ if(buf->base.size > buf->mgr->size_factor*size)
return 0;
if(!pb_check_alignment(desc->alignment, buf->base.alignment))
struct pb_manager *
pb_cache_manager_create(struct pb_manager *provider,
- unsigned usecs)
+ unsigned usecs,
+ unsigned size_factor)
{
struct pb_cache_manager *mgr;
mgr->base.flush = pb_cache_manager_flush;
mgr->provider = provider;
mgr->usecs = usecs;
+ mgr->size_factor = size_factor;
LIST_INITHEAD(&mgr->delayed);
mgr->numDelayed = 0;
pipe_mutex_init(mgr->mutex);
ws->kman = radeon_bomgr_create(ws);
if (!ws->kman)
goto fail;
- ws->cman = pb_cache_manager_create(ws->kman, 1000000);
+ ws->cman = pb_cache_manager_create(ws->kman, 1000000, 2);
if (!ws->cman)
goto fail;