diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2021-01-16 23:02:15 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2021-01-16 23:02:15 +0100 |
| commit | c4ed9a51d9630ceb87d5e4a256aee6cbdb82b0b9 (patch) | |
| tree | b5a75e425251be41d64b39440e4c800620461105 /src | |
| parent | 1a0aba5a41c7af5715a4b6d1405af12944a55c87 (diff) | |
Make barrier more precise
Diffstat (limited to 'src')
| -rw-r--r-- | src/vk-renderer.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/vk-renderer.cpp b/src/vk-renderer.cpp index 5e7178a..0a374e1 100644 --- a/src/vk-renderer.cpp +++ b/src/vk-renderer.cpp @@ -61,7 +61,7 @@ void vkrenderer::compute(size_t width, size_t height) { undefined_to_general_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; undefined_to_general_barrier.pNext = nullptr; undefined_to_general_barrier.srcAccessMask = 0; - undefined_to_general_barrier.dstAccessMask = 0; + undefined_to_general_barrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT; undefined_to_general_barrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; undefined_to_general_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL; undefined_to_general_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; @@ -72,7 +72,7 @@ void vkrenderer::compute(size_t width, size_t height) { vkCmdPipelineBarrier( command_buffers[frame_index], VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 0, nullptr, @@ -91,21 +91,19 @@ void vkrenderer::compute(size_t width, size_t height) { VkImageMemoryBarrier general_to_present_barrier = {}; general_to_present_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; general_to_present_barrier.pNext = nullptr; - general_to_present_barrier.srcAccessMask = 0; - general_to_present_barrier.dstAccessMask = 0; + general_to_present_barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + general_to_present_barrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; general_to_present_barrier.oldLayout = VK_IMAGE_LAYOUT_GENERAL; general_to_present_barrier.newLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; general_to_present_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; general_to_present_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; general_to_present_barrier.image = swapchain_images[current_image_index]; general_to_present_barrier.subresourceRange = image_subresource_range; - // image_memory_barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; - // image_memory_barrier.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; vkCmdPipelineBarrier( command_buffers[frame_index], - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0, 0, nullptr, |
