首页 > 解决方案 > Vulkan:(MSAA)仅解析子通道的一些颜色附件

问题描述

我想我设置正确,但我仍然收到验证错误。

我正在尝试定义一个带有 2 个颜色附件的子通道:第一个是交换链表面,第二个是常规颜色附件。我想对第二个颜色附件执行多重采样,但不是第一个。

由于有 2 个颜色附件,我将 2 添加pResolveAttachmentsVkSubpassDescription. 第一个VkAttachmentReference条目是指交换链表面,用 .attachmentas定义VK_ATTACHMENT_UNUSED。那是:

pResolveAttachments[0].attachment=VK_ATTACHMENT_UNUSED

据我了解,这应该会阻止 Vulkan 对pColorAttachments[0].

每个规格:

如果 pResolveAttachments 不为 NULL,则其每个元素对应一个颜色附件(pColorAttachments 中相同索引处的元素),并为每个附件定义一个多样本解析操作。在每个子通道结束时,多样本解析操作读取子通道的颜色附件,并将渲染区域内每个像素的样本解析到相应解析附件中的相同像素位置,除非解析附件索引为 VK_ATTACHMENT_UNUSED。

但是,我收到验证错误。我究竟做错了什么?

验证错误: 验证错误

英伟达 Nsight: 在此处输入图像描述

从我的日志文件中: 在此处输入图像描述

标签: vulkan

解决方案


包含此错误的 Vulkan 限制是所有输出附件都需要具有相同的样本计数。因此,无论 MSAA 操作如何,此特定用例都无效,因为第一个颜色附件是交换链表面,第二个是颜色附件。交换链图像的样本数只能为 1。

首要错误是关于颜色附件没有相同的样本数。1


推荐阅读