mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 23:58:10 +02:00
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Reviewed-by: Rebecca Mckeever <rebecca.mckeever@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28170>
57 lines
1.7 KiB
C
57 lines
1.7 KiB
C
/*
|
|
* Copyright © 2021 Collabora Ltd.
|
|
*
|
|
* Derived from tu_cmd_buffer.c which is:
|
|
* Copyright © 2016 Red Hat.
|
|
* Copyright © 2016 Bas Nieuwenhuizen
|
|
* Copyright © 2015 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#include "panvk_cmd_pool.h"
|
|
#include "panvk_private.h"
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
panvk_CreateCommandPool(VkDevice _device,
|
|
const VkCommandPoolCreateInfo *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkCommandPool *pCmdPool)
|
|
{
|
|
VK_FROM_HANDLE(panvk_device, device, _device);
|
|
struct panvk_cmd_pool *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(&device->vk, &pool->vk, pCreateInfo, pAllocator);
|
|
if (result != VK_SUCCESS) {
|
|
vk_free2(&device->vk.alloc, pAllocator, pool);
|
|
return result;
|
|
}
|
|
|
|
panvk_bo_pool_init(&pool->desc_bo_pool);
|
|
panvk_bo_pool_init(&pool->varying_bo_pool);
|
|
panvk_bo_pool_init(&pool->tls_bo_pool);
|
|
*pCmdPool = panvk_cmd_pool_to_handle(pool);
|
|
return VK_SUCCESS;
|
|
}
|
|
|
|
VKAPI_ATTR void VKAPI_CALL
|
|
panvk_DestroyCommandPool(VkDevice _device, VkCommandPool commandPool,
|
|
const VkAllocationCallbacks *pAllocator)
|
|
{
|
|
VK_FROM_HANDLE(panvk_device, device, _device);
|
|
VK_FROM_HANDLE(panvk_cmd_pool, pool, commandPool);
|
|
|
|
vk_command_pool_finish(&pool->vk);
|
|
|
|
panvk_bo_pool_cleanup(&pool->desc_bo_pool);
|
|
panvk_bo_pool_cleanup(&pool->varying_bo_pool);
|
|
panvk_bo_pool_cleanup(&pool->tls_bo_pool);
|
|
|
|
vk_free2(&device->vk.alloc, pAllocator, pool);
|
|
}
|