Поддержка нескольких графических процессоров 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.

Другие вопросы по тегам