【发布时间】:2017-07-10 16:21:58
【问题描述】:
Vulkan 中有两种类型的内存让我兴奋:
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT位表示主机缓存 管理命令vkFlushMappedMemoryRanges和vkInvalidateMappedMemoryRanges不需要刷新主机写入 设备或使设备写入对主机可见。
VK_MEMORY_PROPERTY_HOST_CACHED_BIT位表示分配的内存 使用此类型缓存在主机上。对未缓存的主机内存访问 内存比缓存内存慢,但未缓存的内存是 始终保持连贯性。
据我了解,主机和设备都会立即看到对 COHERENT 类型的内存的修改,而主机和/或设备可能不会立即看到对 CACHED 类型的内存的修改,即无效/需要刷新内存才能使缓存失效。
我已经看到一些实现结合了这两个标志,根据文档中的10.2. Device Memory 部分,它是有效的组合。是不是有矛盾(缓存和连贯)?
【问题讨论】:
标签: vulkan