
А ты пользуешься Linux?!
Давно собирался написать статью о текущем положении дел с видеодрайверами в ОС Linux, а заодно высказать своё мнение о работе тех или иных видеокарт.
Почти десятилетнего использования видеокарты nvidia, следуя рекомендациям Linux, я отказался от nvidia и перешел на radeon, который последние 2 года соблазнял меня многими крутыми штуками доступными лишь избранным, то есть пользователям открытых видеодрайверов. Я готов был смириться с его недостатками. Еще лет 5 назад среди производителей десктопных видеочипов и в частности драйверов к ним вырисовывался один четкий лидер, то сейчас все куда интереснее графический стек в Linux развивается с сумасшедшей скоростью.
Поддержка новых видеокарт сейчас большинстве случаев обеспечивается с запозданием всего в пару месяцев, а то и вовсе до их официального выхода. Имея некоторый опыт использования видеокарты nvidia интегрированной графики от intel и какой-никакой опыт активного использования radeon я хочу высказать свое мнение о ситуации с поддержкой этих видеокарт в ОС Linux. В качестве видео драйверов для них ну и заодно определить для каких целей подойдет тот или иной.
Драйверы nvidia начали всерьез дорабатываться и оптимизироваться под ОС Linux. Лишь конце 2012 года Valve выпустила клиент steam для linux а также несколько портов своих игр и что их производительность ничем не хуже таковой в Windows с оговорками естественно.
Конечно оптимизации лишь незначительно касались уже устаревающий на тот момент видеокарты, но для меня они были заметны невооруженным глазом и все же я был лишь о некоторых фичу ОС Linux доступных лишь обладателем открытых видеодрайверов. Например умной аппаратной поддержки direct3d 9 реализованный через wine и мясо просто сидел и облизывался на тесты производительности но зато с аппаратным ускорением видео и подобным я никогда не испытывал проблем. На что часто жаловались тогда пользователи. На тот момент это все было для меня лишь приятным бонусом, но никак не стимулом перейти на видеокарты красных. Играл я на Windows с энтузиазмом. Всякими технологиями графики тоже не горел, меня все устраивало, но к сожалению карта благополучно отдала концы в середине 2016 года и на некоторое время я пересел на встроенную.
В дополнение к своей собственной проприетарный видеокарте в ОС Linux для карты nvidia имеются два видеодрайвера. Поставляется по умолчанию дистрибутивах и фирменный проприетарный драйвер от самой nvidia который можно установить из репозитория или скачать с официального сайта. Их отличия существенны, дело в том что и nvidia очень очень жадная корпорация она не дает разработчикам открытых видеодрайверов документацию по своим видео чипом. А если и дает то обычно эта информация им и так известно, но помимо этого она всячески старается помешать им делать их работу регулярно вставляя палки в колеса. Например, закрытые файлы прошивок которые требуются для работы 3d ускорения независимо от того какой драйвер используется и nvidia публикует экспо очень большой задержкой. Хотя раньше никогда таким не страдала, разработчики это отдельная команда никак не относящейся к nvidia и разрабатывающая драйвер методом обратной разработки, что крайне долго и трудоемко.
Открытый видеодрайвер используют все плюшки графического стыка ОС Linux. К сожалению годится он лишь для того чтобы выводить хоть какое-то изображение чтобы затем пользователь мог установить проприетарный видеодрайвер либо для устаревших видеокарты nvidia поддержку которых вы кинулись проприетарного. Ключевым недостатка много является отсутствие поддержки автоматического изменения частоты видеоядро или риск локинга на более-менее новых видеокартах. Из-за чего они постоянно работают на заниженных частотах и без поддержки. Проприетарный драйвер свою очередь не использует никаких механизмов ядра ОС Linux а таскает себе своей собственной реализации того что нужно Open GL.
В результате и nvidia пришлось самой реализовывать поддержку этой технологии GNOM и KDR разработчик свой в котором была начальная поддержка проприетарной видеокарты. Поэтому с одной стороны добавили поддержку вывод, а с другой сделали ее через одно место. Кроме того и nvidia на windows во всяком случае регулярно искусственно занижают производительность своих карт чувствуя себя монополистом. Среди других недостатков я могу отметить их реализацию opengl которая в отличии от таковой для intel пестрит странными расширениями с целью повышения производительности игр путём частичного нарушения спецификации. Я слышал много критики от разработчиков графических приложений и стандартные подходы и nvidia к реализации чего-то. Отдельно стоит сказать о поддержке ноутбуков с гибридной графикой в которых для работы рабочего стола используется intel. Для тяжелого 3d дискретная nvidia эта технология nvidia optimus есть, которой сто лет в обед. Но в Linux она до недавнего времени поддерживалась из рук вон плохо.
Переключение карт только ручное обязательно требовался перезапуск графического сеансы. Для реализации всего этого применялся либо запуск дополнительного их сервера либо позже реализованной и nvideo технология prime от которой был ужасный telling. За несколько лет эту проблему решили как раз добавления вышеназванной технологии dear мкм, что позволило проприетарным у зеленому драйверу регистрироваться в системе как родному. Модули ядра Linux автоматическое переключение карт реализовали совсем недавно и для него требуется самый свежайший драйвер и x.org из git репозитория ибо стабильного выпуска с этими патчами ждать еще неизвестно сколько касаемо аппаратного ускорения видео и nvidia использует библиотеку.

