summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-08-20 23:53:40 +0200
committerMarek Olšák <[email protected]>2014-09-01 20:17:48 +0200
commitb419c651fbbf3660d7b53623dfa2e5a4c9bd3b98 (patch)
treec20732bea135011f51aafda7ed0dec1db630d934 /src/gallium/winsys
parentbba7d29a86862df89f43b682be674c33326fa248 (diff)
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.
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c12
-rw-r--r--src/gallium/winsys/svga/drm/vmw_screen_pools.c3
2 files changed, 10 insertions, 5 deletions
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;