Поддержка нескольких графических процессоров OpenGL

Когда мы создаем контекст OpenGL на ПК, есть ли способ выбрать, какое физическое устройство или сколько устройств будет использоваться? Поддерживают ли новейшие API OpenGL (4.5) архитектуру с несколькими графическими процессорами? Если у меня есть две одинаковые видеокарты (например, две карты Nvidia GeForce), как мне правильно запрограммировать API OpenGL, чтобы получить преимущества от того, что у меня две карты? Как перенести программу OpenGL с версии с одним GPU на версию с несколькими GPU с минимальными усилиями?


person user3677630    schedule 05.05.2017    source источник


Ответы (1)


Драйверы OpenGL предоставляют несколько графических процессоров (в конфигурациях Crossfire/SLI), как если бы они были одним графическим процессором. За кулисами драйвер (теоретически) выяснит, как эффективно распределять вызовы рендеринга между двумя графическими процессорами. Для этого существует несколько способов, и у вас нет никакого контроля над тем, какой механизм выберет драйвер.

Если вам нужен более прямой контроль над тем, какой GPU связан с каким контекстом GL, вы должны использовать расширения для конкретного поставщика. У AMD есть WGL_AMD_gpu_association, а у NVIDIA WGL_NV_gpu_affinity.

person Nicol Bolas    schedule 05.05.2017