Похоже, вам нужно использовать 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 и обсудит несколько работающих графических процессоров. , Удачи!