CALayer выбирает, какой графический процессор - PullRequest
0 голосов
/ 31 января 2020

На компьютерах с несколькими графическими процессорами можно программно сказать CALayer, какой графический процессор использовать?

Похоже, я не могу найти какую-либо информацию об этом в Интернете или в документах Apple. Если вы не можете выбрать, как определяется соответствующий графический процессор?

1 Ответ

1 голос
/ 31 января 2020

Похоже, вам нужно использовать Metal для визуализации в CoreAnimation. Согласно документации Apple, вы сделаете это, сославшись на объект класса CAMetalLayer, который наследуется непосредственно от CALayer. Эта информация выложена здесь:

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

Существует несколько свойств, предоставляемых CAMetalLayer, таких как preferredDevice, которые Apple описывает как:

В системах с одним GPU этот метод возвращает объект устройства по умолчанию; см. MTLCreateSystemDefaultDevice (). В системах с более чем одним графическим процессором этот метод возвращает MTLDevice, который последний раз использовался для компоновки и представления CAMetalLayer. Этот объект устройства обычно соответствует графическому процессору, связанному с экраном, на котором отображается слой. Если вы установите свойство устройства слоя для этого объекта устройства, вы уменьшите количество копий текстур с несколькими графическими процессорами, которые Core Animation должна выполнить, чтобы представить содержимое слоя на экране.

Все это сказанное, я Я думаю, что вам нужно взглянуть непосредственно на документацию Metal, которая обеспечивает довольно приличный путь для взаимодействия с GPU / eGPU. Это можно найти здесь:

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

Эта ссылка приведет вас к протоколу для взаимодействия с различными устройствами GPU и обсудит несколько работающих графических процессоров. , Удачи!

...