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

Vulkan:在后续RenderPasses中读取附件数据的方式

如何解决Vulkan:在后续RenderPasses中读取附件数据的方式

给出2个RenderPass,A和B以及两者都访问的附件X,如果A在最后一个子通道上对X进行了.storeOp=store,而B在第一个子通道上对X进行了.loadOp=load ,B可以从X读取作为输入附件吗?

还有,我可以想到三种从以前的RenderPass读取附件数据的方法

  • 使用采样器。
  • (可能)作为输入附件。
  • 作为存储映像。

还有其他方法吗?

解决方法

渲染通道实例结束后,所有附件将不再是附件。从那时起,它们只是常规图像。图像的内容由渲染过程的存储操作控制。但是,一旦存储操作完成(取决于对依赖项的正确使用),图像就会具有存储操作产生的数据。

因此,不存在“来自先前RenderPass的附件”之类的东西。仅存在图像及其数据。该图像如何获取其数据(再次取决于对依赖项的正确使用)与您现在将如何使用它无关。数据在那里,可以用访问任何图像的任何方式访问它,而仅受您选择施加的限制。

因此,如果图像包含一些数据,并且将其用作附件,并且使用了load的加载操作,则该附件中的数据将具有来自图像的图像数据,然后成为附件。 / em>数据如何到达那里。这就是加载操作的工作方式。

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