#ifndef RT_VK_COMMAND_LISTS_H #define RT_VK_COMMAND_LISTS_H #include struct rt_vk_device; typedef struct rt_vk_command_pool_set rt_vk_command_pool_set; /* Contains an array of command pools. Threads safe an index into the array * to access their own command pool set. */ typedef struct { rt_vk_command_pool_set *pools; long capacity; long next_unused; } rt_vk_command_pool_array; rt_vk_command_pool_array rtReserveCommandPoolArray(long max_threads); void rtReleaseCommandPoolArray(rt_vk_command_pool_array *array); VkCommandPool rtGetGraphicsCommandPool(struct rt_vk_device *dev); VkCommandPool rtGetComputeCommandPool(struct rt_vk_device *dev); VkCommandPool rtGetTransferCommandPool(struct rt_vk_device *dev); VkCommandBuffer rtAllocateGraphicsCommandBuffer(struct rt_vk_device *dev); VkCommandBuffer rtAllocateComputeCommandBuffer(struct rt_vk_device *dev); VkCommandBuffer rtAllocateTransferCommandBuffer(struct rt_vk_device *dev); #endif