mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 20:40:09 +01:00
v3dv: Use vk_command_pool
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917>
This commit is contained in:
parent
2746be68f1
commit
6fb9e4e7ff
2 changed files with 17 additions and 14 deletions
|
|
@ -62,15 +62,17 @@ v3dv_CreateCommandPool(VkDevice _device,
|
|||
/* We only support one queue */
|
||||
assert(pCreateInfo->queueFamilyIndex == 0);
|
||||
|
||||
pool = vk_object_zalloc(&device->vk, pAllocator, sizeof(*pool),
|
||||
VK_OBJECT_TYPE_COMMAND_POOL);
|
||||
pool = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*pool), 8,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
if (pool == NULL)
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
if (pAllocator)
|
||||
pool->alloc = *pAllocator;
|
||||
else
|
||||
pool->alloc = device->vk.alloc;
|
||||
VkResult result = vk_command_pool_init(&pool->vk, &device->vk,
|
||||
pCreateInfo, pAllocator);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free2(&device->vk.alloc, pAllocator, pool);
|
||||
return result;
|
||||
}
|
||||
|
||||
list_inithead(&pool->cmd_buffers);
|
||||
|
||||
|
|
@ -116,7 +118,7 @@ cmd_buffer_create(struct v3dv_device *device,
|
|||
{
|
||||
struct v3dv_cmd_buffer *cmd_buffer;
|
||||
cmd_buffer = vk_zalloc2(&device->vk.alloc,
|
||||
&pool->alloc,
|
||||
&pool->vk.alloc,
|
||||
sizeof(*cmd_buffer),
|
||||
8,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||
|
|
@ -126,7 +128,7 @@ cmd_buffer_create(struct v3dv_device *device,
|
|||
VkResult result;
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free2(&device->vk.alloc, &pool->alloc, cmd_buffer);
|
||||
vk_free2(&device->vk.alloc, &pool->vk.alloc, cmd_buffer);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -289,7 +291,7 @@ cmd_buffer_free_resources(struct v3dv_cmd_buffer *cmd_buffer)
|
|||
v3dv_job_destroy(cmd_buffer->state.job);
|
||||
|
||||
if (cmd_buffer->state.attachments)
|
||||
vk_free(&cmd_buffer->pool->alloc, cmd_buffer->state.attachments);
|
||||
vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer->state.attachments);
|
||||
|
||||
if (cmd_buffer->state.query.end.alloc_count > 0)
|
||||
vk_free(&cmd_buffer->device->vk.alloc, cmd_buffer->state.query.end.states);
|
||||
|
|
@ -314,7 +316,7 @@ cmd_buffer_destroy(struct v3dv_cmd_buffer *cmd_buffer)
|
|||
list_del(&cmd_buffer->pool_link);
|
||||
cmd_buffer_free_resources(cmd_buffer);
|
||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->alloc,
|
||||
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->vk.alloc,
|
||||
cmd_buffer);
|
||||
}
|
||||
|
||||
|
|
@ -916,7 +918,8 @@ v3dv_DestroyCommandPool(VkDevice _device,
|
|||
cmd_buffer_destroy(cmd_buffer);
|
||||
}
|
||||
|
||||
vk_object_free(&device->vk, pAllocator, pool);
|
||||
vk_command_pool_finish(&pool->vk);
|
||||
vk_free2(&device->vk.alloc, pAllocator, pool);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
#include "vk_util.h"
|
||||
|
||||
#include "vk_command_buffer.h"
|
||||
#include "vk_command_pool.h"
|
||||
#include "vk_queue.h"
|
||||
|
||||
#include <xf86drm.h>
|
||||
|
|
@ -816,9 +817,8 @@ v3dv_do_double_initial_tile_clear(const struct v3dv_frame_tiling *tiling)
|
|||
}
|
||||
|
||||
struct v3dv_cmd_pool {
|
||||
struct vk_object_base base;
|
||||
struct vk_command_pool vk;
|
||||
|
||||
VkAllocationCallbacks alloc;
|
||||
struct list_head cmd_buffers;
|
||||
};
|
||||
|
||||
|
|
@ -2157,7 +2157,7 @@ VK_DEFINE_HANDLE_CASTS(v3dv_physical_device, vk.base, VkPhysicalDevice,
|
|||
VK_OBJECT_TYPE_PHYSICAL_DEVICE)
|
||||
VK_DEFINE_HANDLE_CASTS(v3dv_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
|
||||
|
||||
VK_DEFINE_NONDISP_HANDLE_CASTS(v3dv_cmd_pool, base, VkCommandPool,
|
||||
VK_DEFINE_NONDISP_HANDLE_CASTS(v3dv_cmd_pool, vk.base, VkCommandPool,
|
||||
VK_OBJECT_TYPE_COMMAND_POOL)
|
||||
VK_DEFINE_NONDISP_HANDLE_CASTS(v3dv_buffer, base, VkBuffer,
|
||||
VK_OBJECT_TYPE_BUFFER)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue