OpenGL и несколько графических процессоров - общая возможность - PullRequest
5 голосов
/ 24 сентября 2011

Мне было интересно, возможно ли запускать многооконное приложение OpenGL одновременно на нескольких графических процессорах? Чтобы быть более конкретным, скажем, я создал приложение с двумя окнами, каждое из которых разделяет свой GL-контекст между собой. Теперь, если бы я переместил одно из этих окон с дисплея 1 (работает на GPU 1) на дисплей 2 (работает на GPU 2), будет ли это на самом деле работать? Будет ли совместное использование контекста одной цели?

Моим первым предположением было бы нет. И если это действительно не так просто, есть ли способ сделать это? Я также могу предположить, что это зависит от того, управляются ли два графических процессора одним и тем же драйвером (или, что еще хуже, пусть на машине есть карта ATI, а также карта nVidia, обе поддерживают разные версии GL).

Буду признателен за любую информацию по этой теме, чисто информационную, поскольку я ничего не могу найти после быстрого поиска в Google. Кто-нибудь знает возможности?

РЕДАКТИРОВАТЬ: Кстати, к сожалению, в настоящее время у меня нет машины с несколькими графическими процессорами, поэтому я бы немного протестировал.

1 Ответ

6 голосов
/ 25 сентября 2011

Краткий ответ: да.

Длинный ответ: Windows / Mac OS X: окна всегда обновляются одним графическим процессором, и, возможно, пиксели копируются в другой графический процессор.

Linux: Если Xinerama выключена, вы не можете перемещать окно между экранами (графическими процессорами). Если Xinerama включена, iirc, по крайней мере, драйверы nVidia отправляют команды GL одновременно на оба графических процессора, чтобы вы могли перемещать их.

Существуют способы программного управления выбором графических процессоров и копий графических процессоров. Больше информации здесь .

...