Поддержка нескольких графических процессоров OpenGL
Когда мы создаем контекст OpenGL на ПК, есть ли способ выбрать, какое физическое устройство или сколько устройств используется? Поддерживают ли последние API OpenGL (4.5) архитектуру с несколькими графическими процессорами? Если у меня есть две идентичные видеокарты (например, две карты Nvidia GeForce), как правильно программировать API-интерфейсы OpenGL, чтобы получить выгоду от того, что у меня две карты? Как перенести программу OpenGL из версии с одним GPU в версию с несколькими GPU с минимальными усилиями?
1 ответ
Драйверы OpenGL предоставляют несколько графических процессоров (в конфигурациях Crossfire/SLI), как если бы они были одним графическим процессором. За кулисами драйвер (теоретически) выяснит, как эффективно распределять вызовы рендеринга между двумя графическими процессорами. Для этого есть несколько способов, и вы не можете контролировать, какой механизм выбирает драйвер.
Если вы хотите более прямой контроль над тем, какой GPU связан с каким контекстом GL, вам нужно использовать специфичные для поставщика расширения. У AMD есть WGL_AMD_gpu_association, в то время как у NVIDIA есть WGL_NV_gpu_affinity.