CALayer选择哪个GPU

问题描述 投票:0回答:1

在具有多个GPU的机器上,可以通过编程方式告诉CALayer使用哪个GPU?

我似乎无法在线或在Apple文档中找到有关此信息的任何信息。如果您无法选择,如何确定合适的GPU?

objective-c swift macos gpu calayer
1个回答
1
投票

看来您需要使用Metal来在CoreAnimation中进行渲染。根据Apple的文档,您将通过引用CAMetalLayer类对象来实现此目的,该对象直接继承自CALayer.信息在此处列出:

https://developer.apple.com/documentation/quartzcore/cametallayer

[CAMetalLayer公开了几个属性,例如preferredDevice,Apple描述为:]]

在具有单个GPU的系统上,此方法返回默认设备对象;请参见MTLCreateSystemDefaultDevice()。在具有多个GPU的系统上,此方法返回最后用于合成和显示CAMetalLayer的MTLDevice。该设备对象通常对应于与显示该图层的屏幕相关联的GPU。如果将图层的设备属性设置为此设备对象,则可以减少Core Animation为在屏幕上显示图层内容而必须执行的跨GPU纹理副本的数量。

话虽如此,我认为您需要直接看一下Metal文档,该文档为与GPU / eGPU交互提供了相当不错的前进路径。可以在这里找到:

https://developer.apple.com/documentation/metal/mtldevice

该链接将带您进入与各种GPU设备进行交互的协议,并且确实讨论了多个GPU在运行中。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.