radv: Use a common vk_command_buffer structure
Switch to using common structure. Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13000>
This commit is contained in:
parent
c9189f4813
commit
c05434cd6d
|
@ -408,7 +408,7 @@ radv_destroy_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
|
|||
for (unsigned i = 0; i < MAX_BIND_POINTS; i++)
|
||||
free(cmd_buffer->descriptors[i].push_set.set.mapped_ptr);
|
||||
|
||||
vk_object_base_finish(&cmd_buffer->base);
|
||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||
vk_free(&cmd_buffer->pool->alloc, cmd_buffer);
|
||||
}
|
||||
|
||||
|
@ -422,7 +422,12 @@ radv_create_cmd_buffer(struct radv_device *device, struct radv_cmd_pool *pool,
|
|||
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(&cmd_buffer->pool->alloc, cmd_buffer);
|
||||
return result;
|
||||
}
|
||||
|
||||
cmd_buffer->device = device;
|
||||
cmd_buffer->pool = pool;
|
||||
|
@ -449,6 +454,8 @@ radv_create_cmd_buffer(struct radv_device *device, struct radv_cmd_pool *pool,
|
|||
static VkResult
|
||||
radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
vk_command_buffer_reset(&cmd_buffer->vk);
|
||||
|
||||
cmd_buffer->device->ws->cs_reset(cmd_buffer->cs);
|
||||
|
||||
list_for_each_entry_safe(struct radv_cmd_buffer_upload, up, &cmd_buffer->upload.list, list)
|
||||
|
@ -3817,7 +3824,11 @@ radv_AllocateCommandBuffers(VkDevice _device, const VkCommandBufferAllocateInfo
|
|||
|
||||
result = radv_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] = radv_cmd_buffer_to_handle(cmd_buffer);
|
||||
} else {
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
#include "vk_instance.h"
|
||||
#include "vk_physical_device.h"
|
||||
#include "vk_shader_module.h"
|
||||
#include "vk_command_buffer.h"
|
||||
#include "vk_util.h"
|
||||
|
||||
#include "ac_binary.h"
|
||||
|
@ -1461,7 +1462,7 @@ enum radv_cmd_buffer_status {
|
|||
};
|
||||
|
||||
struct radv_cmd_buffer {
|
||||
struct vk_object_base base;
|
||||
struct vk_command_buffer vk;
|
||||
|
||||
struct radv_device *device;
|
||||
|
||||
|
|
Loading…
Reference in New Issue