The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Для Linux подготовлен механизм перенаправления рендеринга GPU на другое устройство вывода

08.11.2011 20:29

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

Механизм VCRTC может оказаться полезным при реализации поддержки гибридных систем с несколькими видеоадаптерами. Например, видеоподсистема NVIDIA Optimus позволяет на лету переключать вывод между встроенной энергоэффективной видеокартой на базе GPU Intel и мощной дискретной картой 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 для ядра Linux. VCRTCM может оперировать как виртуальными CRTC, так и реальными CRTC существующих видеокарт. Для оптимизации производительности VCRTCM по возможности старается использовать для передачи данных DMA, а также обеспечивает поддержку таких специфичных для CRTC вещей, как видеорежимы, замещения страниц, аппаратный курсор и т.п.

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

  1. Главная ссылка к новости (http://www.phoronix.com/scan.p...)
  2. OpenNews: Начальная реализация горячего подключения видеоадаптеров без перезапуска X-сервера
  3. Использование двух видеокарт на ноутбуках с поддержкой NVIDIA Optimus в Linux
  4. OpenNews: Для Linux обеспечена возможность переключения видеоадаптеров на ноутбуках с NVIDIA Optimus
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/32258-video
Ключевые слова: video, gpu, x11, driver, linux, kernel, crtc
Поддержать дальнейшую публикацию новостей на OpenNET.


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Я (??), 21:35, 08/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Не! мне на bumblebee (в том виде как это реализовано в Arch) очень даже понравилось! Virtualgl рулит! Можно посылать opengl картинку даже по сети. А эти все навороты пока обрастут всем чем нужно...
    А по теме вопрос: - Как в таких системах вообще с цветокоррекцией проблемы решаются?
    У меня одна и та-же картинка между двумя экранами так сильно отличается!!! В ноуте новая led технология - тут белизна в голубую сторону, а на внешнем мониторе устаревшая lcd, эта в желтизну-красноту отдаёт (хотя фотки на ней как отпечатанные)
     
     
  • 2.6, Viliar (ok), 00:16, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    bumblebee?! "leave /usr alone!!!"

    Вобщем, вы смелый человек :D
    http://tiny.cc/p6q6j
    https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1

     
     
  • 3.12, Я (??), 02:22, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хе-хе! Адреналин по телу разгоняет! Прям обрадовался :)
    Ну а по теме вопроса чонить будет?
     
  • 3.20, Dimez (ok), 15:22, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > bumblebee?! "leave /usr alone!!!"
    > Вобщем, вы смелый человек :D
    > http://tiny.cc/p6q6j
    > https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1

    Кто-то заставляет собирать из git'а именно ту самую версию?

     
     
  • 4.22, Viliar (ok), 11:44, 10/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это была просто ирония ;)
     
  • 2.15, letsmac (ok), 10:01, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Настройка icm профиля не помогает?
     
  • 2.19, Dimez (ok), 15:21, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скажу по секрету, LED-мониторы - это те же самые LCD. Только подсветка у них светодиодная, а не CCFL.
     
     
  • 3.24, Аноним (-), 22:04, 10/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    super Amoled, не?
     
  • 2.25, Andrew Kolchoogin (?), 17:56, 11/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуйте купить колориметр и откалибровать цветовые профили мониторов.
     

  • 1.2, linuxmaster (?), 22:17, 08/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скорей бы... Жду поддержку Intel.
     
  • 1.4, Аноним (-), 23:36, 08/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А прикольно - можно например акселерированное 3D гнать даже на убогий внешний usb-video, при том что у юсб-свистка-типа-видеокарты в жизни пороху не хватит на такое :)
     
  • 1.5, xoomer (ok), 00:07, 09/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А какой смысл практический я не сильно пойму?..
     
     
  • 2.9, Аноним (-), 01:53, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А какой смысл практический я не сильно пойму?..

    Например, можно выдавать на скромный Display Link (подключение монитора через юсб через весьма скромный юсб свисток) вполне себе картинку с акселерированным 3D. Можно видеокарты переключать на ходу как угодно. И так далее.

     
     
  • 3.11, Аноним (-), 02:21, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё здорово, только понятней зачем это всё нужно не становится, по крайней мере мне. В вами приведенном случае мы используем 2 устройства, вместо одного старого. Подключенные видеокарты всё равно нельзя перетыкивать. Поправьте, если не прав.
     
     
  • 4.13, Дэндэн (?), 07:16, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Например, можно акселерировать графику для виртуальных машин, думается. Скорее, даже не думается, а недеется мне - уж очень надо ))
     
  • 4.14, progr (?), 08:46, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Еще один возможный вариант - энергосбережение. Пока сидиш в консоле, просматриваеш веб и тп, система пашет на встроенном видео (монитор к нему подключен). Захотел поиграть в навороченную игрушку, поработать в ПО требовательное к графике, включается энергожрущая видеокарта, и графика обрабатывается в ней, а выводится через встроенную, на тот-же монитор, подключенный к ней.
     
     
  • 5.16, Ваня (?), 10:55, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не думаю что удасться получить больше 5-15 fps. Видеокарты не рассчитаны на то что из них кто-то, кроме монитора, будет что-то читать.
     
     
  • 6.17, _yurkis_ (?), 12:01, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>Пока сидиш в консоле, просматриваеш веб и тп, система пашет на встроенном видео (монитор к нему подключен). Захотел поиграть в навороченную игрушку, поработать в ПО требовательное к графике, включается энергожрущая видеокарта, и графика обрабатывается в ней
    >Не думаю что удасться получить больше 5-15 fps. Видеокарты не рассчитаны на то что из них кто-то, кроме монитора, будет что-то читать.

    Расчитаны. Выше Вам привели пример того как работает nVidia optimus.

     
  • 2.21, Руслан Зиганшин (?), 18:51, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А какой смысл практический я не сильно пойму?...

    Помнится, флеш на Линуксах не умел аппаратно идео или 3D, постольку-поскольку обычный драйвер не умеет возвращать обработанные пиксели обратно в программу на доработку (поворот, иное изменение), посылая их сразу на монитор
    Поправьте, если не прав

     
     
  • 3.23, WhiteWind (ok), 15:21, 10/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А как тогда композитный режим работает?
     

  • 1.7, анон (?), 00:21, 09/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, интересно.. может, наконец станет возможным юзать опенгл на двух видеокартах + два монитора + xinerama? Тут похоже нужна будет поддержка еще и в иксах, чтобы, например , при перетаскивании окна на другой монитор слать его часть по pci-e шине на другую карту, к которой он подключен, а часть на на текущий монитор.

    .. было бы здорово так +)

     
  • 1.8, Аноним (-), 01:00, 09/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх как DеRьMовщики завопят... Костыли новые придумают...
     
     
  • 2.10, Аноним (-), 01:56, 09/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Эх как DеRьMовщики завопят... Костыли новые придумают...

    Дык по этой причине они и требуют цифровые подписи системы и ядра. И по этой причине они и не выпускают блурей плееров под линукс. Только вот попытками создать гемор пользователю за его же бабки они сами себе и копают могилу. По сути все оптические диски уже сдохли. А в интернете - чем больше гемора чтобы посмотреть ваш контент, тем меньше его посмотрят.

     

  • 1.18, Анон (?), 12:53, 09/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В настоящий момент поддерживаются только работа с драйвером Radeon и GPU R6XX, R7XX, Evergreen, Northern Island.

    Мейнстрим теперь здесь.

     
     
  • 2.26, другой аноним (?), 10:06, 12/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Забавно: в новости приводится пример Nvidia Optimus, а поддерживаются только карты Radeon и первоначальная реализация на них :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:
    При перепечатке указание ссылки на opennet.ru обязательно



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру