gpt4 book ai didi

vulkan - 每次缓冲区的内容发生变化时,是否都需要对缓冲区进行内存映射/取消映射?

转载 作者:行者123 更新时间:2023-12-04 08:46:21 32 4
gpt4 key购买 nike

我正在做一个 Vulkan 项目,它渲染到传出流而不是呈现它(没有交换链等):渲染的图像被复制到另一个图像( vkCmdCopyImage )然后后面的图像被内存映射( vkMapMemory ),数据被复制到其他地方,然后它被取消映射( vkUnmapMemory )。这发生在每一帧。有没有办法将(第二个)图像映射一次,进入主循环(在每个周期渲染一个帧)然后将其取消映射作为应用程序清理的一部分?
我试过这个,但看起来每当有东西被复制到图像时,早期的映射就不​​起作用,它必须被取消映射并再次映射。

最佳答案

在 Vulkan 中永远不需要取消映射已映射的内存,除非您要删除它。
但是,有必要正确同步对该内存的访问。对于在 GPU 上修改图像,使用执行和内存依赖来确保 GPU 修改对主机的可用性和可见性,CPU 可以等待/测试以确保修改可见的事件,如果内存不是主机 -连贯,您将需要调用 vkInvalidateMappedMemoryRanges以确保此类更改对主机的可见性。

关于vulkan - 每次缓冲区的内容发生变化时,是否都需要对缓冲区进行内存映射/取消映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64296581/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com