LINUX.ORG.RU

AMD рассматривает новую стратегию более открытой разработки драйверов для Linux

 , , , ,


0

1

По информации, полученной с Game Developers Conference, внутри компании AMD сейчас рассматривается вопрос о кардинальных изменениях в модели выпуска драйверов для Linux.

Вкратце, AMD планирует кардинально переработать структуру драйвера Catalyst таким образом, чтобы тот больше не требовал установки проприетарного модуля ядра. Эта работа будет возложена на открытый DRM-драйвера (Direct Rendering Manager) Radeon, а остатки проприетарного кода станут выполняться в пространстве пользователя.

Текущая ситуация с установкой проприетарных драйверов (как AMD, так и Nvidia) чересчур сложна. В системе должен быть установлен полный набор компиляторов, чтобы при установке драйвера собрать проприетарный модуль ядра. Компиляция «на местах» необходима в силу наличия разнообразных версий ядра Linux, которое не имеет стабильных API/ABI. Наличествуют и правовые ограничения, запрещающие свободно распространять закрытые модули, слинкованные с ядром. Перемещение проприетарных компонентов из пространства ядра в пространство пользователя позволяет элегантно решить проблему фрагментации платформы Linux, избавляя от необходимости таскать с собой набор компиляторов. Заодно, решается и проблема несовместимости прежних версий драйвера с новыми выпусками ядра.

Наличие единого свободного драйвера для Mesa/Gallium3D и Catalyst привело бы к более эффективному сотрудничеству и меньшему распылению сил на поддержку дублирующегося кода. Вдобавок, открытый драйвер станет быстрее получать новые возможности и оптимизации. Такой подход привел бы даже к поддержке Wayland / Mir драйвером Catalyst (через Radeon KMS), при условии, что инженеры AMD добавили бы поддержку необходимых расширений EGL в ту часть драйвера, которую планируют вынести в пространство пользователя.

