了解 Vulkan 统一布局的 'set' 索引
Understanding Vulkan uniform layout's 'set' index
我一直在关注(非常棒的)nvpro 光线追踪教程,并且对使用 layout(binding = 0, set = 1)
绑定 CameraProperties 统一缓冲区的方式有疑问 - 我理解绑定 = 0,但为什么设置= 1?
教程说“set = 1
是因为它是传递给 pipelineLayoutCreateInfo.setPSetLayouts
的第二个描述符集”,但是当我查看 HelloVulkan::createGraphicsPipeline()
时,我看到了布局计数是一个,这是使用 m_descSetLayout
(绑定相机统一缓冲区)的地方。我错过了什么?
教程的相关部分是 here。
谢谢!
参见第 7.1 章:
std::vector<vk::DescriptorSetLayout> rtDescSetLayouts = {m_rtDescSetLayout, m_descSetLayout};
pipelineLayoutCreateInfo.setSetLayoutCount(static_cast<uint32_t>(rtDescSetLayouts.size()));
pipelineLayoutCreateInfo.setPSetLayouts(rtDescSetLayouts.data());
管道布局包含两个描述符集布局,m_rtDescSetLayout
用于索引 0 处的加速结构(集合 0)和 m_descSetLayout
用于索引 1 中的屏幕描述符(集合 1)。在 Vulkan 中,集合自动派生自管道布局创建信息中的描述符集布局索引。
我一直在关注(非常棒的)nvpro 光线追踪教程,并且对使用 layout(binding = 0, set = 1)
绑定 CameraProperties 统一缓冲区的方式有疑问 - 我理解绑定 = 0,但为什么设置= 1?
教程说“set = 1
是因为它是传递给 pipelineLayoutCreateInfo.setPSetLayouts
的第二个描述符集”,但是当我查看 HelloVulkan::createGraphicsPipeline()
时,我看到了布局计数是一个,这是使用 m_descSetLayout
(绑定相机统一缓冲区)的地方。我错过了什么?
教程的相关部分是 here。
谢谢!
参见第 7.1 章:
std::vector<vk::DescriptorSetLayout> rtDescSetLayouts = {m_rtDescSetLayout, m_descSetLayout};
pipelineLayoutCreateInfo.setSetLayoutCount(static_cast<uint32_t>(rtDescSetLayouts.size()));
pipelineLayoutCreateInfo.setPSetLayouts(rtDescSetLayouts.data());
管道布局包含两个描述符集布局,m_rtDescSetLayout
用于索引 0 处的加速结构(集合 0)和 m_descSetLayout
用于索引 1 中的屏幕描述符(集合 1)。在 Vulkan 中,集合自动派生自管道布局创建信息中的描述符集布局索引。