vulkan/util: add api to reset object magic + private data.

This will be used to for reissuing dispatchable objects like
command buffers.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9145>
This commit is contained in:
Dave Airlie 2021-02-19 17:05:52 +10:00
parent 5b6ed24cb8
commit 5a340c0929
2 changed files with 16 additions and 2 deletions

View file

@ -29,15 +29,21 @@
#include "util/hash_table.h"
#include "util/ralloc.h"
static void
vk_object_base_reinit(struct vk_object_base *base)
{
base->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
util_sparse_array_init(&base->private_data, sizeof(uint64_t), 8);
}
void
vk_object_base_init(struct vk_device *device,
struct vk_object_base *base,
UNUSED VkObjectType obj_type)
{
base->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
vk_object_base_reinit(base);
base->type = obj_type;
base->device = device;
util_sparse_array_init(&base->private_data, sizeof(uint64_t), 8);
}
void
@ -46,6 +52,13 @@ vk_object_base_finish(struct vk_object_base *base)
util_sparse_array_finish(&base->private_data);
}
void
vk_object_base_reset(struct vk_object_base *base)
{
vk_object_base_finish(base);
vk_object_base_reinit(base);
}
void *
vk_object_alloc(struct vk_device *device,
const VkAllocationCallbacks *alloc,

View file

@ -52,6 +52,7 @@ void vk_object_base_init(UNUSED struct vk_device *device,
struct vk_object_base *base,
UNUSED VkObjectType obj_type);
void vk_object_base_finish(UNUSED struct vk_object_base *base);
void vk_object_base_reset(struct vk_object_base *base);
static inline void
vk_object_base_assert_valid(ASSERTED struct vk_object_base *base,