Основные проблемы, вставшие перед разработчиками:

  • Необходимость существенной переработки компонентов Catalyst OpenGL и Catalyst DDX для работы с драйвером Radeon DRM. В настоящий момент, Catalyst использует совершенно иную модели драйвера, по сравнению с открытым драйвером. Обнадеживает тот факт, что AMD уже смогла наладить взаимодействие проприетарного драйвера с открытым драйвером, без внесения изменений в ядро, хотя данный прототип драйвера пока еще далек от полноценного;
  • Линус Торвальдс крайне негативно относится к изменениям, ломающим обратную совместимость. Таким образом, если адаптация Radeon DRM (для работы с Catalyst) cломает уже существующей в ядре драйверы R300/R600/RadeonSI, то такой код просто не будет принят в ядро. Отсюда следует, что все изменения должны быть максимально сосредоточены на стороне проприетарного драйвера, а изменения в открытой части должны быть минимальными и хорошо документированными;
  • Пока не ясно, годится ли вообще для задуманного драйвер ядра Radeon DRM в своём нынешнем состоянии. Код управления памятью Radeon DRM менее оптимизирован по сравнению с Catalyst, что влечет необходимость его оптимизации, иначе пользователи ощутят снижение производительности;
  • Кроме проблем с производительностью, в открытом драйвере полностью отсутствуют некоторые важные возможности. На ум сразу же приходят CrossFire / Dual Graphics , поддержка стереорежима, дополнительные режимы сглаживания AA / AF , OverDrive / разгон, и многие другие, которые сейчас доступны лишь через Catalyst Control Center. Открытый драйвер не полностью поддерживает OpenCL, и лишь OpenGL 3.3, в то время, как проприетарный Catalyst уже умеет OpenGL 4.4. С другой стороны, закрытый драйвер не обладает, например, поддержкой доступа к интерфейсу VCE (Video Coding Engine), так что более плотное взаимодействие разработчиков позволит объединить «под одной крышей» плюсы открытой и проприетарной части;
  • Пока не ясно, как AMD будет решать проблемы с запатентованным кодом или кодом, подверженным юридическим ограничениям. Остается спорным вопрос о способе реализации DRM (средства защиты авторских прав) в открытом драйвере. Очевидное решение - использовать отдельный проприетарный модуль ядра, контролирующий контент, воспроизводимый пользователем (например, для защиты от перехвата видеопотока, поступающего от видеокарты на монитор), но этот подход ставит под сомнение весь проект - в самом деле, какой смысл стараться уйти от закрытого модуля ядра, чтобы в итоге придти к другому закрытому модулю ровно с теми же недостатками? Размещение же средств защиты авторских прав в открытом драйвере затруднительно, поскольку облегчает их реверс-инжиниринг и создание инструментов для нарушения авторских прав.
  • Новые интерфейсы открытого ядерного драйвера, предназначенные лишь для взаимодействия с закрытыми компонентами пользовательского режима, могут быть отвергнуты Линусом Торвальдсом и не включены в ядро. Так, к примеру, он отказал компании VIA, которая хотела видеть в ядре драйвер Chrome 9 DRM, предназначенный для воспроизведения трёхмерного видео, но лишь через проприетарный бинарный компонент, работающий в пространстве пользователя. Свободный код, которым могут пользоваться лишь проприетарные компоненты пространства пользователя, в ядро не допускается.
  • Идея вынести часть кода из ядра уже обсуждалась в 2007 году, и была отвергнута из-за крайне затруднительной реализации. Однако, по словам инженеров AMD, с тех пор драйвер Catalyst существенно изменился;
  • Для AMD весьма важен корпоративный рынок. Сейчас драйвер Catalyst может быть легко установлен на старых ядрах Enterprise Linux, которые имеют долгосрочную поддержку. Придется портировать много кода в старые ядра, а корпоративным пользователям обновлять ядро, вместо того, чтобы просто скомпилировать новый модуль fglrx для обновления, как сейчас;
  • Опасения вызывает и тот факт, что при существенном дополнении функциональности драйвера пользователям придется обновлять ядро (в котором находится открытая часть драйвера). Но не многие из основных дистрибутивов могут позволить себе легко и просто сменить мажорную версию ядра. Сейчас же, пользователь легко может пойти и скачать с amd.com драйвер под необходимую версию ядра;
  • AMD придется сделать так, чтобы «код» обгонял «железо». Это необходимо, чтобы поддержка нового оборудования успела попасть в стабильную версию ядра. До сих пор, поддержка оборудования в драйверах появлялась уже после выхода этого самого оборудования на рынок. Но у ядра Linux свой цикл разработки, новый код с крупными изменениями принимается только в течение определенного периода времени, после которого кодовая база «замораживается» и начинается выпуск релиз-кандидатов. К тому же, существенную часть времени в подготовке драйверов занимает не труд программистов, а различные юридические согласования

>>> Подробности

anonymous

Проверено: Shaman007 ()

Не влезло в новость:

Пользователи часто интересуются, почему AMD не переведет свои драйверы на полностью открытую модель разработки. Представители компании объяснили, что причиной тому является вовсе не популярный миф «в драйвере много стороннего запатентованного кода». На самом деле, такого кода мало, более того, AMD в прошлом даже продавало третьим лицам право на использование своей кодовой базы. Таким образом, все «сторонние компоненты», в основном, уже удалены. Истинной причиной закрытости является беспокойство о том, что конкуренты скопируют различные оптимизации и особенности реализации OpenGL в драйверах AMD, что полностью лишит продукцию компанию конкурентных преимуществ. Да и сама компания не так уж много выгадает. К тому же, проприетарный драйвер Catalyst (содержащий пару миллионов строк кода) намного сложнее, чем открытые драйверы Gallium3D (менее 100 тысяч строк). Даже открытие документации не привело к существенному увеличению числа людей, работающих над свободным драйвером. Всё это в совокупности, да ещё с учётом не столь обширного парка машин на Linux (а людей, использующих открытые драйверы, еще меньше), не даёт никакого экономического обоснования для открытия кода. Отказаться же от собственного драйвера и полностью сосредоточиться на Gallium3D, компания тоже не в состоянии. Свободный драйвер уступает в производительности, поддержке OpenGL и прочих аппаратных возможностей. Catalyst, в отличие от открытого драйвера, сертифицирован на соответствие стандартам OpenGL, а это очень важный момент для корпоративных клиентов, которых AMD не может проигнорировать.

anonymous ()

Совсем кратко: часть нынешнего блоба переезжает в юзерспейс, оставшееся открывается и переезжает непосредственно в ядро.

anonymous ()
Ответ на: комментарий от anonymous

оставшееся открывается и переезжает непосредственно в ядро.

а их туда кто-то звал? Линус еще второй эпичный фак не показал?

Kompilainenn ★★★★★ ()
Ответ на: комментарий от Kompilainenn

Если его кому и показывать, то невидии по второму кругу.

daemonpnz ★★★★★ ()

Все кончены для AMD. Рынок Linux-гейминга плотно заняла nVidia.

anonymous ()
Ответ на: комментарий от daemonpnz

Если его кому и показывать, то невидии по второму кругу.

Если на AMD-карточках не работает 42 игры из моей библиотеки Steam (252 игры), то я так полагаю AMD надо показать Х#Й?

anonymous ()
Ответ на: комментарий от anonymous

Истинной причиной закрытости является беспокойство о том, что конкуренты скопируют различные оптимизации и особенности реализации OpenGL в драйверах AMD, что полностью лишит продукцию компанию конкурентных преимуществ.

В бенчмарках закрытых драйверов на похорониксе всегда побеждает NVIDIA. Qualcomm на десктопы видеокарты делать не собирается.

Чего они боятся-то?

Даже открытие документации не привело к существенному увеличению числа людей, работающих над свободным драйвером.

Но ведь повысило их эффективность, и это заметно! С тех пор, как AMD открыли документацию, RadeonSI взлетел неимоверно высоко.

С другой стороны, AMD и так много делает для Линукса. Не осуждать же за некоторые просчёты. И новость хорошая. Молодцы!

Adonai ★★★ ()

Компиляция «на местах» необходима в силу наличия разнообразных версий ядра Linux, которое не имеет стабильных API/ABI.
не имеет стабильных API/ABI.

Вот когда это исправят, вот тогда можно будет говорить что Linux готов. Любые же попытки писателям драйверов обойти эту проблему заканчиваются ничем.

FeyFre ★★★ ()
Ответ на: комментарий от anonymous

Истинной причиной закрытости является беспокойство о том, что конкуренты скопируют различные оптимизации и особенности реализации OpenGL в драйверах AMD

Какие конкуренты? Intel и Nvidia? Ну Intel пусть копирует, у него только открытый драйвер, а лицензировать драйвер можно под GPL, тогда Nvidia если она скопирует, придётся открывать свой драйвер и AMD тоже сможет скопировать какие-нибудь оптимизации.

Только крайне сомнительно, что эти оптимизации подойдут к графическим ядрам с другой архитектурой.

Что касается DRM (который про ограничения), то его можно просто не реализовывать, пользователям он всё равно не нужен.

Xenius ★★★★★ ()
Ответ на: комментарий от FeyFre

Вот когда это исправят, вот тогда можно будет говорить что Linux готов.

Проприетарные драйвера не нужны, а для свободных это некритично.

Xenius ★★★★★ ()
Ответ на: комментарий от Kompilainenn

Сотрудники nvidia уволившиеся из-за возросшего стресса после среднего пальца линуса перешли работать в AMD?

ncrmnt ★★★★ ()

Кстати, а как NVIDIA, с другой стороны, планирует поддерживать Вейланд?

