anv: Use vk_command_pool

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917>
This commit is contained in:
Jason Ekstrand
2022-02-07 14:03:21 -06:00
committed by Marge Bot
parent a10b6d1c6f
commit c5b8ee8810
7 changed files with 46 additions and 47 deletions

View File

@@ -238,7 +238,7 @@ anv_cmd_pipeline_state_finish(struct anv_cmd_buffer *cmd_buffer,
if (pipe_state->push_descriptors[i]) {
anv_descriptor_set_layout_unref(cmd_buffer->device,
pipe_state->push_descriptors[i]->set.layout);
vk_free(&cmd_buffer->pool->alloc, pipe_state->push_descriptors[i]);
vk_free(&cmd_buffer->pool->vk.alloc, pipe_state->push_descriptors[i]);
}
}
}
@@ -251,7 +251,7 @@ anv_cmd_state_finish(struct anv_cmd_buffer *cmd_buffer)
anv_cmd_pipeline_state_finish(cmd_buffer, &state->gfx.base);
anv_cmd_pipeline_state_finish(cmd_buffer, &state->compute.base);
vk_free(&cmd_buffer->pool->alloc, state->attachments);
vk_free(&cmd_buffer->pool->vk.alloc, state->attachments);
}
static void
@@ -270,7 +270,7 @@ static VkResult anv_create_cmd_buffer(
struct anv_cmd_buffer *cmd_buffer;
VkResult result;
cmd_buffer = vk_alloc2(&device->vk.alloc, &pool->alloc, sizeof(*cmd_buffer),
cmd_buffer = vk_alloc2(&device->vk.alloc, &pool->vk.alloc, sizeof(*cmd_buffer),
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (cmd_buffer == NULL)
return vk_error(pool, VK_ERROR_OUT_OF_HOST_MEMORY);
@@ -312,7 +312,7 @@ static VkResult anv_create_cmd_buffer(
fail_vk:
vk_command_buffer_finish(&cmd_buffer->vk);
fail_alloc:
vk_free2(&device->vk.alloc, &pool->alloc, cmd_buffer);
vk_free2(&device->vk.alloc, &pool->vk.alloc, cmd_buffer);
return result;
}
@@ -362,10 +362,10 @@ anv_cmd_buffer_destroy(struct anv_cmd_buffer *cmd_buffer)
anv_cmd_state_finish(cmd_buffer);
vk_free(&cmd_buffer->pool->alloc, cmd_buffer->self_mod_locations);
vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer->self_mod_locations);
vk_command_buffer_finish(&cmd_buffer->vk);
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->alloc,
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->vk.alloc,
cmd_buffer);
}
@@ -1375,24 +1375,24 @@ VkResult anv_CreateCommandPool(
ANV_FROM_HANDLE(anv_device, device, _device);
struct anv_cmd_pool *pool;
pool = vk_object_alloc(&device->vk, pAllocator, sizeof(*pool),
VK_OBJECT_TYPE_COMMAND_POOL);
pool = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*pool), 8,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (pool == NULL)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
VkResult result = vk_command_pool_init(&pool->vk, &device->vk,
pCreateInfo, pAllocator);
if (result != VK_SUCCESS) {
vk_free2(&device->vk.alloc, pAllocator, pool);
return result;
}
assert(pCreateInfo->queueFamilyIndex < device->physical->queue.family_count);
pool->queue_family =
&device->physical->queue.families[pCreateInfo->queueFamilyIndex];
if (pAllocator)
pool->alloc = *pAllocator;
else
pool->alloc = device->vk.alloc;
list_inithead(&pool->cmd_buffers);
pool->flags = pCreateInfo->flags;
*pCmdPool = anv_cmd_pool_to_handle(pool);
return VK_SUCCESS;
@@ -1414,7 +1414,8 @@ void anv_DestroyCommandPool(
anv_cmd_buffer_destroy(cmd_buffer);
}
vk_object_free(&device->vk, pAllocator, pool);
vk_command_pool_finish(&pool->vk);
vk_free2(&device->vk.alloc, pAllocator, pool);
}
VkResult anv_ResetCommandPool(
@@ -1527,7 +1528,7 @@ anv_cmd_buffer_push_descriptor_set(struct anv_cmd_buffer *cmd_buffer,
&pipe_state->push_descriptors[_set];
if (*push_set == NULL) {
*push_set = vk_zalloc(&cmd_buffer->pool->alloc,
*push_set = vk_zalloc(&cmd_buffer->pool->vk.alloc,
sizeof(struct anv_push_descriptor_set), 8,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (*push_set == NULL) {