From b419c651fbbf3660d7b53623dfa2e5a4c9bd3b98 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Wed, 20 Aug 2014 23:53:40 +0200 Subject: gallium/pb_bufmgr_cache: limit the size of cache This should make a machine which is running piglit more responsive at times. e.g. streaming-texture-leak can easily eat 600 MB because of how fast it creates new textures. --- src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 12 ++++++++---- src/gallium/winsys/svga/drm/vmw_screen_pools.c | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src/gallium/winsys') diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index 820cc90cda0..3b695f98534 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -671,16 +671,20 @@ radeon_drm_winsys_create(int fd, radeon_screen_create_t screen_create) ws->kman = radeon_bomgr_create(ws); if (!ws->kman) goto fail; - ws->cman_vram = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0); + ws->cman_vram = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0, + ws->info.vram_size / 8); if (!ws->cman_vram) goto fail; - ws->cman_vram_gtt_wc = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0); + ws->cman_vram_gtt_wc = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0, + ws->info.vram_size / 8); if (!ws->cman_vram_gtt_wc) goto fail; - ws->cman_gtt = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0); + ws->cman_gtt = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0, + ws->info.gart_size / 8); if (!ws->cman_gtt) goto fail; - ws->cman_gtt_wc = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0); + ws->cman_gtt_wc = pb_cache_manager_create(ws->kman, 1000000, 2.0f, 0, + ws->info.gart_size / 8); if (!ws->cman_gtt_wc) goto fail; diff --git a/src/gallium/winsys/svga/drm/vmw_screen_pools.c b/src/gallium/winsys/svga/drm/vmw_screen_pools.c index 50d2a81fdb0..1815bfa6707 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_pools.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_pools.c @@ -124,7 +124,8 @@ vmw_mob_pools_init(struct vmw_winsys_screen *vws) vws->pools.mob_cache = pb_cache_manager_create(vws->pools.gmr, 100000, 2.0f, - VMW_BUFFER_USAGE_SHARED); + VMW_BUFFER_USAGE_SHARED, + 64 * 1024 * 1024); if (!vws->pools.mob_cache) return FALSE; -- cgit v1.2.3