Я слышал, у них тоже EGL пилится,но деталей не помню.

Adonai ★★★ ()
Ответ на: комментарий от Adonai

Чего они боятся-то?

Удваиваю вопрос. Хотя теоретически существует некоторая вероятность того, что конкуренты оптимизировали свою продукцию другими методами и тогда у них возможно появится способ оторваться еще дальше. Но практически, все возможные варианты архитектурных решений в кругу производителей GPU и так известны и хорошо изучены. И каждый производитель мог пойти своим путем, в который оптимизации конкурента могут даже не вписаться за счет сильных архитектурных различий.

m0rph ★★★★★ ()

Надеюсь сделают всё грамотно и там будет всё на «Мантии», а не на галюне.

pony ()
Ответ на: комментарий от Xenius

Что касается DRM (который про ограничения), то его можно просто не реализовывать, пользователям он всё равно не нужен.

Его вроде там вообще нет.

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от anonymous

То есть прослеживается синдром вахтёра.

К тому же, проприетарный драйвер Catalyst (содержащий пару миллионов строк кода) намного сложнее, чем открытые драйверы Gallium3D (менее 100 тысяч строк). Даже открытие документации не привело к существенному увеличению числа людей, работающих над свободным драйвером. Свободный драйвер уступает в производительности, поддержке OpenGL и прочих аппаратных возможностей

Сами же сделали сообщество догоняющим. Одно дело — фиксить баги и поддерживать в актуальном состоянии (под новые X-ы и ведро), а другое — уже после выхода железяк проделывать всю работу, что проделала AMD.

Catalyst, в отличие от открытого драйвера, сертифицирован на соответствие стандартам OpenGL, а это очень важный момент для корпоративных клиентов, которых AMD не может проигнорировать.

Ну так пусть сертифицируют сборку свободного драйвера.

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от Ttt

Ну так пусть сертифицируют сборку свободного драйвера.

Он ещё до OpenGL 4.3 не дотягивает, к сожалению

Adonai ★★★ ()

Основные проблемы, вставшие перед разработчиками:
...
Линус Торвальдс
...

cipher ★★★★★ ()
Ответ на: комментарий от cipher

Линус Торвальдс крайне негативно относится к изменениям, ломающим обратную совместимость.

на самом деле, это правило хорошего тона - не ломать обратную совместимость, вести аккуратную документацию, и это ведь вовсе не именно Линус такой злой.

Если бы этого не было, ядро не было бы ничем лучше Microsoft XNA или GTK3 Theme Engine

Adonai ★★★ ()
Последнее исправление: Adonai (всего исправлений: 1)
Ответ на: комментарий от anonymous

Истинной причиной закрытости является беспокойство о том, что конкуренты скопируют различные оптимизации и особенности реализации OpenGL в драйверах AMD, что полностью лишит продукцию компанию конкурентных преимуществ.

AMD
конкурентные преимущества

Ваганыча на работу там приняли что ли?

anonymous ()
Ответ на: комментарий от Adonai

Ну пусть сами переходят с разработки закрытого на открытый. Или откроют свой. Нет ведь, якобы боятся, что скопируют. Но, как тут уже говорили, во-первых, вряд ли их код будет полезен для других видеокарт, а во-вторых, можно открыть его под GPL.

Ttt ☆☆☆☆☆ ()

Остается спорным вопрос о способе реализации DRM (средства защиты авторских прав) в открытом драйвере.

А там оно разве было? Что-то не слышал про HDCP под Linux, не считая всяких проприетарных ни с чем не совместимых ОС типа ведроида, chromeOS и более специфичных поделий, которые предустанавливаются на железо и всё это тивоизируется.

Очевидное решение - использовать отдельный проприетарный модуль ядра, контролирующий контент, воспроизводимый пользователем (например, для защиты от перехвата видеопотока, поступающего от видеокарты на монитор), но этот подход ставит под сомнение весь проект - в самом деле, какой смысл стараться уйти от закрытого модуля ядра, чтобы в итоге придти к другому закрытому модулю ровно с теми же недостатками?

