微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解 Vulkan 统一布局的“设置”索引

如何解决了解 Vulkan 统一布局的“设置”索引

我一直在关注(非常棒的)nvpro 光线追踪教程,并对使用 layout(binding = 0,set = 1) 绑定 CameraProperties 统一缓冲区的方式有疑问 - 我理解绑定 = 0,但为什么设置 = 1 ?

教程说“set = 1 是因为它是传递给 pipelineLayoutCreateInfo.setPSetLayouts 的第二个描述符集”,但是当我查看 Hellovulkan::createGraphicsPipeline() 时,我看到布局计数是 1 ,这是使用 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 中,该集合自动从管道布局创建信息中的描述符集布局索引派生而来。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。