summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/radeon
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2021-01-23 21:53:30 -0500
committerMarge Bot <eric+marge@anholt.net>2021-02-03 21:53:34 +0000
commite97af11ba95f2563579414c4c68f2cbd5af4928b (patch)
tree83e57f77bdc4678e5b7be948e56223d3fa0f6799 /src/gallium/winsys/radeon
parent35005881bf969c934c57d5dffb76ad1a8efa2310 (diff)
winsys/amdgpu,pb_slab: add slabs with 3/4 of power of two sizes to save memory
Instead of aligning slab allocations to powers of two (e.g. 129K -> 256K), implement slab allocations with 3/4 of power of two sizes to reduce overallocation. (e.g. 129K -> 192K) The limitation is that the alignment must be 1/3rd of the allocation size. DeusExMD allocates 2.1 GB of VRAM. Without this, slabs waste 194 MB due to alignment, i.e. 9.2%. This commit reduces the waste to 102 MB, i.e. 4.9%. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8683>
Diffstat (limited to 'src/gallium/winsys/radeon')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_winsys.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 8d25ff368d7..842604b8593 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -861,7 +861,7 @@ radeon_drm_winsys_create(int fd, const struct pipe_screen_config *config,
*/
if (!pb_slabs_init(&ws->bo_slabs,
RADEON_SLAB_MIN_SIZE_LOG2, RADEON_SLAB_MAX_SIZE_LOG2,
- RADEON_MAX_SLAB_HEAPS,
+ RADEON_MAX_SLAB_HEAPS, false,
ws,
radeon_bo_can_reclaim_slab,
radeon_bo_slab_alloc,