mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 15:30: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
|
* buffer reset that would reset the loader's dispatch table for the
|
||||||
* command buffer, and any other relevant info from vk_object_base
|
* 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;
|
uint8_t *cmd_buffer_driver_start = ((uint8_t *) cmd_buffer) + base_size;
|
||||||
memset(cmd_buffer_driver_start, 0, sizeof(*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)
|
VkCommandBuffer *pCommandBuffer)
|
||||||
{
|
{
|
||||||
struct v3dv_cmd_buffer *cmd_buffer;
|
struct v3dv_cmd_buffer *cmd_buffer;
|
||||||
cmd_buffer = vk_object_zalloc(&device->vk,
|
cmd_buffer = vk_zalloc2(&device->vk.alloc,
|
||||||
&pool->alloc,
|
&pool->alloc,
|
||||||
sizeof(*cmd_buffer),
|
sizeof(*cmd_buffer),
|
||||||
VK_OBJECT_TYPE_COMMAND_BUFFER);
|
8,
|
||||||
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (cmd_buffer == NULL)
|
if (cmd_buffer == NULL)
|
||||||
return vk_error(device->instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
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);
|
cmd_buffer_init(cmd_buffer, device, pool, level);
|
||||||
|
|
||||||
*pCommandBuffer = v3dv_cmd_buffer_to_handle(cmd_buffer);
|
*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);
|
list_del(&cmd_buffer->pool_link);
|
||||||
cmd_buffer_free_resources(cmd_buffer);
|
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
|
static bool
|
||||||
|
|
@ -864,6 +874,7 @@ static VkResult
|
||||||
cmd_buffer_reset(struct v3dv_cmd_buffer *cmd_buffer,
|
cmd_buffer_reset(struct v3dv_cmd_buffer *cmd_buffer,
|
||||||
VkCommandBufferResetFlags flags)
|
VkCommandBufferResetFlags flags)
|
||||||
{
|
{
|
||||||
|
vk_command_buffer_reset(&cmd_buffer->vk);
|
||||||
if (cmd_buffer->status != V3DV_CMD_BUFFER_STATUS_INITIALIZED) {
|
if (cmd_buffer->status != V3DV_CMD_BUFFER_STATUS_INITIALIZED) {
|
||||||
struct v3dv_device *device = cmd_buffer->device;
|
struct v3dv_device *device = cmd_buffer->device;
|
||||||
struct v3dv_cmd_pool *pool = cmd_buffer->pool;
|
struct v3dv_cmd_pool *pool = cmd_buffer->pool;
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,8 @@
|
||||||
#include "vk_shader_module.h"
|
#include "vk_shader_module.h"
|
||||||
#include "vk_util.h"
|
#include "vk_util.h"
|
||||||
|
|
||||||
|
#include "vk_command_buffer.h"
|
||||||
|
|
||||||
#include <xf86drm.h>
|
#include <xf86drm.h>
|
||||||
|
|
||||||
#ifdef HAVE_VALGRIND
|
#ifdef HAVE_VALGRIND
|
||||||
|
|
@ -1277,7 +1279,7 @@ struct v3dv_cmd_buffer_private_obj {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct v3dv_cmd_buffer {
|
struct v3dv_cmd_buffer {
|
||||||
struct vk_object_base base;
|
struct vk_command_buffer vk;
|
||||||
|
|
||||||
struct v3dv_device *device;
|
struct v3dv_device *device;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue