Lines Matching full:pool
51 destroy_free_command_buffers(struct vk_command_pool *pool) in destroy_free_command_buffers() argument
53 for (uint32_t i = 0; i < ARRAY_SIZE(pool->free_command_buffers); i++) { in destroy_free_command_buffers()
55 &pool->free_command_buffers[i], pool_link) { in destroy_free_command_buffers()
58 assert(list_is_empty(&pool->free_command_buffers[i])); in destroy_free_command_buffers()
64 struct vk_command_pool *pool, in vk_command_pool_init() argument
68 memset(pool, 0, sizeof(*pool)); in vk_command_pool_init()
69 vk_object_base_init(device, &pool->base, in vk_command_pool_init()
72 pool->flags = pCreateInfo->flags; in vk_command_pool_init()
73 pool->queue_family_index = pCreateInfo->queueFamilyIndex; in vk_command_pool_init()
74 pool->alloc = pAllocator ? *pAllocator : device->alloc; in vk_command_pool_init()
75 pool->command_buffer_ops = device->command_buffer_ops; in vk_command_pool_init()
76 pool->recycle_command_buffers = should_recycle_command_buffers(device); in vk_command_pool_init()
77 list_inithead(&pool->command_buffers); in vk_command_pool_init()
79 for (uint32_t i = 0; i < ARRAY_SIZE(pool->free_command_buffers); i++) in vk_command_pool_init()
80 list_inithead(&pool->free_command_buffers[i]); in vk_command_pool_init()
86 vk_command_pool_finish(struct vk_command_pool *pool) in vk_command_pool_finish() argument
89 &pool->command_buffers, pool_link) { in vk_command_pool_finish()
92 assert(list_is_empty(&pool->command_buffers)); in vk_command_pool_finish()
94 destroy_free_command_buffers(pool); in vk_command_pool_finish()
96 vk_object_base_finish(&pool->base); in vk_command_pool_finish()
106 struct vk_command_pool *pool; in vk_common_CreateCommandPool() local
109 pool = vk_alloc2(&device->alloc, pAllocator, sizeof(*pool), 8, in vk_common_CreateCommandPool()
111 if (pool == NULL) in vk_common_CreateCommandPool()
114 result = vk_command_pool_init(device, pool, pCreateInfo, pAllocator); in vk_common_CreateCommandPool()
116 vk_free2(&device->alloc, pAllocator, pool); in vk_common_CreateCommandPool()
120 *pCommandPool = vk_command_pool_to_handle(pool); in vk_common_CreateCommandPool()
131 VK_FROM_HANDLE(vk_command_pool, pool, commandPool); in vk_common_DestroyCommandPool()
133 if (pool == NULL) in vk_common_DestroyCommandPool()
136 vk_command_pool_finish(pool); in vk_common_DestroyCommandPool()
137 vk_free2(&device->alloc, pAllocator, pool); in vk_common_DestroyCommandPool()
145 VK_FROM_HANDLE(vk_command_pool, pool, commandPool); in vk_common_ResetCommandPool()
147 &pool->base.device->dispatch_table; in vk_common_ResetCommandPool()
159 &pool->command_buffers, pool_link) { in vk_common_ResetCommandPool()
171 vk_command_buffer_recycle_or_destroy(struct vk_command_pool *pool, in vk_command_buffer_recycle_or_destroy() argument
174 assert(pool == cmd_buffer->pool); in vk_command_buffer_recycle_or_destroy()
176 if (pool->recycle_command_buffers) { in vk_command_buffer_recycle_or_destroy()
180 list_add(&cmd_buffer->pool_link, &pool->free_command_buffers[cmd_buffer->level]); in vk_command_buffer_recycle_or_destroy()
187 vk_command_pool_find_free(struct vk_command_pool *pool, in vk_command_pool_find_free() argument
190 if (list_is_empty(&pool->free_command_buffers[level])) in vk_command_pool_find_free()
194 list_first_entry(&pool->free_command_buffers[level], in vk_command_pool_find_free()
198 list_addtail(&cmd_buffer->pool_link, &pool->command_buffers); in vk_command_pool_find_free()
208 VK_FROM_HANDLE(vk_command_pool, pool, pAllocateInfo->commandPool); in vk_common_AllocateCommandBuffers()
212 assert(device == vk_device_to_handle(pool->base.device)); in vk_common_AllocateCommandBuffers()
216 vk_command_pool_find_free(pool, pAllocateInfo->level); in vk_common_AllocateCommandBuffers()
218 result = pool->command_buffer_ops->create(pool, pAllocateInfo->level, &cmd_buffer); in vk_common_AllocateCommandBuffers()
233 vk_command_buffer_recycle_or_destroy(pool, cmd_buffer); in vk_common_AllocateCommandBuffers()
247 VK_FROM_HANDLE(vk_command_pool, pool, commandPool); in vk_common_FreeCommandBuffers()
255 vk_command_buffer_recycle_or_destroy(pool, cmd_buffer); in vk_common_FreeCommandBuffers()
260 vk_command_pool_trim(struct vk_command_pool *pool, in vk_command_pool_trim() argument
263 destroy_free_command_buffers(pool); in vk_command_pool_trim()
271 VK_FROM_HANDLE(vk_command_pool, pool, commandPool); in vk_common_TrimCommandPool()
273 vk_command_pool_trim(pool, flags); in vk_common_TrimCommandPool()