LINUX.ORG.RU

Asahi Linux: OpenGL ES 2.0 на Apple silicon

 , , , ,


1

2

Проект Asahi Linux смог запустить Xonotic и Quake в разрешении 4K на максимальных настройках графики в сеансе Wayland Gnome/KDE, используя открытые драйвера mesa OpenGL ES 2.0 на чипах M1 и M2 от Apple. Проект продолжает совершенствоваться. Запланированные обновления включают в себя:

  • продолжение улучшения поддержки OpenGL 2.0, включая шейдеры;
  • работа по полной поддержке Vulkan внутри драйвера;
  • упрощение сборки и установки драйверов для пользователей.

Проект Asahi linux уже 2 года работает над обратным инжинирингом GPU и разработкой графических драйверов для ARM-процессоров Apple. Для этого надо было разработать главные компоненты рабочих драйверов для GPU, userspace-драйверы (Mesa/OpenGL stack) и ядерные драйверы для macOS и Linux.

Алиса Розенцвейг (Alyssa Rosenzweig) и Дугалл Джонсон (Dougall Johnson) спустя несколько месяцев работы над проектом смогли разработать полностью открытый userspace-драйвер для macOS, способный отрисовывать glxgears и игру Neverball.

Затем, разработчик LinaAsahi в апреле этого года взялся за ядерные драйвера, которые в будущем планируется включить в основное ядро Linux. Прототип кода был написан на Python и использовался для изучения всех тонкостей Apple Firmware. Спустя несколько месяцев началась разработка полноценного драйвера на языке C. Но столкнувшись с множеством проблем в управлении памятью, разработчик решил дождаться уже анонсированной реализации Rust в ядре Linux. После переписывания основы на Rust разработка многократно ускорилась. Недавно с этим драйвером удалось запустить KDE.

С объединёнными наработками авторы выступили на XDC 2022 и провели всю конференцию, используя открытое ПО.

>>> Блог проекта Asahi linux с красиво собранной информацией со скриншотами на английском



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 10)

Ответ на: комментарий от Roy-Batty

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

Сместил на более скромную позицию. :)

P.S. Да и вообще, основная работа конкретно с этой новостью была в том, что её надо было перевести с машинного на русский, см. историю исправлений.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)

Меня больше это забавляет:

Но столкнувшись с множеством проблем в управлении памятью, разработчик решил дождаться уже анонсированной реализации Rust в ядре Linux.

И как же это раньше-то драйвера писали и проблемы с управлением памятью решали на старомодной сишечке?.. А их ведь решали, ошибка в видеодрайвере вылезет боком гораздо быстрее, чем в гуе к БД какой-нибудь…

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

Всё правильно. Мир меняется.
Задачи те же, а технику продавать надо.

Roy-Batty
()
Ответ на: комментарий от hobbit

И как же это раньше-то драйвера писали и проблемы с управлением памятью решали на старомодной сишечке?

Он ЕМНИП писал, что там такой звиздец в интерфейсных структурах оригинального драйвера, что на чистой сишке писать (и отлаживать, что важней, этож реверс - спеки почитать не дадут) задолбишься. А раз Раст уже в ядре и, в принципе, на его структуру всё, не без скрипа, но неплохо укладывается, то и решил писать на нём. Пошло всё сильно бодрее.

SkyMaverick ★★★★★
()

Отлично. Значит, скоро можно будет железо от огрызка брать на пробу.

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

И как же это раньше-то

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

ox55ff ★★★★★
()

После переписывания основы на Rust разработка многократно ускорилась

Не удивительно. Сишка это про закат солнца вручную. 90% времени тратишь на работу с памятью. И всё равно течёт как решето.

ox55ff ★★★★★
()

А как так то, как это они смогли драйвер написать на расте? Ведь пол лора блеяло, что он совершенно непригоден и это невозможно!

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

Линус одобрил, стало и возможно, и пригоден.

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

Раньше процессоры небыли такой занозой. Процессоры Apple постоянно, собирают статистику, логи с остальных компонентов устройства, для обрисовки по двум видам графики. И если она не сможет нативно связаться, хоть с одной вещью, то вылетит или за морозится. Да и выпускающиеся обновления на Apple Firmware, менявшие всё до того, что приходилось снова заниматься обратным инжинирингом, чтоб всё починить. А сам код на C больше деббагался, чем писался.

Поддерживать такой код на C и при этом не угодить в лужу, звучит как задача для C ектанта, но не разработчика. Как по мне, выбор вполне оправдан. Да и без костылей, потому-что поддерживается ядром.

LibAccelerator
() автор топика
Ответ на: комментарий от Original_1

Ну не все, но 70 процентов по итогам летнего опроса. Я уже говорил, что по аудитории ЛОР точнее всего определить как российский форум с международным участием.

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

Поддерживать такой код на C и при этом не угодить в лужу, звучит как задача для C ектанта, но не разработчика.

То есть человек, который просто-напросто на хорошем уровне владеет одним из своих основных профессиональных инструментов (в данном случае языком программирования) у нас теперь называется «сектантом», и его нельзя считать разработчиком?

Нда. Дожили. Пропал калабуховский дом…

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

Имелось в виду, что поддержка будет занимать огромную часть времени. А добавление фитч и оптимизации для стороны пользователя просто отойдёт на второй план, что не есть хорошо для Desktop’а. Только совсем уж преданный идеологии C, будет использовать для такой задачи только C.

