From f2930ec5dda848b6e69575d39023b6241e3c27ca Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 31 Jul 2023 11:24:03 -0500 Subject: [PATCH] vulkan: Add init/finish helpers for vk_query_pool Reviewed-by: Lionel Landwerlin Part-of: --- src/vulkan/runtime/vk_query_pool.c | 37 +++++++++++++++++++++++++++---------- src/vulkan/runtime/vk_query_pool.h | 4 ++++ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/vulkan/runtime/vk_query_pool.c b/src/vulkan/runtime/vk_query_pool.c index 4ab3b90..59294f4 100644 --- a/src/vulkan/runtime/vk_query_pool.c +++ b/src/vulkan/runtime/vk_query_pool.c @@ -23,34 +23,51 @@ #include "vk_query_pool.h" +#include "vk_alloc.h" #include "vk_command_buffer.h" #include "vk_common_entrypoints.h" #include "vk_device.h" +void +vk_query_pool_init(struct vk_device *device, + struct vk_query_pool *query_pool, + const VkQueryPoolCreateInfo *pCreateInfo) +{ + vk_object_base_init(device, &query_pool->base, VK_OBJECT_TYPE_QUERY_POOL); + + assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO); + + query_pool->query_type = pCreateInfo->queryType; + query_pool->query_count = pCreateInfo->queryCount; + query_pool->pipeline_statistics = + pCreateInfo->queryType == VK_QUERY_TYPE_PIPELINE_STATISTICS ? + pCreateInfo->pipelineStatistics : 0; +} + void * vk_query_pool_create(struct vk_device *device, const VkQueryPoolCreateInfo *pCreateInfo, const VkAllocationCallbacks *alloc, size_t size) { - struct vk_query_pool *query_pool; - - assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO); - - query_pool = vk_object_zalloc(device, alloc, size, - VK_OBJECT_TYPE_QUERY_POOL); + struct vk_query_pool *query_pool = + vk_zalloc2(&device->alloc, alloc, size, 8, + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); if (query_pool == NULL) return NULL; - query_pool->query_type = pCreateInfo->queryType; - query_pool->query_count = pCreateInfo->queryCount; - if (pCreateInfo->queryType == VK_QUERY_TYPE_PIPELINE_STATISTICS) - query_pool->pipeline_statistics = pCreateInfo->pipelineStatistics; + vk_query_pool_init(device, query_pool, pCreateInfo); return query_pool; } void +vk_query_pool_finish(struct vk_query_pool *query_pool) +{ + vk_object_base_finish(&query_pool->base); +} + +void vk_query_pool_destroy(struct vk_device *device, const VkAllocationCallbacks *alloc, struct vk_query_pool *query_pool) diff --git a/src/vulkan/runtime/vk_query_pool.h b/src/vulkan/runtime/vk_query_pool.h index 5771414..ee04eee 100644 --- a/src/vulkan/runtime/vk_query_pool.h +++ b/src/vulkan/runtime/vk_query_pool.h @@ -45,6 +45,10 @@ struct vk_query_pool { VkQueryPipelineStatisticFlags pipeline_statistics; }; +void vk_query_pool_init(struct vk_device *device, + struct vk_query_pool *query_pool, + const VkQueryPoolCreateInfo *pCreateInfo); +void vk_query_pool_finish(struct vk_query_pool *query_pool); void *vk_query_pool_create(struct vk_device *device, const VkQueryPoolCreateInfo *pCreateInfo, const VkAllocationCallbacks *alloc, -- 2.7.4