48#define VK_SEMAPHORE_LIST_MAX_COUNT 4
108#ifdef VK_KHR_timeline_semaphore
110 VkTimelineSemaphoreSubmitInfoKHR timeline_info;
126 VkSemaphore semaphore,
127 VkPipelineStageFlags stage)
129 assert(semaphore != VK_NULL_HANDLE);
133 U_LOG_E(
"vk_semaphore_list_wait_add_binary: list is full");
155 VkSemaphore semaphore,
157 VkPipelineStageFlags stage)
159 assert(semaphore != VK_NULL_HANDLE);
163 U_LOG_E(
"vk_semaphore_list_wait_add_timeline: list is full");
185 assert(semaphore != VK_NULL_HANDLE);
189 U_LOG_E(
"vk_semaphore_list_signal_add_binary: list is full");
210 assert(semaphore != VK_NULL_HANDLE);
214 U_LOG_E(
"vk_semaphore_list_signal_add_timeline: list is full");
242 const VkCommandBuffer *command_buffers,
243 uint32_t command_buffer_count,
#define U_LOG_E(...)
Log a message at U_LOGGING_ERROR level, conditional on the global log level.
Definition: u_logging.h:442
void vk_submit_info_builder_prepare(struct vk_submit_info_builder *builder, const struct vk_semaphore_list_wait *wait_semaphores, const VkCommandBuffer *command_buffers, uint32_t command_buffer_count, const struct vk_semaphore_list_signal *signal_semaphores, const void *next)
Prepare a VkSubmitInfo from wait and signal semaphore lists.
Definition: vk_submit_helpers.c:15
static void vk_semaphore_list_signal_add_timeline(struct vk_semaphore_list_signal *list, VkSemaphore semaphore, uint64_t value)
Add a timeline signal semaphore to the list with a specific value.
Definition: vk_submit_helpers.h:208
static void vk_semaphore_list_wait_add_timeline(struct vk_semaphore_list_wait *list, VkSemaphore semaphore, uint64_t value, VkPipelineStageFlags stage)
Add a timeline wait semaphore to the list with a specific value.
Definition: vk_submit_helpers.h:154
static void vk_semaphore_list_wait_add_binary(struct vk_semaphore_list_wait *list, VkSemaphore semaphore, VkPipelineStageFlags stage)
Add a binary wait semaphore to the list.
Definition: vk_submit_helpers.h:125
static void vk_semaphore_list_signal_add_binary(struct vk_semaphore_list_signal *list, VkSemaphore semaphore)
Add a binary signal semaphore to the list.
Definition: vk_submit_helpers.h:183
Accumulator for signal semaphores to be used in VkSubmitInfo.
Definition: vk_submit_helpers.h:85
uint32_t count
Number of semaphores currently in the list.
Definition: vk_submit_helpers.h:93
uint64_t values[4]
Array of semaphore values (0 for binary, value for timeline)
Definition: vk_submit_helpers.h:90
VkSemaphore semaphores[4]
Array of semaphore handles.
Definition: vk_submit_helpers.h:87
Accumulator for wait semaphores to be used in VkSubmitInfo.
Definition: vk_submit_helpers.h:61
uint64_t values[4]
Array of semaphore values (0 for binary, value for timeline)
Definition: vk_submit_helpers.h:66
VkSemaphore semaphores[4]
Array of semaphore handles.
Definition: vk_submit_helpers.h:63
uint32_t count
Number of semaphores currently in the list.
Definition: vk_submit_helpers.h:72
VkPipelineStageFlags stages[4]
Array of pipeline stage flags for each semaphore.
Definition: vk_submit_helpers.h:69
Builder for VkSubmitInfo with optional timeline semaphore support.
Definition: vk_submit_helpers.h:104
VkSubmitInfo submit_info
The main submit info structure.
Definition: vk_submit_helpers.h:106
Basic logging functionality.
Common Vulkan code header.
#define VK_SEMAPHORE_LIST_MAX_COUNT
Maximum number of semaphores that can be accumulated in semaphore lists.
Definition: vk_submit_helpers.h:48