创建子通道时什么时候应该使用 VK_ATTACHMENT_UNUSED?
When should I use VK_ATTACHMENT_UNUSED when creating subpasses?
如果我不需要子通道中的附件,我会不包含附件并在VkSubpassDescription
中相应地更新附件计数。
我看到 VK_ATTACHMENT_UNUSED
是 VkAttachmentReference.attachment
的可能值。它比原始路线提供了哪些功能?
(最初,我认为这可能是一种保留子通道之间附件值的方法,但 pPreserveAttachments
已经这样做了。)
片段着色器输出绑定到 Location
索引。这是子通道 pColorAttachments
数组的索引。
如果你有一个着色器,无论出于何种原因,写入位置 0 和 2,那么这意味着 pColorAttachments
必须有 3 个条目。条目索引 1 是 VK_ATTACHMENT_UNUSED
.
现在,您的着色器为什么要这样做?好吧,可以在用于不同子通道的不同管道中使用相同的着色器模块。在一个子通道中,可能有 3 个附件,并且此着色器根本不写入位置 1(它关闭了对该附件的写入,作为管线设置的一部分)。在另一个子通道中,只有2个附件,但你想使用相同的着色器。
是的,理论上您可以使用专业化常量来更改 Location
索引。我不会说这是一个广泛使用或非常有用的功能。但没有理由不支持它。
如果我不需要子通道中的附件,我会不包含附件并在VkSubpassDescription
中相应地更新附件计数。
我看到 VK_ATTACHMENT_UNUSED
是 VkAttachmentReference.attachment
的可能值。它比原始路线提供了哪些功能?
(最初,我认为这可能是一种保留子通道之间附件值的方法,但 pPreserveAttachments
已经这样做了。)
片段着色器输出绑定到 Location
索引。这是子通道 pColorAttachments
数组的索引。
如果你有一个着色器,无论出于何种原因,写入位置 0 和 2,那么这意味着 pColorAttachments
必须有 3 个条目。条目索引 1 是 VK_ATTACHMENT_UNUSED
.
现在,您的着色器为什么要这样做?好吧,可以在用于不同子通道的不同管道中使用相同的着色器模块。在一个子通道中,可能有 3 个附件,并且此着色器根本不写入位置 1(它关闭了对该附件的写入,作为管线设置的一部分)。在另一个子通道中,只有2个附件,但你想使用相同的着色器。
是的,理论上您可以使用专业化常量来更改 Location
索引。我不会说这是一个广泛使用或非常有用的功能。但没有理由不支持它。