【发布时间】:2018-07-20 18:53:22
【问题描述】:
我有一大块设备内存和多个要绑定的统一缓冲区。显然,我需要一个偏移量。让我们看看vkBindBufferMemory 的文档是怎么说的:
memoryOffset是内存区域的起始偏移量 绑定到缓冲区...
memoryOffset必须是alignment成员的整数倍 从调用返回的VkMemoryRequirements结构vkGetBufferMemoryRequirements带缓冲区
好的,这很清楚 - 我创建了多个使用相同标志的统一缓冲区,因此我可以对所有缓冲区使用相同的对齐方式。但是等等,在规范中有另一个vkBindBufferMemory 的用法说明:
如果缓冲区是用
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT创建的,memoryOffset必须是的倍数VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment
这令人困惑。我可以安全地使用VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment 来处理我的情况,还是应该将其与VkMemoryRequirements::alignment 进行比较并选择最低的?
【问题讨论】:
标签: vulkan