合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
使用vkEnumerateDeviceExtensionProperties函数查询上报的extension,如果存在VK_HUAWEI_smart_cache则说明支持该扩展。
- vkEnumerateDeviceExtensionProperties(physicalDevice, nullptr, &extCount, &extensions.front());
在使用vkCreateDevice创建device时,将VK_HUAWEI_smart_cache加入扩展列表。
- supportedExtensions.push_back(ext.extensionName);
使用vkGetDeviceSmartCacheSizeHUAWEI函数查询Smart Cache的容量。
- VkResult vkGetDeviceSmartCacheSizeHUAWEI(VkDevice device,uint32_t *cacheSize);
Smart Cache的内存属性标志位是:
- VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
- VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
- VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
在满足内存属性的前提下,调用vkAllocateMemory函数时,建议把VkMemoryAllocateInfo结构体的memoryTypeIndex设为3、4或5,对应表示申请内存的用途为framebuffer attachment、normal texture或texture。