Jump to content

новое (программное обеспечение)

(Перенаправлено с Нуво (графика) )
новый
Первоначальный выпуск 1.0 / 18 июня 2012 г .; 12 лет назад ( 18.06.2012 ) [ 1 ]
Репозиторий
Написано в С
Операционная система Линукс , НетБСД
Платформа x86 , x86-64 , ARM , PowerPC
Тип Драйвер устройства
Лицензия МОЯ лицензия
Веб-сайт новый .freedesktop .org
В середине: стек FOSS, состоящий из драйвера DRM и KMS , libDRM и Mesa 3D . Справа: проприетарные драйверы: компоненты ядра BLOB и пользовательского пространства.

nouveau ( / n ˈ v / ) — это бесплатный драйвер графического устройства с открытым исходным кодом для Nvidia видеокарт и Tegra семейства SoC , написанный независимыми разработчиками программного обеспечения при незначительной помощи сотрудников Nvidia.

Целью проекта является создание драйвера с открытым исходным кодом путем обратного проектирования от Nvidia собственных драйверов Linux . Он управляется X.Org Foundation , размещен на сайте freedesktop.org и распространяется как часть Mesa 3D . Первоначально проект был основан на 2D бесплатном драйвере nv с открытым исходным кодом, предназначенном только для Red Hat , который, как утверждают разработчик Мэтью Гарретт и другие, был запутан. [ 2 ] nouveau лицензируется по лицензии MIT .

Название проекта происходит от французского слова nouveau , что означает новый . [ 3 ] Это было предложено первоначальным автором, Стефаном Маршезеном, после того, как IRC его клиента франкоязычная система автозамены предложила слово « nouveau » в качестве исправления для букв «nv». [ 4 ]

Архитектура программного обеспечения

[ редактировать ]
nouveau был переписан как драйвер графического устройства в стиле Gallium3D .

nouveau — это драйвер устройства в стиле Gallium3D , работающий поверх инфраструктуры прямого рендеринга (DRI). Он состоит из двух ядра компонентов — драйвера DRM и KMS , а также компонентов пользовательского пространства libDRM и Mesa 3D .

nouveau намерен поддерживать все микроархитектуры Nvidia: Tesla , Fermi , Kepler , Maxwell , в версии 1.0.13 поддержку Pascal и в версии 1.0.15 поддержку Volta . В версии 1.0.16 добавлена ​​поддержка Тьюринга .

Повторная синхронизация

[ редактировать ]

По техническим причинам все графические процессоры Nvidia загружаются с низкой частотой (так называемой «тактовой частотой»). Драйвер устройства должен установить более высокую частоту после загрузки. Из-за отсутствия документации по графическому процессору в Nouveau с самого начала не было этой возможности. Результатом стала/является серьезная потеря производительности, о чем свидетельствуют тесты, в которых сравнивалась производительность проприетарного драйвера устройства Nvidia с драйвером Nouveau. [ 5 ] В июне 2014 года наконец был достигнут прорыв: в nouveau была добавлена ​​первоначальная поддержка повторной тактовой частоты. [ 6 ] [ 7 ] [ 8 ] В версии 1.0.14 поддержка Pascal находится на уровне Maxwell 2. [ 9 ] С версией 1.0.15 есть патч для GTX 970 с 4ГБ и ускорениями Паскаля до Максвелла 2 Уровня.

Инструменты

[ редактировать ]
Скриншот REnouveau в действии (REnouveau — синее окно в левом верхнем углу)

В отличие от AMD , Nvidia не предоставляет документации о своих графических процессорах. Разработчики нуво были вынуждены использовать реверс-инжиниринг в «чистой комнате» , чтобы получить необходимые данные, которые позволили бы им написать нуво. В проекте используется несколько специально разработанных программ для обратного проектирования, таких как MmioTrace (трассировка ввода-вывода с отображением в памяти), [ 10 ] REnouveau и Valgrind MMT. [ 11 ]

Обновление

[ редактировать ]

