Сведения о расширенной реализации DualView

Идеальная реализация DualView должна распознавать, когда ее вторичные представления включены или отключены. Если вторичные представления отключены, основное представление должно вести себя так же, как и без включения DualView. Это означает следующее.

  • Основной дисплей может обращаться ко всем частям видеопамять.
  • На ноутбуке основной дисплей можно переключить на любое из дочерних устройств отображения.

Расположение видеопамять

В идеальной реализации DualView использование буфера памяти оптимизировано таким образом, чтобы вся видеопамяти использовалась основным дисплеем при отключении дополнительного дисплея. Однако эта оптимизация является необязательной; Используемая стратегия выделения видеопамять полностью соответствует средству записи драйверов.

Если вторичные представления отключены, основное представление должно иметь доступ ко всем частям видеопамяти, чтобы максимально повысить производительность системы. Однако при включении вторичных представлений драйвер мини-порта не должен просто присваивать памяти основного представления. Вместо этого драйвер мини-порта должен зарезервировать видеопамять для дополнительных представлений, прежде чем переходить в режим DualView. Начиная с Windows XP (и далее для более поздних версий операционной системы) существует новый видео-запрос , IOCTL_VIDEO_SWITCH_DUALVIEW , чтобы помочь в работе с видеопамяти. Когда Windows XP (и более поздних версий) обрабатывает вызов функции ChangeDisplaySettings (описано в документации windows SDK), она отправляет запрос IOCTL_VIDEO_SWITCH_DUALVIEW каждому представлению, связанному с DualView, прежде чем пытаться изменить режим. Водители могут использовать эти сведения для организации видеопамяти заранее.

На следующем рисунке показано расположение видеопамять с отключенной службой DualView.

Схема, показывающая расположение памяти при отключении DualView с основным дисплеем, который обращается ко всей видеопамять.

На следующем рисунке показано рекомендуемое расположение видеопамять с поддержкой DualView. Каждое представление имеет собственный буфер экрана и кучи вне экрана.

Схема, показывающая расположение памяти при включении DualView с отдельными буферами экрана и кучи вне экрана для каждого представления.

Дочерние связи

Типичный мобильный видео чип имеет несколько дочерних устройств, таких как ЖК-дисплей, CRT и телевизор. В режиме SingleView, как показано на следующем рисунке, первичному представлению принадлежат все эти дочерние устройства, а дополнительному представлению — ни одно из них. Пользователь может переключать основное представление с одного дочернего устройства на другое. Одновременно может быть активным только одно устройство.

Схема режима SingleView, где основное представление владеет всеми дочерними устройствами и одновременно активируется только одно устройство.

Однако в режиме DualView каждый дочерний элемент может быть назначен другому представлению; возникает вопрос о том, какое представление связано с каким ребенком. Отношения между представлениями и устройствами можно описать двумя способами: с точки зрения физических дочерних отношений и логических дочерних отношений.

Физические дочерние отношения отражают связь между видео чипом адаптера и его устройствами отображения. После загрузки системы физические отношения между видеочипой и устройствами отображения никогда не изменяются. На предыдущем рисунке и следующем рисунке видео чип владеет устройствами с ДИСПЛЕЕМ, CRT и ТЕЛЕВИЗОРом; следовательно, все три устройства отображения являются физическими дочерними элементами видео чипа.

Логические дочерние отношения отражают динамические связи между представлениями и устройствами отображения. На следующем рисунке функция DualView включена, и ситуация заключается в том, что основное представление (представление 1) владеет УСТРОЙСТВОм с ЖК-дисплеем, а дополнительное представление (представление 2) — устройствами CRT и ТЕЛЕВИЗОРами. Другой способ сказать, что ЖК-устройство является логическим дочерним элементом основного представления, а устройства CRT и TV являются логическими дочерними элементами дополнительного представления. Драйвер мини-порта сообщает логические дочерние связи через запрос IOCTL_VIDEO_GET_CHILD_STATE .

Схема, изображающая режим DualView, где каждое дочернее устройство назначается другому представлению, а логические дочерние связи являются динамическими.

Еще один момент остается. Если функция DualView включена, основное представление может автоматически переключать дочерние элементы. В режиме SingleView активна только CRT, связанная с основным (и только) представлением. Все остальные устройства отображения неактивны. После включения DualView на предыдущем рисунке показано, что основное представление переключилось на отображение на УСТРОЙСТВЕ с ЖК-дисплеем, в то время как CRT является дочерним элементом дополнительного представления. Этот переключатель может потребоваться для ноутбука из-за того, что дополнительное представление является съемным, что означает, что ЖК-устройство не может быть связано с этим представлением. Будет ли и как сделать этот переключение полностью под контролем водителей минипорта.