繁体   English   中英

VkAttachmentReference::layout 的目的是什么?

[英]What is the purpose of VkAttachmentReference::layout?

我试图理解为什么我们需要VkAttachmentReference::layout 文档说:

layout是一个VkImageLayout值,指定附件在子通道期间使用的布局。

换句话说,它告诉在子通道开始之前附件将转换到哪个布局。

但是这些信息已经可以通过VkAttachmentDescription::initialLayout 这是文档中的引用:

initialLayout是渲染过程实例开始时附件图像子资源将处于的布局。

是不是VkAttachmentReference::layout冗余,因为它完全重复了VkAttachmentDescription::initialLayout

不,通过initialLayout您指定图像在渲染过程之前的布局。 它可以是任何东西,例如来自前一个渲染通道的finalLayout 或者新创建图像的undefined布局。 或者present_src图像的布局从swapchain收购。

然后图像会自动从initialLayout过渡到为给定子通道指定的布局。 如果您有更多子通道,那么在每个子通道中您可以以不同的方式使用图像,而不必担心手动转换。

驱动程序需要这两个布局参数才能知道它应该执行什么转换。 Vulkan 是一个显式 API,驱动程序不跟踪任何信息(或跟踪尽可能少)。 如果没有initialLayout布局自动转换是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM