diff --git a/include/QF/Vulkan/barrier.h b/include/QF/Vulkan/barrier.h index 6288241e2..9880a56f0 100644 --- a/include/QF/Vulkan/barrier.h +++ b/include/QF/Vulkan/barrier.h @@ -22,6 +22,7 @@ typedef struct qfv_bufferbarrier_s { enum { qfv_LT_Undefined_to_TransferDst, qfv_LT_Undefined_to_General, + qfv_LT_Undefined_to_ShaderReadOnly, qfv_LT_TransferDst_to_TransferSrc, qfv_LT_TransferDst_to_General, qfv_LT_TransferDst_to_ShaderReadOnly, diff --git a/libs/video/renderer/vulkan/barrier.c b/libs/video/renderer/vulkan/barrier.c index 37d45bdf0..20ea50195 100644 --- a/libs/video/renderer/vulkan/barrier.c +++ b/libs/video/renderer/vulkan/barrier.c @@ -57,6 +57,19 @@ const qfv_imagebarrier_t imageBarriers[] = { { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 } }, }, + [qfv_LT_Undefined_to_ShaderReadOnly] = { + .srcStages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + .dstStages = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + .barrier = { + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, 0, + 0, + VK_ACCESS_SHADER_READ_BIT, + VK_IMAGE_LAYOUT_UNDEFINED, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_IGNORED, 0, + { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 } + }, + }, [qfv_LT_TransferDst_to_TransferSrc] = { .srcStages = VK_PIPELINE_STAGE_TRANSFER_BIT, .dstStages = VK_PIPELINE_STAGE_TRANSFER_BIT,