SpiecsEngine
 
Loading...
Searching...
No Matches

◆ Barrier()

void Spices::VulkanImage::Barrier ( VkCommandBuffer commandBuffer,
VkAccessFlags srcAccessMask,
VkAccessFlags dstAccessMask,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
uint32_t srcQueueFamilyIndex,
uint32_t dstQueueFamilyIndex ) const

Wrapper of Call vkCmdImageBarrier.

Parameters
[in]commandBuffer.
[in]srcAccessMask.
[in]dstAccessMask.
[in]srcStageMask.
[in]dstStageMask.
[in]srcQueueFamilyIndex.
[in]dstQueueFamilyIndex.

Definition at line 282 of file VulkanImage.cpp.

291 {
293
294 VkImageSubresourceRange range{};
295 range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
296 range.baseMipLevel = 0;
297 range.levelCount = m_MipLevels;
298 range.baseArrayLayer = 0;
299 range.layerCount = m_Layers;
300
301 VkImageMemoryBarrier imageBarrier {};
302 imageBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
303 imageBarrier.srcAccessMask = srcAccessMask;
304 imageBarrier.dstAccessMask = dstAccessMask;
305 imageBarrier.srcQueueFamilyIndex = srcQueueFamilyIndex; // Fetch From Graphic to Compute.
306 imageBarrier.dstQueueFamilyIndex = dstQueueFamilyIndex;
307 imageBarrier.image = m_Image;
308 imageBarrier.subresourceRange = range;
309
310 vkCmdPipelineBarrier(
311 commandBuffer,
312 srcStageMask,
313 dstStageMask,
314 0,
315 0, nullptr,
316 0, nullptr,
317 1, &imageBarrier
318 );
319 }
#define SPICES_PROFILE_ZONE
uint32_t m_MipLevels
Image mipmaps num.
VkImage m_Image
The VkImage this Class Wrapped.
uint32_t m_Layers
Image layer(texture cube: 6).