mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 13:20:14 +01:00
v3dv: Use a common vk_command_buffer structure
Switch to using common structure. Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by: Alejandro Piñeiro <apinheiro@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:
parent
1d2a4abf01
commit
14f0e3c2d3
2 changed files with 20 additions and 7 deletions
|
|
@ -122,7 +122,7 @@ cmd_buffer_init(struct v3dv_cmd_buffer *cmd_buffer,
|
|||
* buffer reset that would reset the loader's dispatch table for the
|
||||
* command buffer, and any other relevant info from vk_object_base
|
||||
*/
|
||||
const uint32_t base_size = sizeof(struct vk_object_base);
|
||||
const uint32_t base_size = sizeof(struct vk_command_buffer);
|
||||
uint8_t *cmd_buffer_driver_start = ((uint8_t *) cmd_buffer) + base_size;
|
||||
memset(cmd_buffer_driver_start, 0, sizeof(*cmd_buffer) - base_size);
|
||||
|
||||
|
|
@ -150,13 +150,21 @@ cmd_buffer_create(struct v3dv_device *device,
|
|||
VkCommandBuffer *pCommandBuffer)
|
||||
{
|
||||
struct v3dv_cmd_buffer *cmd_buffer;
|
||||
cmd_buffer = vk_object_zalloc(&device->vk,
|
||||
&pool->alloc,
|
||||
sizeof(*cmd_buffer),
|
||||
VK_OBJECT_TYPE_COMMAND_BUFFER);
|
||||
cmd_buffer = vk_zalloc2(&device->vk.alloc,
|
||||
&pool->alloc,
|
||||
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;
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free2(&device->vk.alloc, &pool->alloc, cmd_buffer);
|
||||
return result;
|
||||
}
|
||||
|
||||
cmd_buffer_init(cmd_buffer, device, pool, level);
|
||||
|
||||
*pCommandBuffer = v3dv_cmd_buffer_to_handle(cmd_buffer);
|
||||
|
|
@ -340,7 +348,9 @@ cmd_buffer_destroy(struct v3dv_cmd_buffer *cmd_buffer)
|
|||
{
|
||||
list_del(&cmd_buffer->pool_link);
|
||||
cmd_buffer_free_resources(cmd_buffer);
|
||||
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 bool
|
||||
|
|
@ -864,6 +874,7 @@ static VkResult
|
|||
cmd_buffer_reset(struct v3dv_cmd_buffer *cmd_buffer,
|
||||
VkCommandBufferResetFlags flags)
|
||||
{
|
||||
vk_command_buffer_reset(&cmd_buffer->vk);
|
||||
if (cmd_buffer->status != V3DV_CMD_BUFFER_STATUS_INITIALIZED) {
|
||||
struct v3dv_device *device = cmd_buffer->device;
|
||||
struct v3dv_cmd_pool *pool = cmd_buffer->pool;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@
|
|||
#include "vk_shader_module.h"
|
||||
#include "vk_util.h"
|
||||
|
||||
#include "vk_command_buffer.h"
|
||||
|
||||
#include <xf86drm.h>
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
|
|
@ -1277,7 +1279,7 @@ struct v3dv_cmd_buffer_private_obj {
|
|||
};
|
||||
|
||||
struct v3dv_cmd_buffer {
|
||||
struct vk_object_base base;
|
||||
struct vk_command_buffer vk;
|
||||
|
||||
struct v3dv_device *device;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue