From d2c76c4d77a2241d98eaa8755f3a1839ca2669c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 9 Dec 2023 17:11:35 -0500 Subject: [PATCH] winsys/radeon: stop using pb_buffer::vtbl Only the destroy function used it. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c index 3cc28258476..0491ec04399 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c @@ -596,11 +596,6 @@ static void radeon_bo_unmap(struct radeon_winsys *rws, struct pb_buffer *_buf) mtx_unlock(&bo->u.real.map_mutex); } -static const struct pb_vtbl radeon_bo_vtbl = { - radeon_bo_destroy_or_cache - /* other functions are never called */ -}; - static struct radeon_bo *radeon_create_bo(struct radeon_drm_winsys *rws, unsigned size, unsigned alignment, unsigned initial_domains, @@ -654,7 +649,6 @@ static struct radeon_bo *radeon_create_bo(struct radeon_drm_winsys *rws, bo->base.base.alignment_log2 = util_logbase2(alignment); bo->base.base.usage = 0; bo->base.base.size = size; - bo->base.vtbl = &radeon_bo_vtbl; bo->rws = rws; bo->handle = args.handle; bo->va = 0; @@ -747,11 +741,6 @@ static void radeon_bo_slab_destroy(void *winsys, struct pb_buffer *_buf) pb_slab_free(&bo->rws->bo_slabs, &bo->u.slab.entry); } -static const struct pb_vtbl radeon_winsys_bo_slab_vtbl = { - radeon_bo_slab_destroy - /* other functions are never called */ -}; - struct pb_slab *radeon_bo_slab_alloc(void *priv, unsigned heap, unsigned entry_size, unsigned group_index) @@ -791,7 +780,6 @@ struct pb_slab *radeon_bo_slab_alloc(void *priv, unsigned heap, bo->base.base.alignment_log2 = util_logbase2(entry_size); bo->base.base.usage = slab->buffer->base.base.usage; bo->base.base.size = entry_size; - bo->base.vtbl = &radeon_winsys_bo_slab_vtbl; bo->rws = ws; bo->va = slab->buffer->va + i * entry_size; bo->initial_domain = domains; @@ -1074,7 +1062,12 @@ radeon_winsys_bo_create(struct radeon_winsys *rws, static void radeon_winsys_bo_destroy(struct radeon_winsys *ws, struct pb_buffer *buf) { - buf->vtbl->destroy(ws, buf); + struct radeon_bo *bo = radeon_bo(buf); + + if (bo->handle) + radeon_bo_destroy_or_cache(ws, buf); + else + radeon_bo_slab_destroy(ws, buf); } static struct pb_buffer *radeon_winsys_bo_from_ptr(struct radeon_winsys *rws, @@ -1117,7 +1110,6 @@ static struct pb_buffer *radeon_winsys_bo_from_ptr(struct radeon_winsys *rws, bo->handle = args.handle; bo->base.base.alignment_log2 = 0; bo->base.base.size = size; - bo->base.vtbl = &radeon_bo_vtbl; bo->rws = ws; bo->user_ptr = pointer; bo->va = 0; @@ -1246,7 +1238,6 @@ static struct pb_buffer *radeon_winsys_bo_from_handle(struct radeon_winsys *rws, pipe_reference_init(&bo->base.base.reference, 1); bo->base.base.alignment_log2 = 0; bo->base.base.size = (unsigned) size; - bo->base.vtbl = &radeon_bo_vtbl; bo->rws = ws; bo->va = 0; bo->hash = __sync_fetch_and_add(&ws->next_bo_hash, 1);