Source and destination stage flags as parameters for setImageLayout, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT as default for both

This commit is contained in:
saschawillems 2016-12-15 19:50:38 +01:00
parent 82152a4382
commit 179984f26d
2 changed files with 14 additions and 10 deletions

View file

@ -116,7 +116,9 @@ namespace vkTools
VkImageAspectFlags aspectMask, VkImageAspectFlags aspectMask,
VkImageLayout oldImageLayout, VkImageLayout oldImageLayout,
VkImageLayout newImageLayout, VkImageLayout newImageLayout,
VkImageSubresourceRange subresourceRange) VkImageSubresourceRange subresourceRange,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask)
{ {
// Create an image barrier object // Create an image barrier object
VkImageMemoryBarrier imageMemoryBarrier = vkTools::initializers::imageMemoryBarrier(); VkImageMemoryBarrier imageMemoryBarrier = vkTools::initializers::imageMemoryBarrier();
@ -216,15 +218,11 @@ namespace vkTools
break; break;
} }
// Put barrier on top
VkPipelineStageFlags srcStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
VkPipelineStageFlags destStageFlags = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
// Put barrier inside setup command buffer // Put barrier inside setup command buffer
vkCmdPipelineBarrier( vkCmdPipelineBarrier(
cmdbuffer, cmdbuffer,
srcStageFlags, srcStageMask,
destStageFlags, dstStageMask,
0, 0,
0, nullptr, 0, nullptr,
0, nullptr, 0, nullptr,
@ -237,7 +235,9 @@ namespace vkTools
VkImage image, VkImage image,
VkImageAspectFlags aspectMask, VkImageAspectFlags aspectMask,
VkImageLayout oldImageLayout, VkImageLayout oldImageLayout,
VkImageLayout newImageLayout) VkImageLayout newImageLayout,
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask)
{ {
VkImageSubresourceRange subresourceRange = {}; VkImageSubresourceRange subresourceRange = {};
subresourceRange.aspectMask = aspectMask; subresourceRange.aspectMask = aspectMask;

View file

@ -65,14 +65,18 @@ namespace vkTools
VkImageAspectFlags aspectMask, VkImageAspectFlags aspectMask,
VkImageLayout oldImageLayout, VkImageLayout oldImageLayout,
VkImageLayout newImageLayout, VkImageLayout newImageLayout,
VkImageSubresourceRange subresourceRange); VkImageSubresourceRange subresourceRange,
VkPipelineStageFlags srcStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
// Uses a fixed sub resource layout with first mip level and layer // Uses a fixed sub resource layout with first mip level and layer
void setImageLayout( void setImageLayout(
VkCommandBuffer cmdbuffer, VkCommandBuffer cmdbuffer,
VkImage image, VkImage image,
VkImageAspectFlags aspectMask, VkImageAspectFlags aspectMask,
VkImageLayout oldImageLayout, VkImageLayout oldImageLayout,
VkImageLayout newImageLayout); VkImageLayout newImageLayout,
VkPipelineStageFlags srcStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
// Display error message and exit on fatal error // Display error message and exit on fatal error
void exitFatal(std::string message, std::string caption); void exitFatal(std::string message, std::string caption);