lavapipe: Use a common vk_command_buffer structure

Switch to using common structure.

Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.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:19:12 +03:00 committed by Marge Bot
parent 14f0e3c2d3
commit 8bf94337eb
2 changed files with 17 additions and 6 deletions

View file

@ -38,8 +38,12 @@ static VkResult lvp_create_cmd_buffer(
if (cmd_buffer == NULL)
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
vk_object_base_init(&device->vk, &cmd_buffer->base,
VK_OBJECT_TYPE_COMMAND_BUFFER);
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
if (result != VK_SUCCESS) {
vk_free(&pool->alloc, cmd_buffer);
return result;
}
cmd_buffer->device = device;
cmd_buffer->pool = pool;
@ -62,6 +66,8 @@ static VkResult lvp_create_cmd_buffer(
static VkResult lvp_reset_cmd_buffer(struct lvp_cmd_buffer *cmd_buffer)
{
vk_command_buffer_reset(&cmd_buffer->vk);
vk_free_queue(&cmd_buffer->queue);
list_inithead(&cmd_buffer->queue.cmds);
cmd_buffer->status = LVP_CMD_BUFFER_STATUS_INITIAL;
@ -89,7 +95,11 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateCommandBuffers(
result = lvp_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] = lvp_cmd_buffer_to_handle(cmd_buffer);
} else {
@ -115,7 +125,7 @@ lvp_cmd_buffer_destroy(struct lvp_cmd_buffer *cmd_buffer)
{
vk_free_queue(&cmd_buffer->queue);
list_del(&cmd_buffer->pool_link);
vk_object_base_finish(&cmd_buffer->base);
vk_command_buffer_finish(&cmd_buffer->vk);
vk_free(&cmd_buffer->pool->alloc, cmd_buffer);
}

View file

@ -60,6 +60,7 @@ typedef uint32_t xcb_window_t;
#include "vk_util.h"
#include "vk_format.h"
#include "vk_cmd_queue.h"
#include "vk_command_buffer.h"
#include "wsi_common.h"
@ -589,7 +590,7 @@ enum lvp_cmd_buffer_status {
};
struct lvp_cmd_buffer {
struct vk_object_base base;
struct vk_command_buffer vk;
struct lvp_device * device;
@ -607,7 +608,7 @@ struct lvp_cmd_buffer {
#define LVP_FROM_HANDLE(__lvp_type, __name, __handle) \
struct __lvp_type *__name = __lvp_type ## _from_handle(__handle)
VK_DEFINE_HANDLE_CASTS(lvp_cmd_buffer, base, VkCommandBuffer,
VK_DEFINE_HANDLE_CASTS(lvp_cmd_buffer, vk.base, VkCommandBuffer,
VK_OBJECT_TYPE_COMMAND_BUFFER)
VK_DEFINE_HANDLE_CASTS(lvp_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
VK_DEFINE_HANDLE_CASTS(lvp_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE)