【问题标题】:CALayer choose which GPUCALayer 选择哪个 GPU
【发布时间】:2020-01-30 23:53:21
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c swift macos gpu calayer


    【解决方案1】:

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

    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。祝你好运!

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2016-12-24
      • 2017-06-16
      • 2016-04-10
      • 1970-01-01
      • 2010-12-14
      • 2018-01-05
      • 1970-01-01
      相关资源
      最近更新 更多