文档管理中心
我的
指南图形计算服务GPU扩展能力Smart Cache(Vulkan版本)

Smart Cache(Vulkan版本)

查询extension

使用vkEnumerateDeviceExtensionProperties函数查询上报的extension,如果存在VK_HUAWEI_smart_cache则说明支持该扩展。

收起
自动换行
深色代码主题
复制
  1. vkEnumerateDeviceExtensionProperties(physicalDevice, nullptr, &extCount, &extensions.front());

创建device

在使用vkCreateDevice创建device时,将VK_HUAWEI_smart_cache加入扩展列表。

收起
自动换行
深色代码主题
复制
  1. supportedExtensions.push_back(ext.extensionName);

查询Smart Cache容量

使用vkGetDeviceSmartCacheSizeHUAWEI函数查询Smart Cache的容量。

收起
自动换行
深色代码主题
复制
  1. VkResult vkGetDeviceSmartCacheSizeHUAWEI(VkDevice device,uint32_t *cacheSize);

设置内存属性

Smart Cache的内存属性标志位是:

收起
自动换行
深色代码主题
复制
  1. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
收起
自动换行
深色代码主题
复制
  1. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
收起
自动换行
深色代码主题
复制
  1. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT

在满足内存属性的前提下,调用vkAllocateMemory函数时,建议把VkMemoryAllocateInfo结构体的memoryTypeIndex设为3、4或5,对应表示申请内存的用途为framebuffer attachment、normal texture或texture。