Начальная реализация горячего переключения видеоадаптеров без перезапуска X-сервера

Дэвид Эирлай (David Airlie), работающий в компании Red Hat, представил результаты первых экспериментов по реализации режима горячего переключения видео драйверов в X.org, позволяющего переходить от использования одной видеокарты к другой без перезапуска X-сервера. На представленном демонстрационном видеоролике к компьютеру через порт USB подключается внешний видеоадаптер DisplayLink, при этом на него сразу начинает транслироваться текущее содержимое экрана.
В конфигурации использован драйвер xf86-video-modesetting и модифицированный X-сервер, поддерживающий новый экспериментальный ABI для взаимодействия с драйверами. При запуске X-сервера драйвер загружается через udev, после чего для работы X-клиентов экспортируется экран Screen, к которому присоединяется представление низкоуровневого экрана DrvScreen1. После горячего подключения видео карты создаётся ещё один низкоуровневый DrvScreen2, связанный с новым драйвером, который также подключается к общему экрану Screen, работающему через стандартный протокол X11. Вся экранная активность, связанная со взаимодействием Screen и прослойкой драйверов, дублируется для всех низкоуровневых экранов (DrvScreen1 и DrvScreen2). Таким образом единый X11 экран Screen выступает в роли надстройки, занимающейся мультиплексированием соединений для экранов DrvScreen.
Технология напоминает Xinerama, отличаясь тем, что дублирование операций производится не на уровне протокола X11, а на более низком уровне взаимодействия с оборудованием. При этом изменение кода рендеринга даёт возможность не заботиться о том, с какого GPU сформирован вывод, т.е. можно выполнять все ресурсоёмкие операции на GPU основной карты и затем просто транслировать получившееся изображение на маломощную внешнюю карту. Разработка пока находится на ранней стадии, по словам Дэвида Эирлая он лишь увидел небольшой свет в конце туннеля. Тем не менее, это первый видимый результат после года работы над данной темой. В дальнейшем планируется реализовать поддержку добавления и удаления DrvScreen, а также возможность динамического переключения GPU.



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов