aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-16 23:02:15 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-16 23:02:15 +0100
commitc4ed9a51d9630ceb87d5e4a256aee6cbdb82b0b9 (patch)
treeb5a75e425251be41d64b39440e4c800620461105
parent1a0aba5a41c7af5715a4b6d1405af12944a55c87 (diff)
Make barrier more precise
-rw-r--r--src/vk-renderer.cpp14
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,