我们可以在 Metal 应用程序中声明多个设备吗?我声明了两个设备,device 和 defaultDevice。当我使用 defaultDevice 而不是 device 时,我在“展开时发现 nil ..”行出现异常。此外,是否有声明设备的约定。
谢谢。
我们可以在 Metal 应用程序中声明多个设备吗?我声明了两个设备,device 和 defaultDevice。当我使用 defaultDevice 而不是 device 时,我在“展开时发现 nil ..”行出现异常。此外,是否有声明设备的约定。
谢谢。
据我了解,每个 GPU 只能有一个设备。由于您通常只有一个 GPU,因此您只能创建一个设备(请参阅Apple 文档)。因此,第二个设备将为空(nil)
但我认为在单个设备上可以有多个命令队列。因此,不必创建多个设备。
设备是围绕 GPU 的抽象。它提供了创建命令队列、渲染状态和库等对象的方法。稍后我们将依次查看其中的每一个。
苹果文档中关于MTLDevice的引用:
MTLDevice 协议定义了到单个图形处理器 (GPU) 的接口。您使用符合此协议的对象来查询处理器的功能并分配用于访问这些功能的对象。
因此,我认为不可能拥有多个设备(即使在具有离散和内部图形设备的 Mac 上),因为只有一个设备会在您的屏幕上生成图像。