[Mesa-dev] [PATCH 6/7] gallium/radeon: Create hole for waste when allocating from va_offset.
Michel Dänzer
michel at daenzer.net
Wed Aug 15 08:40:17 PDT 2012
From: Michel Dänzer <michel.daenzer at amd.com>
Otherwise, the wasted area could never be used for an allocation again.
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index 731183a..25b346b 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -246,6 +246,12 @@ static uint64_t radeon_bomgr_find_va(struct radeon_bomgr *mgr, uint64_t size, ui
waste = offset % alignment;
waste = waste ? alignment - waste : 0;
}
+ if (waste) {
+ n = CALLOC_STRUCT(radeon_bo_va_hole);
+ n->size = waste;
+ n->offset = offset;
+ list_add(&n->list, &mgr->va_holes);
+ }
offset += waste;
mgr->va_offset += size + waste;
pipe_mutex_unlock(mgr->bo_va_mutex);
--
1.7.10.4
More information about the mesa-dev
mailing list