VK_EXT_memory_priority
内存管理是 Vulkan 的重要组成部分。VK_EXT_memory_priority
扩展旨在允许应用程序防止重要的分配被移动到较慢的内存。
可以通过两个应用程序(主应用程序和主机上的另一个进程)的示例来解释此扩展。随着时间的推移,两个应用程序都试图消耗有限的设备堆内存。

在这种情况下,来自主应用程序的分配仍然存在,只是可能在较慢的内存上(实现可能已将其移动到主机可见内存,直到再次需要它)。
什么 内存将被移动的决定是实现定义的。现在让我们假设这是主应用程序的内存使用情况

正如我们所见,应用程序认为某些内存对于始终尝试保持在快速内存中更为重要。
VK_EXT_memory_priority
扩展使这非常容易。在分配内存时,应用程序只需将 VkMemoryPriorityAllocateInfoEXT
添加到 VkMemoryAllocateInfo::pNext
。从这里,可以使用 0.0
和 1.0
之间的值设置 VkMemoryPriorityAllocateInfoEXT::priority
值(其中 0.5
是默认值)。如果发生上述情况,这允许应用程序帮助实现做出更好的猜测。