检查是否在Objective-C中启用了“首选外部GPU”

时间:2018-11-02 15:31:54

标签: objective-c macos macos-mojave

我正在制作一个应用程序,无论是否启用 “首选外部GPU” ,该应用程序的行为都应有所不同。

  

快速说明:在莫哈韦沙漠,现在您可以启用一个选项   名为 “首选外部GPU” “ Get中的任何应用程序   信息” 窗口。

尽管如此,我仍然找不到任何方法来检索该信息。

  • NSBundle自El Capitan以来没有更改,因此它不包含任何与eGPU相关的信息。
  • MTLDevice没有收到任何isEnabled函数或类似函数,并且其新的Mojave方法似乎也没有帮助。
  • 根据{{​​3}},
  • MTLCopyAllDevices 返回对系统中所有Metal设备的引用数组,因此,即使选择了上述选项,它也包含eGPU。
  • MTLCopyAllDevicesWithObserver具有相同的问题,因为在official documentation中,它返回系统可用的所有Metal设备,因此基本上不再考虑上述选项。
  • 终端命令mdls似乎也未显示任何与eGPU相关的信息(尽管我可能是错的,因为如果启用了eGPU,我将没有任何eGPU来检查其输出是否为应用程序选项)。尽管如此,如果确实存在,它仍然没有记录:
  

通用元数据属性键   sample in the documentation

     

文件系统元数据属性键   https://developer.apple.com/documentation/coreservices/file_metadata/mditem/common_metadata_attribute_keys?language=objc

有人知道如何在Objective-C或使用终端命令中进行检查吗? (我更喜欢第一种选择,但是如果没有其他方法可以在应用程序中运行终端命令)。

0 个答案:

没有答案