Его будут ставить те, кому он нужен. Если не нужен, то можно пользоваться полностью открытым драйвером.

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от pony

Мантия обречена, еще толком не родившись, поскольку анонсирован DirectX12. Nvidia уже когда-то наступила на эти грабли со своим чипом NV1. Теперь, видимо, очередь AMD сделать ту же ошибку. Либо им придется педалировать свой API вопреки Microsoft, либо поддерживать оба, но тогда разработчики просто будут писать под DX, особенно, если его поддержит еще и Nvidia. Ну, а что поддержит Nvidia - очевидно, явно не своего конкурента.

anonymous ()
Ответ на: комментарий от Adonai

В бенчмарках закрытых драйверов на похорониксе всегда побеждает NVIDIA. Qualcomm на десктопы видеокарты делать не собирается.

Чего они боятся-то?

Может боятся что NVidia будет не немного лучше, а на порядок лучше если заимеет алгоритмы оптимизаций OpenGL. Хотя скорее всего большая часть этих оптимизаций наверняка лежит на поверхности и поэтому должна совпадать у AMD и NVidia.

Так что больше похоже на то что топ менеджмент AMD не в состоянии преодолеть в своих головах психологический барьер отказа от проприетарности. В таком случае единственный способ решить эту проблему - полностью сменить личный состав топ менеджмента компании AMD.

anonymous ()
Ответ на: комментарий от Xenius

Что касается DRM (который про ограничения), то его можно просто не реализовывать, пользователям он всё равно не нужен.

Если не реализовать DRM, то на подобных видеокартах не будет воспроизводиться видеоконтент, начиная с Blu-Ray, и кончая сервисами типа Netflix. Потому что иначе, открывается возможность для пиратов рипнуть видеопоток. «Приятным» бонусом идет невозможность оснастить такую видеокарту разъемами DisplayPort и HDMI, которые обязательно требуют реализацию HDCP.

anonymous ()

Круто. Прям праздник какой-то - CryEngine, Unreal Engine, игори, еще и это :) Линукс активно готовится.

NeverLoved ★★★★★ ()
Ответ на: комментарий от anonymous

Ну если уж

анонсирован DirectX12

тогда конечно всё пропало.
Пойду скажу пацанам чтобы выкидывали видеокарты и продавали квартиры, потомучто скоро наступит DirectX12. Выроем землянку в лесу и будет его ждать.

pony ()

Не дождётесь. Во всяком случае текущие карты отправятся на помойку к тому времени.

ritsufag ★★★★★ ()
Ответ на: комментарий от anonymous

не будет воспроизводиться видеоконтент, начиная с Blu-Ray

Шёл 2014 год, но некоторые слоупоки до сих пор пользовались морально устаревшей и изжившей себя технологией оптических дисков. Blu-Ray - это мёртворождённый технология, потому что основывается на оптических носителях информации, которые навсегда уходят в прошлое. Представляю себе какой батхерт происходит сейчас у глав компаний, что сделали ставку на Blu-Ray - миллиарды долларов инвестиций выброшены на ветер.

anonymous ()
Ответ на: комментарий от anonymous

пройдет лет 5-10 Valve станет мега популярным игровым продуктом и АМД увидет экономическое обоснования для открытия кода.

CHIPOK ★★ ()
Ответ на: комментарий от anonymous

100% кому нужны сейчас диски вообще, разве что в жигуль шестерку на лобовом стекле, но там и СД хорошо красуется

CHIPOK ★★ ()
Ответ на: комментарий от anonymous

Потому что иначе, открывается возможность для пиратов рипнуть видеопоток

А сейчас его нет? Покажи, что из фильмов не было спирачено из-за DeRьMа?

«Приятным» бонусом идет невозможность оснастить такую видеокарту разъемами DisplayPort и HDMI, которые обязательно требуют реализацию HDCP.