REnouveau (обратное проектирование для модерна) [ 12 ] — это программа, лицензируемая под лицензией GNU GPL (с использованием SDL ), которая собирает данные для большей части работ по обратному проектированию в стиле nouveau. Пользователи с проприетарными драйверами NVIDIA могут помочь в разработке Nouveau, предоставив информацию об оборудовании своих карт NVIDIA через REnouveau. видеокарты REnouveau работает путем копирования текущего регистрового пространства MMIO , рисования некоторой графики, получения еще одной копии MMIO и вывода разницы в текстовый файл. Он запускает около шести десятков различных тестов, которые пользователь компьютера затем записывает в tar . bz2 и отправляется по электронной почте , после чего автоматически передается на FTP-серверы проекта для анализа разработчиками. В настоящее время REnouveau в основном заменен Valgrind-MMT. [ нужна ссылка ]

Поддерживаемые интерфейсы

[ редактировать ]

Только ядро ​​имеет прямой доступ к оборудованию, включая видеокарту. Программное обеспечение конечного пользователя получает доступ к нему через различные интерфейсы , специфичные для конкретной задачи. nouveau пишется как драйвер устройства типа Gallium3D , что означает, что он использует большой объем кода совместно с другими драйверами Gallium3D. Большая часть этого общего ядра встроена в Mesa 3D , а затем распространяется как таковая в различных дистрибутивах Linux .

API рендеринга

[ редактировать ]

Mesa 3D и включенные в нее драйверы поддерживают несколько интерфейсов рендеринга , каждый из которых предназначен для предоставления программам пользовательского пространства, таким как, например, видеоигры или программное обеспечение САПР , доступ к соответствующим блокам SIP .

Бесплатная реализация Direct3D версии 9 с открытым исходным кодом была встроена в Mesa 3D. Его можно использовать с модерном; [ нужна ссылка ] однако, поскольку любое программное обеспечение, использующее Direct3D, запрограммировано для Windows, это программное обеспечение можно использовать только вместе с Wine в Linux.

Данные и инструкции передаются в графический процессор для обработки. Результаты визуализации не отправляются обратно в основную память. Вместо этого они сохраняются во фреймбуфере . Содержимое кадрового буфера впоследствии отправляется на контроллер дисплея .

Интерфейс рендеринга OpenGL разрабатывается компанией Khronos Group . Реализации этого API являются частью драйверов Nvidia и собственной разработки AMD Catalyst . Другая реализация пишется энтузиастами свободного программного обеспечения, такими как Брайан Пол или Intel, и координируется в Mesa 3D. Будучи драйвером типа Gallium3D, Nouveau требует лишь незначительных изменений для работы с этой реализацией.

По состоянию на декабрь 2023 г. , Nouveau имеет некоторую поддержку Vulkan API через экспериментальный драйвер NVK. [ 13 ]

Видео ускорение

[ редактировать ]

Mesa 3D поддерживает несколько интерфейсов, каждый из которых предназначен для предоставления программам пользовательского пространства, таким как, например, GStreamer или HandBrake , доступ к соответствующим блокам SIP. Для этой цели также можно использовать микросхему, предназначенную для рендеринга вычислений, хотя этот подход потребляет гораздо больше электроэнергии по сравнению с использованием SIP-блока PureVideo .

nouveau поддерживает PureVideo и предоставляет доступ к нему через VDPAU и частично через XvMC . [ 14 ]

Nouveau не поддерживает Nvidia NVENC .

Вычислительные API

[ редактировать ]

В Mesa GalliumCompute также является основным проектом Nvidia, но только часть AMD находится на стадии бета-тестирования для OpenCL 1.0, 1.1 и 1.2. [ 15 ]

nouveau не поддерживает CUDA .

С помощью проекта Coriander возможно преобразование кода CUDA в OpenCL 1.2. [ 16 ]

Системный процессор графического процессора

[ редактировать ]

Нвидиа ФАЛКОН

[ редактировать ]

Примерно в 2006 году Nvidia представила FALCON (FAst Logic CONtroller) для своих графических процессоров.

На 4-м семинаре RISC-V в июле 2016 года сотрудники Nvidia представили свои планы по замене FALCON новой собственной разработкой, основанной на наборе инструкций RISC-V. [ 17 ]

Слева: драйвер графического устройства в классическом стиле; Справа: Gallium3D драйвер графического устройства в стиле . Оба типа имеют много бесплатного кода с открытым исходным кодом .

