turnip: Use a common vk_command_buffer structure

Switch to using common structure.

Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13000>
This commit is contained in:
Yevhenii Kolesnikov 2021-04-06 15:09:20 +03:00 committed by Marge Bot
parent c05434cd6d
commit 1d2a4abf01
2 changed files with 22 additions and 6 deletions

View file

@ -1394,11 +1394,18 @@ tu_create_cmd_buffer(struct tu_device *device,
{
struct tu_cmd_buffer *cmd_buffer;
cmd_buffer = vk_object_zalloc(&device->vk, NULL, sizeof(*cmd_buffer),
VK_OBJECT_TYPE_COMMAND_BUFFER);
cmd_buffer = vk_zalloc2(&device->vk.alloc, NULL, sizeof(*cmd_buffer), 8,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (cmd_buffer == NULL)
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
if (result != VK_SUCCESS) {
vk_free2(&device->vk.alloc, NULL, cmd_buffer);
return result;
}
cmd_buffer->device = device;
cmd_buffer->pool = pool;
cmd_buffer->level = level;
@ -1441,12 +1448,16 @@ tu_cmd_buffer_destroy(struct tu_cmd_buffer *cmd_buffer)
u_trace_fini(&cmd_buffer->trace);
vk_object_free(&cmd_buffer->device->vk, &cmd_buffer->pool->alloc, cmd_buffer);
vk_command_buffer_finish(&cmd_buffer->vk);
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->alloc,
cmd_buffer);
}
static VkResult
tu_reset_cmd_buffer(struct tu_cmd_buffer *cmd_buffer)
{
vk_command_buffer_reset(&cmd_buffer->vk);
cmd_buffer->record_result = VK_SUCCESS;
tu_cs_reset(&cmd_buffer->cs);
@ -1491,7 +1502,11 @@ tu_AllocateCommandBuffers(VkDevice _device,
result = tu_reset_cmd_buffer(cmd_buffer);
cmd_buffer->level = pAllocateInfo->level;
vk_object_base_reset(&cmd_buffer->base);
vk_command_buffer_finish(&cmd_buffer->vk);
VkResult init_result =
vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
if (init_result != VK_SUCCESS)
result = init_result;
pCommandBuffers[i] = tu_cmd_buffer_to_handle(cmd_buffer);
} else {

View file

@ -92,6 +92,7 @@ typedef uint32_t xcb_window_t;
#include "tu_entrypoints.h"
#include "vk_format.h"
#include "vk_command_buffer.h"
#define MAX_VBS 32
#define MAX_VERTEX_ATTRIBS 32
@ -1052,7 +1053,7 @@ enum tu_cmd_buffer_status
struct tu_cmd_buffer
{
struct vk_object_base base;
struct vk_command_buffer vk;
struct tu_device *device;
@ -1764,7 +1765,7 @@ struct tu_u_trace_flush_data
#define TU_FROM_HANDLE(__tu_type, __name, __handle) \
VK_FROM_HANDLE(__tu_type, __name, __handle)
VK_DEFINE_HANDLE_CASTS(tu_cmd_buffer, base, VkCommandBuffer,
VK_DEFINE_HANDLE_CASTS(tu_cmd_buffer, vk.base, VkCommandBuffer,
VK_OBJECT_TYPE_COMMAND_BUFFER)
VK_DEFINE_HANDLE_CASTS(tu_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
VK_DEFINE_HANDLE_CASTS(tu_instance, vk.base, VkInstance,