rtengine/src/renderer/vk/command_buffers.h
Kevin Trogant 33e596c9d6
Some checks failed
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Failing after 1m45s
Ubuntu Cross to Win64 / Compile for linux (1.4.0, ubuntu-latest) (push) Successful in 1m28s
feat(vk): Basic command list submit workflow
2024-08-04 13:31:40 +02:00

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