Nouveau был запущен в 2005 году Стефаном Маршезеном как серия патчей для драйвера «nv». [ 18 ] и официально объявлено в феврале 2006 года на мероприятии FOSDEM. [ 19 ] Первая живая демонстрация nouveau состоялась на Linux.conf.au в 2007 году. [ 19 ] В 2010 году nouveau был принят в версию ядра Linux 2.6.33 в качестве экспериментального драйвера. [ 18 ] [ 20 ] 26 марта 2012 года драйвер nouveau был помечен как стабильный и переведен из промежуточной среды Linux 3.4. [ 21 ] [ 22 ] Nouveau претерпел серьезные изменения внутренней архитектуры в Linux 3.7. [ 22 ]

Nouveau изначально использовал инфраструктуру прямого рендеринга (DRI) Mesa 3D для рендеринга 3D-компьютерной графики , которая позволяет ускорять 3D-рисование с помощью графического процессора (GPU) непосредственно из 3D-приложения; но в феврале 2008 года работа над поддержкой DRI прекратилась и перешла к новому Gallium3D . [ 23 ] [ 24 ]

23 сентября 2013 г. [ 25 ] Nvidia публично объявила, что выпустит некоторую документацию о своих графических процессорах с намерением решить области, влияющие на удобство использования графических процессоров NVIDIA с нуво «из коробки».

По состоянию на 31 января 2014 года Александр Курбо из Nvidia выпустил обширный набор патчей, которые добавляют первоначальную поддержку GK20A ( Tegra K1 ) в Nouveau. [ 26 ]

По состоянию на 9 июля 2016 года сотрудник Red Hat Бен Скеггс выпустил патч, который добавляет в ядро ​​Linux поддержку чипа GP104 на базе Pascal, установленного на видеокартах GeForce GTX 1070 и GeForce GTX 1080. [ 27 ]

Статус 2016 года и будущая работа были представлены в XDC2016. [ 28 ] Статус новых разработок в OpenCL показан на FOSDEM. [ 29 ]

В 2019 году NVidia опубликовала некоторую документацию о своих чипсетах Kepler, Maxwell, Pascal и Volta. [ 30 ] [ 31 ]

Принятие

[ редактировать ]
Иллюстрация графического стека Linux : DRM , драйвер KMS и libDRM, Mesa 3D . Серверы отображения являются компонентом оконной системы и не требуются для видеоигр.

Драйвер nouveau и его 3D-аналог в Mesa использовались в качестве драйвера с открытым исходным кодом по умолчанию для карт Nvidia во многих дистрибутивах Linux , включая Fedora 11, [ 32 ] [ 33 ] openSUSE 11.3, [ 34 ] Убунту 10.04, [ 35 ] [ 36 ] и Дебиан . [ 37 ]

Compiz рекомендовался в 2010 году вместо проприетарного драйвера Nvidia. [ 38 ]

В июне 2014 года компания Codethink сообщила о запуске Wayland на базе Weston компоновщика с ядром Linux 3.15 с использованием EGL и «стека графических драйверов с открытым исходным кодом» на Tegra K1 . [ 39 ]

В октябре 2016 года NetBSD добавила экспериментальную поддержку nouveau в NetBSD 7. [ 40 ]

См. также

[ редактировать ]
  1. ^ фон Эйтцен, Крис (18 июня 2012 г.). «Бесплатный графический драйвер NVIDIA достиг версии 1.0» . H-Открыть . Хайнц Хайзе . Проверено 13 июня 2013 г.
  2. ^ «Отслеживание ошибок Debian» . 17 августа 2006 г. Проверено 7 апреля 2013 г.
  3. ^ «Новая Вики» . 7 июля 2009 года . Проверено 23 сентября 2009 г.
  4. ^ «Государство Нуво, часть I» . LWN.net . 15 февраля 2008 года . Проверено 24 ноября 2009 г.
  5. ^ «Нуво против проприетарного Linux NVIDIA против NVIDIA Windows 8.1» . Фороникс . 31 октября 2013 г.
  6. ^ «Детали повторного тактирования в стиле модерн обсуждаются дальше» . Фороникс . 17 мая 2014 г.
  7. ^ «Повторная синхронизация в стиле модерн намного быстрее» . Фороникс . 20 июня 2014 г.
  8. ^ «Документация Nouveau PowerManagement» . сайт freedesktop.org .
  9. ^ «new/xf86-video-new — Новый драйвер Xorg для чипов NVIDIA» . cgit.freedesktop.org . Проверено 6 мая 2017 г.
  10. ^ «MmioTrace (трассировка ввода-вывода с отображением в памяти)» . нуво вики.
  11. ^ «Вальгринд-ммт» . нуво вики.
  12. ^ «REnouveau (Реверс-инжиниринг для модерна)» . новая Вики.
  13. ^ «Коллабора – НВК приземлился» .
  14. ^ «Новое видеоускорение» . сайт freedesktop.org .
  15. ^ «ГаллийКомпьютер» . Dri.freedesktop.org . Проверено 6 мая 2017 г.
  16. ^ «Кориандр» . Гитхаб . 15 ноября 2021 г.
  17. ^ «История NVIDIA RISC-V» (PDF) . Июль 2016.
  18. ^ Перейти обратно: а б Перес, Мартин; Стах, Лукас. «Новый обзор, текущая и будущая работа» (PDF) . Проверено 1 сентября 2014 г.
  19. ^ Перейти обратно: а б «Государство Нуво, часть I» . LWN.net . Проверено 1 сентября 2014 г.
  20. ^ «Nouveau переходит в ядро ​​Linux 2.6.33!» . Фороникс . 11 декабря 2009 г.
  21. ^ Джонатан Корбет (23 марта 2012 г.). «Водитель-нувоист заканчивает постановку» . LWN.net .
  22. ^ Перейти обратно: а б Перес, Мартин. «Слайды Nouveau XDC 2013» (PDF) . X.Орг . Проверено 1 сентября 2014 г.
  23. ^ «Государство Нуво, часть 2» . LWN.net . 26 февраля 2008 года . Проверено 7 марта 2008 г.
  24. ^ «Nouveau Companion 36 — необычный спутник Nouveau-Development» . 7 марта 2008 г. Архивировано из оригинала 8 февраля 2012 г. Проверено 7 марта 2008 г.
  25. ^ «Nvidia предлагает опубликовать общедоступную документацию по некоторым аспектам своих графических процессоров» . 23 сентября 2013 г. Проверено 24 сентября 2013 г.
  26. ^ «drm/nouveau: начальная поддержка GK20A (Tegra K1)» . 31 января 2014 г.
  27. ^ «drm/nouveau: начальная поддержка GP104 (Pascal)» . Гитхаб . 09.07.2016.
  28. ^ «Отчет о состоянии» (PDF) . х.орг. Сентябрь 2016 года . Проверено 6 мая 2017 г.
  29. ^ «Вычислительная поддержка для Nouveau, создание LLVM для TGSI и SPIR-V для IR-сервера NV50» (PDF) . 2016 . Проверено 6 мая 2017 г.
  30. ^ https://github.com/nvidia/open-gpu-doc Репозиторий NVIDIA open-gpu-doc
  31. ^ https://nvidia.github.io/open-gpu-doc/ Веб-страница NVidia open-gpu-doc
  32. ^ Майкл Ларабель (29 марта 2009 г.). «Тестирование драйвера Nouveau в Fedora 11» . Фороникс .
  33. ^ «Пакет Меса» . Apps.fedoraproject.org. Архивировано из оригинала 27 февраля 2020 г. Проверено 6 мая 2017 г.
  34. ^ «Основные продукты для версии openSUSE 11.3» . openSUSE . Проверено 29 декабря 2010 г.
  35. ^ «Ошибка № 454821: Ошибки: пакет «xserver-xorg-video-nv»: Ubuntu». {{cite web}}: Отсутствует или пусто |url= ( помощь )
  36. ^ "Результаты поиска для "libgl1-mesa-dri" " . Пакеты Ubuntu . Проверено 6 мая 2017 г.
  37. ^ Debian (11 февраля 2011 г.). «Драйверы Nouveau nVidia теперь доступны в экспериментальной версии Debian» .
  38. ^ Сэм Спилсбери, главный специалист по поддержке Compiz (21 мая 2010 г.). «Остерегайтесь эталонов» . Наша рекомендация: используйте nouveau.
  39. ^ «Codethink запускает NVIDIA Jetson TK1 под управлением Linux 3.15, Wayland» . Фороникс . 12 июня 2014 г.
  40. ^ «нуво/NetBSD» . freedesktop.org. 17 октября 2016 г. Проверено 30 января 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5553cddb8d6372f9304032411ae77fa4__1716877260
URL1:https://arc.ask3.ru/arc/aa/55/a4/5553cddb8d6372f9304032411ae77fa4.html
Заголовок, (Title) документа по адресу, URL1:
nouveau (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)