版权声明:转载请标注原文地址。邮箱[email protected] https://blog.csdn.net/Xoxo_x/article/details/83515350
获取设备默认的GPU设备:
代码:
guard let device = MTLCreateSystemDefaultDevice() else {
fatalError( "Failed to get the system's default Metal device." )
}
为了使用Metal framework,首先应该获取GPU设备,app中所有和Metal有联系的对象,都来自获取的GPU设备。并且,只需要获取一次即可。
MTLDevice protocol
它定义了GPU的接口:
1.可以在GPU设备中查询是否对APP的Metal提供特殊功能。
2.使用GPU设备发出所有Metal commend(命令)
3.不要自己实现此协议,相反,要从上文我们介绍的MTLCreateSystemDefaultDevice()
方法中获取Device
4.使用MTLCopyAllDevicesWithObserve
r,可以获取可用的GPU设备
5.有关选择正确的GPU设备的讨论,请查考:Getting the Default GPU
GPU 设备是我们在Metal中做任何操作的首要对象,因此,所有的app中涉及到的Metal对象都是来自运行时获得的MTLDevice实例。
Device被创建,代价十分昂贵,同事也是持久的,大多数被设计为只初始化一次 only once,并且真个生命周期都在重用。
但是,GPU设备创建的对象特定于发布它们的GPU,因此如果您将中间运行切换为使用不同的GPU,那么您也可以从新的GPU设备创建一组新的命令对象。