在运行时可靠地检测iOS上的GPU系列3



我使用此功能检测代码中的A9设备或更高版本:

    public static var gpuFamily3AndHigh:Bool = {
      return ARConfiguration.isSupported //Hack to know A9 or more
    }

但现在苹果拒绝接受该代码,因为该应用程序没有ARKit功能。在iOS 13和iOS 12上不使用ARKit的情况下,如何识别它。在iOS 13上,我看到我可以做:

  public static var gpuFamily3AndHigh:Bool = {
   // return ARConfiguration.isSupported //Hack to know A9 or more
    
    guard let device = MTLCreateSystemDefaultDevice() else { return false }
    
    return device.supportsFamily(.apple3)
}()

但我不知道.appl3是否比.common3正确,也不知道我在iOS 12上该怎么办?

如果我正确阅读了本文档,那么当API可用时,您应该检查支持的系列(就像您所做的那样(,否则就返回到检查特定的功能集。

如果你真的想特别检查A9和更高版本,那么家族.apple3和功能集.iOS_GPUFamily3_v1似乎是最好的选择。

最新更新