util/idalloc: fold the size call into init
It's required, otherwise idalloc would fail. v2: renamed util_idalloc_(mt_)init param initial_num_ids (Pierre-Eric) Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> (v1) Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v2) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11493>
This commit is contained in:
@@ -2135,8 +2135,7 @@ static void si_init_bindless_descriptors(struct si_context *sctx, struct si_desc
|
||||
sctx->num_bindless_descriptors = 1;
|
||||
|
||||
/* Track which bindless slots are used (or not). */
|
||||
util_idalloc_init(&sctx->bindless_used_slots);
|
||||
util_idalloc_resize(&sctx->bindless_used_slots, num_elements);
|
||||
util_idalloc_init(&sctx->bindless_used_slots, num_elements);
|
||||
|
||||
/* Reserve slot 0 because it's an invalid handle for bindless. */
|
||||
desc_slot = util_idalloc_alloc(&sctx->bindless_used_slots);
|
||||
|
@@ -104,8 +104,7 @@ static void init_name_reuse(struct _mesa_HashTable *table)
|
||||
{
|
||||
assert(_mesa_hash_table_num_entries(table->ht) == 0);
|
||||
table->id_alloc = MALLOC_STRUCT(util_idalloc);
|
||||
util_idalloc_init(table->id_alloc);
|
||||
util_idalloc_resize(table->id_alloc, 8);
|
||||
util_idalloc_init(table->id_alloc, 8);
|
||||
ASSERTED GLuint reserve0 = util_idalloc_alloc(table->id_alloc);
|
||||
assert (reserve0 == 0);
|
||||
}
|
||||
|
@@ -37,9 +37,11 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
void
|
||||
util_idalloc_init(struct util_idalloc *buf)
|
||||
util_idalloc_init(struct util_idalloc *buf, unsigned initial_num_ids)
|
||||
{
|
||||
memset(buf, 0, sizeof(*buf));
|
||||
assert(initial_num_ids);
|
||||
util_idalloc_resize(buf, DIV_ROUND_UP(initial_num_ids, 32));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -103,15 +105,12 @@ util_idalloc_reserve(struct util_idalloc *buf, unsigned id)
|
||||
|
||||
void
|
||||
util_idalloc_mt_init(struct util_idalloc_mt *buf,
|
||||
unsigned initial_num_elements, bool skip_zero)
|
||||
unsigned initial_num_ids, bool skip_zero)
|
||||
{
|
||||
simple_mtx_init(&buf->mutex, mtx_plain);
|
||||
util_idalloc_init(&buf->buf);
|
||||
util_idalloc_init(&buf->buf, initial_num_ids);
|
||||
buf->skip_zero = skip_zero;
|
||||
|
||||
if (initial_num_elements)
|
||||
util_idalloc_resize(&buf->buf, DIV_ROUND_UP(initial_num_elements, 32));
|
||||
|
||||
if (skip_zero) {
|
||||
ASSERTED unsigned zero = util_idalloc_alloc(&buf->buf);
|
||||
assert(zero == 0);
|
||||
|
@@ -44,7 +44,7 @@ struct util_idalloc
|
||||
};
|
||||
|
||||
void
|
||||
util_idalloc_init(struct util_idalloc *buf);
|
||||
util_idalloc_init(struct util_idalloc *buf, unsigned initial_num_ids);
|
||||
|
||||
void
|
||||
util_idalloc_fini(struct util_idalloc *buf);
|
||||
@@ -71,7 +71,7 @@ struct util_idalloc_mt {
|
||||
|
||||
void
|
||||
util_idalloc_mt_init(struct util_idalloc_mt *buf,
|
||||
unsigned initial_num_elements, bool skip_zero);
|
||||
unsigned initial_num_ids, bool skip_zero);
|
||||
|
||||
void
|
||||
util_idalloc_mt_init_tc(struct util_idalloc_mt *buf);
|
||||
|
@@ -153,8 +153,7 @@ sim_syncobj_create(struct virtgpu *gpu, bool signaled)
|
||||
return 0;
|
||||
}
|
||||
|
||||
util_idalloc_init(&sim.ida);
|
||||
util_idalloc_resize(&sim.ida, 32);
|
||||
util_idalloc_init(&sim.ida, 32);
|
||||
|
||||
struct drm_virtgpu_execbuffer args = {
|
||||
.flags = VIRTGPU_EXECBUF_FENCE_FD_OUT,
|
||||
|
Reference in New Issue
Block a user