我正在制作一个应用程序,无论是否启用 “首选外部GPU” ,该应用程序的行为都应有所不同。
快速说明:在莫哈韦沙漠,现在您可以启用一个选项 名为 “首选外部GPU” 的 “ Get中的任何应用程序 信息” 窗口。
尽管如此,我仍然找不到任何方法来检索该信息。
NSBundle
自El Capitan以来没有更改,因此它不包含任何与eGPU相关的信息。MTLDevice
没有收到任何isEnabled
函数或类似函数,并且其新的Mojave方法似乎也没有帮助。MTLCopyAllDevices
返回对系统中所有Metal设备的引用数组,因此,即使选择了上述选项,它也包含eGPU。 MTLCopyAllDevicesWithObserver
具有相同的问题,因为在official documentation中,它返回系统可用的所有Metal设备,因此基本上不再考虑上述选项。mdls
似乎也未显示任何与eGPU相关的信息(尽管我可能是错的,因为如果启用了eGPU,我将没有任何eGPU来检查其输出是否为应用程序选项)。尽管如此,如果确实存在,它仍然没有记录:通用元数据属性键 sample in the documentation
有人知道如何在Objective-C或使用终端命令中进行检查吗? (我更喜欢第一种选择,但是如果没有其他方法可以在应用程序中运行终端命令)。