summaryrefslogtreecommitdiff
path: root/video.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'video.cpp')
-rw-r--r--video.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/video.cpp b/video.cpp
index 6d52a57..82dd0f7 100644
--- a/video.cpp
+++ b/video.cpp
@@ -2455,6 +2455,14 @@ void Context::transition(Texture_Id id, Resource_State state) {
src_stage = VK_PIPELINE_STAGE_TRANSFER_BIT;
dst_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
} else if (
+ src_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL &&
+ dst_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
+ ) {
+ b.srcAccessMask = VK_ACCESS_SHADER_READ_BIT;
+ b.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
+ src_stage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+ dst_stage = VK_PIPELINE_STAGE_TRANSFER_BIT;
+ } else if (
src_layout == VK_IMAGE_LAYOUT_UNDEFINED &&
dst_layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
) {