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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.