Представлена реализацию виртуальных CRTC-видеоконтроллеров (VCRTC)


Рубрика: Новости Linux
Метки: | |
Просмотров: 1785

Илья Хаджич (Hadzic) из Bell Labs представил 0 реализацию виртуальных CRTC-видеоконтроллеров (VCRTC), позволяющих претворить в жизнь механизм перенаправления пикселей из фреймбуфера определённого GPU на иное устройство вывода. С использованием виртуального контроллера CRTC возможно довольно гибко манипулировать выводом информации в системах с несколькими видеокартами, абстрагируя GPU на коем производится рендеринг и непосредственное устройство вывода.

Механизм VCRTC может выясниться полезным при реализации помощи гибридных систем с несколькими видеоадаптерами. К примеру, видеоподсистема NVIDIA Optimus дает возможность на лету переключать вывод м/у встроенной энергоэффективной видеокартой на базе GPU Интел и мощной дискретной картой NVIDIA. При помощи VCRTC возможно исполнять трудный рендеринг на GPU дискретной карте, а выводить информацию ч/з интегрированную видеокарту. Также, при подключении ч/з порт USB внешнего видеоадаптера DISPLAYLINK, возможно сформировать сложную 3d-сцену с использованием GPU стационарной видеокарты, однако вывести её на внешнюю видеокарту.

Почти, в качестве устройств вывода (CTD - Compression Transmission and Display) могут выступать любые устройства, которые способны сделать нечто полезное со сформированным набором пикселей, в частности вероятно сделать синтетический драйвер для вывода ч/з V4L2 или для записи в файл. Сформировав изображение на GPU, однако использовав для вывода драйвер V4L2, вероятно перенаправление сформированного на GPU потока по сети, с его последующей обработкой в в любом приложении, поддерживающем V4L2, к примеру, в видеоплеере VLC.

CRTC отвечает за создание синхросигналов и выполняют чтение содержимого фреймбуфера из видеопамяти. Виртуальный CRTC может оказаться реализован на уровне драйвера, который эмулирует поведение аппаратного CRTC. Перераспределением трафика м/у GPU и устройством вывода (CTD) занимается особый менеджер виртуальных CRTC, который выполнен в виде DRI-модуля VCRTCM для ядра Линукс. VCRTCM может оперировать как виртуальными CRTC, так и реальными CRTC существующих видеокарт. Для оптимизации производительности VCRTCM по возможности старается применять для передачи данных DMA, и обеспечивает поддержку этих специфичных для CRTC вещей, как видеорежимы, замещения страниц, аппаратный курсор и т.п.

За исключением DRI-модуля vcrtcm в рамках проекта разработана небольшая программа vcrtcm_ctl, предназначенная для управления виртуальными CRTC. К тому же опубликована исчерпывающая документация по архитектуре и сборке. Код проекта доступен в рамках лицензии GPL. В данный момент поддерживаются лишь работа с драйвером Radeon и GPU R6XX, R7XX, Evergreen, Northern Island. В будущем планируется прибавить поддержку драйверов Интел и Nouveau.


  • Комментариев: 0

  • Вконтакте

  • Facebook:

    Оставьте комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

    Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

    Имя и сайт используются только при регистрации

    Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

    Авторизация 

    MaxSiteAuth.

    (обязательно)