nouveau — Википедия

nouveau
Скриншот программы nouveau
Nouveau в Mesa 3D
Тип драйверы
Написана на Си
Операционные системы Linux (ядро)/X11 (AMD64, x86, PowerPC), BSD/X11[1]
Первый выпуск 18 июня 2012
Последняя версия 1.0.17[2] (23 января 2021)
Репозиторий gitlab.freedesktop.org/d…
Лицензия MIT (драйверы),
MIT и GNU GPL Direct Rendering Manager[1]
Сайт nouveau.freedesktop.org

nouveau ([nuvo], фр. nouveau — новый) — проект по созданию свободных драйверов для видеокарт компании Nvidia с поддержкой ускорения трёхмерной графики. Изначально основан на распространяемом по свободной лицензии, но нечитаемом драйвере «nv» 2D-графики от nVIDIA.

Название «nouveau» обозначает «новый» на французском языке, и было, по словам Stéphane Marchesin, предложено автозаменой IRC‑клиента вместо «nv».[3]

Разработка

[править | править код]

На июнь 2012 реализованы практически полная поддержка 2D для всех видеокарт Nvidia, начиная с моделей серии Riva TNT и заканчивая GeForce GTX, в том числе поддерживается 2D-акселерация.[4]

В начале 2008 года в 3D‑ветви драйвера для Gallium3D, не предназначенной даже для тестирования (за исключением тех, кто может помочь исправлениями и нахождения патча, внёсшего ещё не исправленный баг), с некоторыми видеокартами NV40 можно было добиться приемлемой работы некоторых трёхмерных игр.[5][6]

Произведён переход на Gallium 3D, работа над поддержкой DRI прекращена.[7][8][9]

Общий менеджер памяти пока не используется, поэтому программы, использующие OpenGL, могут работать нестабильно.[10] Планировалось использовать TTM, но со временем появилось ещё несколько менеджеров памяти, и были обнаружены проблемы с производительностью при использовании TTM. В октябре 2008 года ведётся перевод драйвера с TTM на интерфейсы менеджера памяти GEM[англ.], разрабатываемого компанией Intel, и внутренности TTM.[11]

Реверс-инжиниринг

[править | править код]
Работа утилиты REnouveau (квадрат в левом верхнем углу)

Реверс-инжиниринг производится с помощью специальной утилиты REnouveau, которая выводит на экран определённые изображения с использованием проприетарного 3D-драйвера от NVIDIA, и считывает из памяти видеоадаптера изменившиеся данные.[12]

Также разрабатывается mmio-trace, следящая за доступом драйвера к памяти (MMIO[англ.]).[13]

Примечания

[править | править код]
  1. 1 2 FAQ (англ.). nouveau Wiki. Дата обращения: 5 ноября 2007. Архивировано из оригинала 1 марта 2012 года.
  2. nouveau-1.0.17
  3. The state of Nouveau, part I (англ.). LWN.net (15 февраля 2008). Дата обращения: 7 марта 2008. Архивировано из оригинала 1 марта 2012 года.
  4. Релиз свободного X.Org видеодрайвера Nouveau 1.0. Дата обращения: 18 июня 2012. Архивировано 22 июня 2012 года.
  5. KoalaBR. Nouveau Companion 35 (англ.) (13 февраля 2008). Дата обращения: 16 февраля 2008. Архивировано из оригинала 1 марта 2012 года.
  6. Dave Airlie. Bringing kittens back to life - continuing story of open source graphics drivers (англ.). MEL8OURNE LCA2008 and Linux Australia. — Демонстрация — ближе к концу видео. Дата обращения: 14 февраля 2008. Архивировано из оригинала 1 марта 2012 года.
  7. The state of Nouveau, part 2 (англ.). LWN.net (26 февраля 2008). Дата обращения: 7 марта 2008. Архивировано из оригинала 1 марта 2012 года.
  8. Nouveau Companion 36 (англ.) (7 марта 2008). Дата обращения: 7 марта 2008. Архивировано из оригинала 1 марта 2012 года.
  9. David Lin. Nouveau Drops Its Old DRI Driver (англ.). Phoronix Media (13 июля 2008). Дата обращения: 14 июля 2008. Архивировано из оригинала 1 марта 2012 года.
  10. Nouveau Companion 38 (англ.) (5 апреля 2008). Дата обращения: 13 апреля 2008. Архивировано из оригинала 1 марта 2012 года.
  11. Pekka Paalanen. Nouveau Companion 40 (англ.). Phoronix Media (29 октября 2008). Дата обращения: 29 октября 2008. Архивировано из оригинала 1 марта 2012 года.
  12. REnouveau (англ.). nouveau Wiki. Дата обращения: 5 ноября 2007. Архивировано из оригинала 1 марта 2012 года.
  13. MMIO Trace (англ.). Дата обращения: 18 января 2008. Архивировано из оригинала 1 марта 2012 года.