vulkan/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_DEVICE_COHERENT_BIT_AMD = 0x00000040, VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, 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 :
待补充
VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV:
待补充