vulkan: Take a vk_command_pool in vk_command_buffer_init()
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917>
This commit is contained in:

committed by
Marge Bot

parent
d59caf5d11
commit
bda4c4f6b6
@@ -449,7 +449,7 @@ radv_create_cmd_buffer(struct radv_device *device, struct radv_cmd_pool *pool,
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result =
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer);
|
||||
return result;
|
||||
@@ -4357,7 +4357,7 @@ radv_AllocateCommandBuffers(VkDevice _device, const VkCommandBufferAllocateInfo
|
||||
result = radv_reset_cmd_buffer(cmd_buffer);
|
||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||
VkResult init_result =
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &device->vk, pAllocateInfo->level);
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, pAllocateInfo->level);
|
||||
if (init_result != VK_SUCCESS)
|
||||
result = init_result;
|
||||
|
||||
|
@@ -126,7 +126,7 @@ cmd_buffer_create(struct v3dv_device *device,
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result;
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free2(&device->vk.alloc, &pool->vk.alloc, cmd_buffer);
|
||||
return result;
|
||||
|
@@ -1505,7 +1505,7 @@ tu_create_cmd_buffer(struct tu_device *device,
|
||||
if (cmd_buffer == NULL)
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free2(&device->vk.alloc, NULL, cmd_buffer);
|
||||
return result;
|
||||
@@ -1622,7 +1622,7 @@ tu_AllocateCommandBuffers(VkDevice _device,
|
||||
result = tu_reset_cmd_buffer(cmd_buffer);
|
||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||
VkResult init_result =
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &device->vk, pAllocateInfo->level);
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, pAllocateInfo->level);
|
||||
if (init_result != VK_SUCCESS)
|
||||
result = init_result;
|
||||
|
||||
|
@@ -38,7 +38,7 @@ static VkResult lvp_create_cmd_buffer(
|
||||
if (cmd_buffer == NULL)
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&pool->vk.alloc, cmd_buffer);
|
||||
return result;
|
||||
@@ -96,7 +96,7 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_AllocateCommandBuffers(
|
||||
result = lvp_reset_cmd_buffer(cmd_buffer);
|
||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||
VkResult init_result =
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &device->vk,
|
||||
vk_command_buffer_init(&cmd_buffer->vk, &pool->vk,
|
||||
pAllocateInfo->level);
|
||||
if (init_result != VK_SUCCESS)
|
||||
result = init_result;
|
||||
|
@@ -275,7 +275,7 @@ static VkResult anv_create_cmd_buffer(
|
||||
if (cmd_buffer == NULL)
|
||||
return vk_error(pool, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level);
|
||||
result = vk_command_buffer_init(&cmd_buffer->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS)
|
||||
goto fail_alloc;
|
||||
|
||||
|
@@ -1011,7 +1011,7 @@ panvk_create_cmdbuf(struct panvk_device *device,
|
||||
if (!cmdbuf)
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
VkResult result = vk_command_buffer_init(&cmdbuf->vk, &device->vk, level);
|
||||
VkResult result = vk_command_buffer_init(&cmdbuf->vk, &pool->vk, level);
|
||||
if (result != VK_SUCCESS) {
|
||||
vk_free(&device->vk.alloc, cmdbuf);
|
||||
return result;
|
||||
@@ -1068,7 +1068,7 @@ panvk_per_arch(AllocateCommandBuffers)(VkDevice _device,
|
||||
list_addtail(&cmdbuf->pool_link, &pool->active_cmd_buffers);
|
||||
|
||||
vk_command_buffer_finish(&cmdbuf->vk);
|
||||
result = vk_command_buffer_init(&cmdbuf->vk, &device->vk, pAllocateInfo->level);
|
||||
result = vk_command_buffer_init(&cmdbuf->vk, &pool->vk, pAllocateInfo->level);
|
||||
} else {
|
||||
result = panvk_create_cmdbuf(device, pool, pAllocateInfo->level, &cmdbuf);
|
||||
}
|
||||
|
@@ -23,15 +23,18 @@
|
||||
|
||||
#include "vk_command_buffer.h"
|
||||
|
||||
#include "vk_command_pool.h"
|
||||
|
||||
VkResult
|
||||
vk_command_buffer_init(struct vk_command_buffer *command_buffer,
|
||||
struct vk_device *device,
|
||||
struct vk_command_pool *pool,
|
||||
VkCommandBufferLevel level)
|
||||
{
|
||||
memset(command_buffer, 0, sizeof(*command_buffer));
|
||||
vk_object_base_init(device, &command_buffer->base,
|
||||
vk_object_base_init(pool->base.device, &command_buffer->base,
|
||||
VK_OBJECT_TYPE_COMMAND_BUFFER);
|
||||
|
||||
command_buffer->pool = pool;
|
||||
command_buffer->level = level;
|
||||
util_dynarray_init(&command_buffer->labels, NULL);
|
||||
command_buffer->region_begin = true;
|
||||
|
@@ -31,9 +31,13 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct vk_command_pool;
|
||||
|
||||
struct vk_command_buffer {
|
||||
struct vk_object_base base;
|
||||
|
||||
struct vk_command_pool *pool;
|
||||
|
||||
/** VkCommandBufferAllocateInfo::level */
|
||||
VkCommandBufferLevel level;
|
||||
|
||||
@@ -83,7 +87,7 @@ VK_DEFINE_HANDLE_CASTS(vk_command_buffer, base, VkCommandBuffer,
|
||||
|
||||
VkResult MUST_CHECK
|
||||
vk_command_buffer_init(struct vk_command_buffer *command_buffer,
|
||||
struct vk_device *device,
|
||||
struct vk_command_pool *pool,
|
||||
VkCommandBufferLevel level);
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user