Аппаратное ускорение 3D в многомониторных системах

Подавляющее большинство Direct3D приложений в полноэкранном режиме использует так называемый «эксклюзивный» режим. В этом режиме изображение выводится только на основной монитор (первичный, primary, №1) и не может быть развернуто на остальные мониторы. Для выбора монитора, отличного от основного, или для использования нескольких дисплеев приложение должно иметь специальные функции, обычно их имеют только приложения инженерного и 3D моделирования, а также некоторые авиасимуляторы (Microsoft Flight Simulator, LockOn). Максимальное быстродействие в любом случае обеспечивается лишь для основного дисплея, дополнительные дисплеи стараются использовать для функций, не создающих большой графической нагрузки (обычно для отображения элементов интерфейса и предварительного просмотра). В оконном режиме аппаратное ускорение для приложения обеспечивается лишь пока окно находится в пределах одного монитора. Если окно разместить так, что его изображение попадает на два монитора, пусть даже в процессе перетаскивания на другой дисплей, аппаратное ускорение будет отключено, приложение будет завершено или начнется использование программного рендеринга. В системах с несколькими видеокартами, различающимися по Direct3D возможностям, для каждого монитора уровень аппаратного ускорения задается видеокартой, к которой он подключен.

Для OpenGL приложений драйвер NVIDIA обеспечивает аппаратное ускорение на нескольких мониторах, включая распределение одного окна между дисплеями. Однако, поскольку в один момент времени может работать только один OpenGL драйвер, то при использовании нескольких видеокарт на базе NVIDIA с различными возможностями OpenGL для всех мониторов, независимо от обслуживающей видеокарты, драйвер будет обеспечивать лишь совокупность функций, поддерживаемых всеми видеокартами без исключения. Например, если в системе есть видеокарта GeForce 6800 с поддержкой OpenGL 2.0 и видеокарта GeForce 4 MX с поддержкой OpenGL 1.4, то даже для случая запуска OpenGL приложения исключительно на мониторе, подключенном к GeForce 6800, будет доступен OpenGL лишь версии 1.4. При выводе изображения на несколько дисплеев, управляемых различными по функциям и быстродействию видеокартами, могут наблюдаться проблемы с неравномерным обновлением изображения. В этом случае рекомендуется в панели драйвера NVIDIA в настройках 3D параметр «Ускорение нескольких видеоплат» (Hardware acceleration) установить в значение «Режим совместимости» (Multi-display compatibility mode). Если в системе есть видеокарты на базе графических процессоров других фирм (не NVIDIA), для мониторов, подключенных к этим видеокартам, аппаратное ускорение OpenGL будет недоступно, при попытке вывода изображения на них приложение будет завершено или перейдет в режим программного рендеринга.

Исключение из данных правил составляют специальные многомониторные режимы драйвера NVIDIA «Клон» (Clone) и «Растяжение» (Span), поскольку в данных режимах два дисплея обслуживаются драйвером как один. В данные режимы могут быть объединены лишь дисплеи, подключенные к одной и той же видеокарте. Режим «Растяжение» недоступен в Windows 9x-ME и Windows Vista и выше из-за ограничений данных систем.

Комментарии