VkMemoryPropertyFlagBits用于说明存储空间的属性

源码如下:

typedef enum VkMemoryPropertyFlagBits {
    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
    VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkMemoryPropertyFlagBits;
  • VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT:表示设备(GPU)访问这块存储效率最高。
  •  VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT:表示这块存储可以通过调用vkMapMemory进行映射,使得主机(CPU)可以访问。
  • VK_MEMORY_PROPERTY_HOST_COHERENT_BIT:表示这块存储不需要调用vkFlushMappedMemoryRanges和vkInvalidateMappedMemoryRanges来flush主机写入的数据,就可以使设备可见,对于设备写入的数据也可以直接对主机可见。
  • VK_MEMORY_PROPERTY_HOST_CACHED_BIT:表示这块存储缓存在主机上。主机内存访问非缓存内存比缓存内存慢,然而,未缓存的内存始终是主机相关的。
  • VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT:表示只能设备访问。存储不能同时是VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT和VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT类型。
  • VK_MEMORY_PROPERTY_PROTECTED_BIT:表示只运行设备访问,同时允许受保护的队列操作访问。
  • VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD:
  • VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD:

更多推荐

VkMemoryPropertyFlagBits解析