我正在编写代码来选择物理设备,但我想提出一些逻辑来选择更新的设备(更多VRAM或更高的时钟速度),以防多个设备符合我的最低功能要求。
这可能吗?
答案 0 :(得分:3)
Vulkan没有特定的API调用来获取此类GPU详细信息,因为您需要使用特定于供应商的API(如NVAPI)。唯一提示可能是deviceType
成员VkPhysicalDeviceProperties
,它会返回是否为整合,离散或虚拟GPU。
可以通过使用vkGetPhysicalDeviceMemoryProperties
设置DEVICE_LOCAL位来查找内存堆来确定VRAM大小。该函数返回的VkPhysicalDeviceMemoryProperties
包含memoryHeaps
成员中所有可用的内存堆。配置不同,特别是。离散和集成GPU之间,所以这可能并不总是你正在寻找的,例如,在具有共享内存的集成GPU上。
支持独立GPU:http://vulkan.gpuinfo.org/displayreport.php?id=1432#memoryheaps
集成GPU的堆:http://vulkan.gpuinfo.org/displayreport.php?id=1200#memoryheaps