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 ()

Это конец гнидии намечается.

paran0id ★★★★★ ()

Теперь вообще ничего работать не будет. Здорово. Лучше б закрытый драйвер пилили.

slony ()

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

Брехня это. В коде секретов не утаишь. Достаточно конкурентам заглянуть в драйвер. Идой например. У конкурентов есть специалисты по ГЛ, они разберутся, как у АМД ГЛ работает, если им надо. Скорее:

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

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

а лицензировать драйвер можно под GPL, тогда Nvidia если
она скопирует, придётся открывать свой драйвер

Какая наивность. :) А если не скопирует, а просто посмотрит, и сама слепит аналогичный код, но совсем по-другому его реализует?

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

Какая наивность. :) А если не скопирует, а просто посмотрит, и сама слепит аналогичный код, но совсем по-другому его реализует?

Вы ничуть не менее наивны, ведь можно именно скопировать а не лепить аналогичный код - ведь NVidia поставляет пользователям блоб, откуда же можно будет узнать, что этот блоб скомпилирован из кода частично позаимствованного у других?

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

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

Сравнением бинарных фрагментов, частичной декомпиляцией (декомпильнуть надо только нужный небольшой кусок) и прочими техниками реверс-инженеринга. Прецеденты именно с GPL - были. Когда это нужно такой корпорации - она изыщет способы.

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

Да и в инвидии не дураки сидят - знают, чем это пахнет, и юр отдел делает у них аудит кода, чтобы такого безобразия не было.

anonymous ()

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

Амд такие шутники! Оптимизации, о да.

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

И вы со своим амд этот конец соснёте :3

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

Красавец. Наши методы. Даже дипломатия полностью открытая. ^_^

Csandriel ()

поскольку облегчает их реверс-инжиниринг

ни один дебил в мире не станет реверс-инженерить дрова для железа, которое сменится новым быстрее чем закончится весь «инженеринг»

чего стоит история с интел седар трейл, которые никто не реверсил и не собирается даже, хотя бинарники валяются

sanaris ()

Вообще я искренне радуюсь проблемам клозетных видяшников.

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

В реальности же они втюхивают лажовые чипы в «энергоэффективные видяхи». Предлагают «делать расчёты» на видяшках, при этом расчёты тормозят в 2-20 раз по сравнению с нормальными процами. И вообще их архитектура железа - абсолютно уёбищное говно. Которое плавает только из-за того, что они своей клозетной политикой несовместимости выдавили остальных с рынка (Мелкософт по сравнению с ними - Рай на Земле).

Отчасти успех клозетных видяшек обязан стандарту ОпенГЛ. Который был сделан тогда, когда клозетников ещё не так много было - в конце девяностых. Но весь ОпенГЛ по сути проели за эти годы, а клозетная политика не ведёт к разработке чего-то нового. Волна кризиса смоет бездарей :)

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

И самое смешное в современных видяшках то, что от их цены никак не зависит качество работы. Любые две одночиповые видяшки работают одинаково, выдавая говёные тридцать ФПС на реалистичных ландшафтах.

То ли дело раньше, 200фпс в кваке - легко.

sanaris ()

Что поставить на AMD E1 чтобы все было хорошо?

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

С другой стороны, AMD и так много делает для Линукса.

AMD делает, а вот видеокарты как были ATI, так и остались.

DNA_Seq ★★☆☆☆ ()

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

Свободный драйвер уступает в поддержке OpenGL

Лол что? кому нахуй нужен их уёбищный высер, который падает регулярно и 70% игр осилить не может? Что уступает в потдержке OpenGL ещё можно поспорить.

TANK1444 ()

Видеокарты не нужны.

Deleted ()

AMD рассматривает новую стратегию...

короче, вместо того чтобы сделать, наконец, нормальные дрова, они продолжают кормить фанбоев сказками о светлом будущем, а те и рады чавкать и оргазмировать от красивых слов

«без лоха и жизнь плоха» (с) -))

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