30 lines
978 B
C
30 lines
978 B
C
#ifndef RT_VK_COMMAND_LISTS_H
|
|
#define RT_VK_COMMAND_LISTS_H
|
|
|
|
#include <volk/volk.h>
|
|
|
|
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
|