创建子票证时应何时使用VK_ATTACHMENT_UNUSED?

时间:2019-05-29 22:30:28

标签: specifications vulkan

如果子通行证中不需要附件,则包括附件,并相应地在VkSubpassDescription中更新附件计数。

我看到VK_ATTACHMENT_UNUSEDVkAttachmentReference.attachment的可能值。它在原始路线上提供了哪些功能?

(最初,我认为这可能是保留子通道之间附件值的一种方法,但是pPreserveAttachments已经做到了。)

1 个答案:

答案 0 :(得分:3)

片段着色器输出绑定到Location索引。这是子通道的pColorAttachments数组的索引。

如果您的着色器出于任何原因写入位置0和2,则意味着pColorAttachments必须具有3个条目。条目索引1为VK_ATTACHMENT_UNUSED

现在,为什么您的着色器会这样做?好吧,可以在用于不同子通道的不同管线中使用相同的着色器模块。在一个子通道中,可能有3个附件,并且此着色器根本不写入位置1(作为管道设置的一部分,它关闭了对该附件的写入)。在另一个子通道中,只有2个附件,但是您想使用相同的着色器。

是的,理论上您可以使用特殊化常数来更改Location索引。我不会说这是一个广泛使用或非常有用的功能。但是没有理由不支持它。