VkMemoryPropertyFlagBits解析

Vulkan中的VkMemoryPropertyFlagBits枚举定义了内存属性标志,包括设备本地、主机可见、主机同步、缓存策略以及延迟分配等特性。这些标志用于指定GPU内存的访问效率、主机映射、数据同步及缓存行为,对优化GPU与CPU之间的数据交互至关重要。
摘要由CSDN通过智能技术生成

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:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值