Vulkan附件说明

时间:2016-06-03 09:25:15

标签: vulkan

渲染通道附件需要字段初始布局和最终布局,并在文档中进行了描述:

initialLayout 是附件图片子资源在渲染过程实例开始时所处的布局。

finalLayout 是附件图片子资源在渲染过程实例结束时转换为的布局。在渲染过程实例期间,如果需要,附件可以在每个子过程中使用不同的布局。

这是否意味着当我们调用和结束渲染过程实例时附件将自动转换,或者是否意味着程序员应该在渲染过程之前和之后转换到这些布局?感谢

1 个答案:

答案 0 :(得分:5)

请注意语言的差异:

  

initialLayout 是渲染过程实例开始时附件图片子资源将在中的布局。

     

finalLayout 是渲染通道实例结束时附件图片子资源将转换为的布局。

如果您认为渲染过程需要在子窗口之间自动插入布局过渡,则会更清楚。要做到这一点,它必须知道附件当前所处的布局以及转换到的布局。 InitialLayout提供有关图像子资源进入渲染过程时所处布局的信息。

自动布局转换 在渲染过程开始时发生,但是,从initialLayout到首次使用附件的子通道的附件引用中指定的布局。同样,从最后一个子通道使用的布局到分配给finalLayout的布局有一个自动布局转换。

我假设适用于oldLayout图像障碍的相同规则也适用于此处的initialLayout。值得注意的是:

  

oldLayout必须为VK_IMAGE_LAYOUT_UNDEFINED,VK_IMAGE_LAYOUT_PREINITIALIZED或受屏障影响的图像区域的当前布局。

因此,initialLayout可以用作是否要丢弃图像内容的提示。我很惊讶有效的图像布局也不包含在附件说明的有效用法中。