取消映射后可以刷新内存范围吗?
起初似乎是错误的,因为该函数被调用vkFlushMappedMemoryRanges()
,但文档似乎暗示内存已准备好刷新,即使在未映射之后:
取消映射非一致性内存不会隐式刷新映射的内存,并且未刷新的主机写入可能永远不会对设备可见。但是,实现必须确保未刷新的写入不会对任何其他内存可见。
的有效使用规则之一vkFlushMappedMemoryRanges()
是所有VkMappedMemoryRange
结构都必须有效。该结构的有效性规则说:
memory
当前必须映射
因此,如果您取消了内存映射,则无法刷新它。
然而,冲洗确实说:
如果该集合中的任何字节自首次映射或上次刷新以来已被主机写入,则该范围内的字节将被刷新。
很明显,如果您取消映射然后再次映射它,您可以刷新它并仍然看到数据。就个人而言,我不会指望它。
归档时间: |
|
查看次数: |
705 次 |
最近记录: |