У Raspberry Pi и Cubieboard тоже есть HDCP?

не будет воспроизводиться видеоконтент, начиная с Blu-Ray, и кончая сервисами типа Netflix.

Как будто он сейчас на Linux официально воспроизводится. Сейчас под Linux официально есть Flash-евское DeRьMo (пока ещё) и гугловский widevine (для html5). Но они разве HDCP требуют?

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от anonymous

Свободный драйвер уступает в производительности, поддержке OpenGL и прочих аппаратных возможностей.

Толсто. Школьники тролли добрались до руководства амд? Они видели хоть http://xorg.freedesktop.org/wiki/RadeonFeature/ ?

anonymous ()
Ответ на: комментарий от ritsufag

Зачем на помойку, как раз отлично будет работать открытый драйвер к тому времени.

anonymous ()

я вот думаю, какие нафиг конкуренты, если архитектура GPU разная

YLoS ★★ ()
Ответ на: комментарий от YLoS

вопрос о защите от конкурентов — очевидно рассмативают юристы в юридическом отделе...

и всё бы хорошо, но похоже те юристы не разбираются в архитектурах :-)

(ну это наверное так же как политиканы в РФ рассмативают вопросы-и-законы связанные с Интернетом, но при этом не знают что такое этот Интернет:))

user_id_68054 ★★★★★ ()
Ответ на: комментарий от anonymous

Если не реализовать DRM, то на подобных видеокартах не будет воспроизводиться видеоконтент, начиная с Blu-Ray, и кончая сервисами типа Netflix.

Ну и не надо, кто его смотрит-то?

Потому что иначе, открывается возможность для пиратов рипнуть видеопоток.

И так все, кому не лень рипают.

бонусом идет невозможность оснастить такую видеокарту разъемами DisplayPort и HDMI, которые обязательно требуют реализацию HDCP.

Ну так и сделать открытую реализацию HDCP.

Xenius ★★★★★ ()

Интересно, а самые известные глюки драйвера будут открыты (и, возможно, исправлены сообществом) или останутся в закрытой части?

anonymous ()
Ответ на: комментарий от anonymous

«Приятным» бонусом идет невозможность оснастить такую видеокарту разъемами DisplayPort и HDMI, которые обязательно требуют реализацию HDCP.

а почему же тогда на моём Intel-ноутбуке — есть разъём HDMI(?), который прекрасно работает, без всяких там проприетарных драйверов..

по сути — получилось что Intel смог реализовать HDMI но без HDCP.. и выходит что ни кто Интелу не смог запретить это сделать :-)

user_id_68054 ★★★★★ ()

Никогда больше не куплю железку с амд видео. Но пусть разрабатывают...

alt0v14 ★★★ ()
Ответ на: комментарий от ncrmnt

после среднего пальца линуса

Я много видел это фото. А где можно ознакомиться с историей кадра?

Перемещение проприетарных компонентов из пространства ядра в пространство пользователя позволяет элегантно решить проблему фрагментации платформы Linux, избавляя от необходимости таскать с собой набор компиляторов.

Когда я вижу декларацию благих намерений от тех, кто всю дорогу позиционировался заряженным копирастом и буржуем, я начинаю лихорадочно искать подвох. Но очень смутное и общее представление о технической сути новости не позволяет сходу найти его в этот раз. Кто-нибудь сегодня подкормит мою паранойю?

Csandriel ()
Ответ на: комментарий от Quasar

О как. Стало быть не знаю разницы между ними. Не знал, что она есть. В любом случае выше правильно сказали, что они несколько прощелкали вспышку. Нвидиа же первой начала лепить драйвера, и соостветственно первой пришла в линукс?

Эти полумеры видимо направлены на подъем престижа? Чуть-чуть открытый драйвер, как, должно быть, предполагается, позволит быстро ликвидировать отставание в популярности на линуксе?

Csandriel ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.