mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-02-03 12:28:07 +00:00
aux/vk: Add helper for adding image memory barriers
This commit is contained in:
parent
5a2088ee3e
commit
727c087366
src/xrt/auxiliary/vk
|
@ -2054,3 +2054,41 @@ vk_locked_submit(struct vk_bundle *vk, VkQueue queue, uint32_t count, const VkSu
|
|||
os_mutex_unlock(&vk->queue_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
vk_insert_image_memory_barrier(struct vk_bundle *vk,
|
||||
VkCommandBuffer cmdbuffer,
|
||||
VkImage image,
|
||||
VkAccessFlags srcAccessMask,
|
||||
VkAccessFlags dstAccessMask,
|
||||
VkImageLayout oldImageLayout,
|
||||
VkImageLayout newImageLayout,
|
||||
VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags dstStageMask,
|
||||
VkImageSubresourceRange subresourceRange)
|
||||
{
|
||||
|
||||
VkImageMemoryBarrier image_memory_barrier = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
|
||||
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
||||
.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
||||
.srcAccessMask = srcAccessMask,
|
||||
.dstAccessMask = dstAccessMask,
|
||||
.oldLayout = oldImageLayout,
|
||||
.newLayout = newImageLayout,
|
||||
.image = image,
|
||||
.subresourceRange = subresourceRange,
|
||||
};
|
||||
|
||||
vk->vkCmdPipelineBarrier( //
|
||||
cmdbuffer, // commandBuffer
|
||||
srcStageMask, // srcStageMask
|
||||
dstStageMask, // dstStageMask
|
||||
0, // dependencyFlags
|
||||
0, // memoryBarrierCount
|
||||
NULL, // pMemoryBarriers
|
||||
0, // bufferMemoryBarrierCount
|
||||
NULL, // pBufferMemoryBarriers
|
||||
1, // imageMemoryBarrierCount
|
||||
&image_memory_barrier); // pImageMemoryBarriers
|
||||
}
|
||||
|
|
|
@ -834,7 +834,6 @@ vk_begin_command_buffer(struct vk_bundle *vk, VkCommandBuffer command_buffer);
|
|||
VkResult
|
||||
vk_end_command_buffer(struct vk_bundle *vk, VkCommandBuffer command_buffer);
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Compositor swapchain image flags helpers, in the vk_compositor_flags.c file.
|
||||
|
@ -900,6 +899,25 @@ VkImageAspectFlags
|
|||
vk_csci_get_image_view_aspect(VkFormat format, enum xrt_swapchain_usage_bits bits);
|
||||
|
||||
|
||||
/*!
|
||||
*
|
||||
* Adds barrier to image
|
||||
*
|
||||
*/
|
||||
void
|
||||
vk_insert_image_memory_barrier(struct vk_bundle *vk,
|
||||
VkCommandBuffer cmdbuffer,
|
||||
VkImage image,
|
||||
VkAccessFlags srcAccessMask,
|
||||
VkAccessFlags dstAccessMask,
|
||||
VkImageLayout oldImageLayout,
|
||||
VkImageLayout newImageLayout,
|
||||
VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags dstStageMask,
|
||||
VkImageSubresourceRange subresourceRange);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue