这种对Vulkan子通道图像布局的理解是否正确



当我们在为渲染过程创建子过程时提供附件引用时,我们会执行以下操作:

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的附件。

相关内容

最新更新