当我们在为渲染过程创建子过程时提供附件引用时,我们会执行以下操作:
VkAttachmentReference {.attachment = 1, .layout = VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL};
图像布局常量告诉Vulkan在子级结束后将图像转换到什么布局。所以它是这样的:
BEGIN_RENDER_PASS: (EXPECTS THE LAYOUT TO BE THAT SPECIFIED IN THE ATTACHMENT DESCRIPTION)
FIRST SUB-PASS ( EXPECTS THE INITIAL LAYOUT SPECIFIED IN THE ATTACHMENT DESCRIPTION)
FIRST SUB-PASS ENDS (TRANSITIONS THE IMAGE TO THAT SPECIFIED IN THE ATTACHMENT REFERENCE LAYOUT
SECOND SUB-PASS ( EXPECTS THE LAYOUT OF THE IMAGE AS THE ONE SPECIFIED IN THE LAST SUB-PASS ATTACHMENT REFERENCE, AND WHEN SUB-PASS IS FINISHED TRANSITIONS THE IMAGE LAYOUT TO THAT SPECIFIED IN LAYOUT OF ATTACHMENT REFERENCE)
END_RENDER_PASS (TRANSITIONS THE IMAGE TO THE FINAL LAYOUT. IT KNOWS WHAT LAYOUT IT'S ALREADY IN BASED ON THE THE ATTACHMENT REFERENCE LAYOUT OF THE LAST SUB-PASS)
图像布局常量告诉Vulkan子类结束后将图像转换到什么布局。
否。附件引用布局告诉Vulkan在定义此引用的子页的开始处将图像转换到什么布局。更重要的是,它是图像在子过程中所处的布局。
渲染过程的附加图像的第一个转换将是从渲染过程的initialLayout
到使用该图像的第一个子过程的参考布局。附加图像的最后一个转换将来自最终子通道的参考布局,该子通道使用渲染通道的finalLayout
的附件。