diff options
author | Marek Olšák <[email protected]> | 2014-08-20 23:53:40 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-09-01 20:17:48 +0200 |
commit | b419c651fbbf3660d7b53623dfa2e5a4c9bd3b98 (patch) | |
tree | c20732bea135011f51aafda7ed0dec1db630d934 /src/gallium/winsys | |
parent | bba7d29a86862df89f43b682be674c33326fa248 (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.c | 12 | ||||
-rw-r--r-- | src/gallium/winsys/svga/drm/vmw_screen_pools.c | 3 |
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; |