LibAccelerator
() автор топика
Ответ на: комментарий от hobbit

Так растовики тоже владеют на хорошем уровне своим профессиональным инструментом. Но почему-то из всех щелей только скулёж «нинужна» и «растосектанты». В чем разница?

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

Rust сектанты считают таковыми всех, кто мыслит не так как они.

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

Но почему-то из всех щелей только скулёж «нинужна» и «растосектанты». В чем разница?

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

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

Потому что они прибегают срать в каждой теме … а вот если бы написали на Rust

Есть мнение, что это не разработчики, а школо(тролло-)та, которая офигела от своей крутости, только вчера собрав hello world.

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

Не стереотипы, а суровая реальность. Например нужно вернуть строку из функции.

Люди в нормальных языках просто пишут что-то вроде return format(«value = $value»).

В то же время сишники (наберите воздуха — Задорнов) вручную: сначала считают требуемое количество памяти под строку, выделяют эту память, заполняют память символами строки, возвращают указатель, принимающая сторона считает количество символов (ведь указатель не несёт эту информацию), что-то делает со строкой и удаляет память.

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

Если пофилософствовать, то получается, что большую часть времени сишники тратят на создание новых уязвимостей. Не удивительно, что сишку хотят заменить на что-то другое, в чём соотношение создание уязвимостей/полезного кода находится в других пропорциях.

ox55ff ★★★★★
()

X.Org developer’s Conference 2022: https://www.youtube.com/watch?v=SDJCzJ1ETsM

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

При этом собственно про X.Org с его C89 и даже ниже никто что-то и не говорил, только про Apple M1, M2, Rust и Wayland.

Самая популярная трансляция XDC2022, X.Org, 2023, итоги.

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

Ну, какбы то ни было, та самая девочка-с-секретиком-по-колено (aka Алиса Розенцвейг) запилил(-а) дохрена чего полезного. Нам же не жить с ним/ней, в конце концов. А скилл видно, что есть.

А аниме девочка с ушками, если я правильно понял, это и есть lina asahi, и есть подозрение, что это виртуал marcan-а (Гектора Мартина, лидера проекта). Ну, некоторые вон в метавселенную играют, этот себе аниме-персонажа завёл (у японцев, например, довольно популярно). У каждого своя шиза.

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

Это просто забавная отсылка к мемам по типу

Ожидание:

Реальность:

А люди которые там задействованы действительно молодцы, взять жутко-анально огороженную железку и запилить под неё свободный уже практически рабочий графический стек – настоящий hacking culture, как в старые добрые времена.

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

В то же время сишники (наберите воздуха — Задорнов) вручную: сначала считают требуемое количество памяти под строку, выделяют эту память, заполняют память символами строки, возвращают указатель, принимающая сторона считает количество символов (ведь указатель не несёт эту информацию), что-то делает со строкой и удаляет память.

Это редкий случай. Последний раз я подобное видел в SQLite, там таким образом реализован возврат сообщений об ошибке.

В большинстве случаев строки хранятся в static memory и их без проблем можно возвращать как const char*.

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

молодцы, только профит от этого будет скорее анальным огородителям

а их мотивация такая же шизоидная как и их поведение - вернее это уже смешалось. Нынчо у них образовался транс-язычок, и враг трансов - ГНУ.

Всё это лишь на руку огрызку.

Технические решения особенно в плане софта должны быть настолько далеки от общечеловеческого нравится/не нравится насколько можно. Тут же движение в противоположном направлении.

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

Нет. Это пример про не статическую строку, которая вычисляется в рантайме. format("value = $value") — вместо $value нужно подставить значение переменной, которое не известно на момент компиляции.

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

А зачем это делать если можно дождаться Rust? Лишняя работа.

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

Перевожу, разработчики умели в пистон, но не умели и не хотели в С. Джва года они ничего не делали, а потом написали 10 строк на расте и разработка заметно ускорилась

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

Это просто уколы бабских гормонов на мозг влияют (Розенцвейг — транс).

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

О нет, кто-то выглядит не так, как ожидали пердолики с ЛОРа, что же делать?

Original_1
()

Джва года жду бубунту на м1.

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

девочек-с-секретиком и кошачьими ушками

сказал как будто что-то плохое

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

А как так то, как это они смогли драйвер написать на расте? Ведь пол лора блеяло, что он совершенно непригоден и это невозможно!

Там всё ещё интереснее. Они его сначала на питоне написали (он перекидывал командные буфера на маковскую машину), а потом портанули на раст уже для хостового ядра.

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

И как же это раньше-то драйвера писали и проблемы с управлением памятью решали на старомодной сишечке?.. А их ведь решали

На этапе дизайна можно много проблем решить. Но в СИшном коде уязвимости имеют тенденцию появляться при рефакторинге. А они не по спеке драйвер проектировали, а отхакивали методом проб, ошибок и реверс инжениринга. Чтобы потом это всё в удобоворимый и безопасный вид привести, пришлось бы создать спеку, и по ней спроектировать драйвер заново. Они решили, что проще будет сразу на расте.

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

Технические решения особенно в плане софта должны быть настолько далеки от общечеловеческого нравится/не нравится насколько можно. Тут же движение в противоположном направлении.

Что характерно, движение и «мни ни нравица» исходит только от тебя.

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