SpiecsEngine
 
Loading...
Searching...
No Matches

◆ AddBarriers() [1/2]

void Spices::Renderer::RenderBehaveBuilder::AddBarriers ( VkBuffer buffer,
VkAccessFlags srcAccessMask,
VkAccessFlags dstAccessMask,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t srcQueueFamilyIndex = VulkanRenderBackend::GetState().m_GraphicQueueFamily,
uint32_t dstQueueFamilyIndex = VulkanRenderBackend::GetState().m_ComputeQueueFamily,
VkCommandBuffer cmdBuffer = VK_NULL_HANDLE )
virtual

Add a Buffer Barrier from compute queue to this graphic queue.

Parameters
[in]bufferVulkanImage.
[in]srcAccessMaskVkAccessFlags.
[in]dstAccessMaskVkAccessFlags.
[in]srcStageMaskVkPipelineStageFlags.
[in]dstStageMaskVkPipelineStageFlags.
[in]srcQueueFamilyIndexsource queue family.
[in]dstQueueFamilyIndexdest queue family.
[in]cmdBufferInput a VkCommandBuffer if needs, otherwise use self variable.

Reimplemented in Spices::Renderer::ComputeRenderBehaveBuilder.

Definition at line 2050 of file Renderer.cpp.

2060 {
2062
2063 VkBufferMemoryBarrier bufferBarrier {};
2064 bufferBarrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
2065 bufferBarrier.srcAccessMask = srcAccessMask;
2066 bufferBarrier.dstAccessMask = dstAccessMask;
2067 bufferBarrier.srcQueueFamilyIndex = srcQueueFamilyIndex; // Fetch From Graphic to Compute.
2068 bufferBarrier.dstQueueFamilyIndex = dstQueueFamilyIndex;
2069 bufferBarrier.size = VK_WHOLE_SIZE;
2070 bufferBarrier.buffer = buffer;
2071
2072 vkCmdPipelineBarrier(
2073 cmdBuffer ? cmdBuffer : m_CommandBuffer,
2074 srcStageMask,
2075 dstStageMask,
2076 0,
2077 0, nullptr,
2078 1, &bufferBarrier,
2079 0, nullptr
2080 );
2081 }
#define SPICES_PROFILE_ZONE
VkCommandBuffer m_CommandBuffer
Current CommandBuffer.
Definition Renderer.h:1539