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)

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

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

Вроде как модифицировать язык и оригинальный компилятор/Каргу, никто не собирается, а про альтернативные реализации компилятора (что явно указано в описании проекта и допускается соглашением) в запретах ничего не сказано.

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

-_- это вообще был псевдоироничный форсед мем.. просто зумерам чтоб такое выкупить даже сговариваться и перемигиваться не надо. в итоге чтоб поддержать движ не надо даже понимать что такое раст и что такое си. достаточно увидеть пример и ответные реакции и всё шаблон работает.

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

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

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

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

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

Написано так будто это проблема в си. Будто в расте он руками память не будет вертеть. Будет и более того с более явным пердолингом. Очередная пропаганда раста на пукстом месте с выдуманной и лживой проблемой. Смог нп питоне фирмварь переписать, но несмог памятью управлять ага

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

Интересно, какое будущее ожидает этот фронтэнд, исходя из позиции разработчиков самого Rust.

Там написано что ты не можешь изменить раст и потом раздавать его под названием «раст».
Т.е. ты можешь изменить раст и раздавать его как «пласт» но тут вроде никто не планирует менять раст

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

П.с. сам раст никогда не видел :D

rukez ★★★★
()

авторы выступили на XDC 2022

VTuber’ы заполонили всю плане-е-ету… Такое ощущение, что там сорокалетний мужик с софтом для изменения голоса. Причём настройки такие, что больше пары минут слушать тяжело.

i-rinat ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

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

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

переносимость высоких частот в звонких анимэ-голосах дело привычки.

Не, есть звенящий ужас в виде голоса пропущенного через кучу фильтров, там так и есть высокочастотный писк модулируется в тональность голосу и всё, а есть приятный звонкий женский голос. Эта разница апокалиптически большая. Я аниме смотрел штук 5 =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Thero

Первый раз про подобную теорию слышу. Но к моему сообщению выше это отношение не имеет.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Thero

переносимость высоких частот в звонких анимэ-голосах дело привычки

Ну нет, это сложно сравнить с «аниме-голосами». Я посмотрел довольно много клипов из стримов витьюберов за последние годы. Даже солидные куски стримов. И отсмотренного аниме у меня тоже немало. В обоих случаях обычно всё хорошо. А тут прям включил, и жесть.

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

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

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

Путём многократного увеличения трудозатрат.

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

Сектанты растишки везде видят сектантов :) это банальная проекция.

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

Гектор Мартин в родился в 90-м, 32 ему

Lrrr ★★★★★
()
Ответ на: комментарий от ox55ff
typedef struct {
  char data[MAX_SIZE];
  size_t len;
} string_t;

string_t string_new(const char* data) {
  // ...
}

return string_new(data);

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

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

Не эффективное использование памяти. Всегда выделяется MAX_SIZE байт. Ручная простановка нуля в нужное место. Можно ошибиться и попасть в новости про новую уязвимость.

Ты своим примером только подтвердил минусы сишки.

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

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

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

фишка не в том чего можно делать в сишке а в том чего нельзя натворить в расте потому что по рукам надаёт компилятор а не QA.

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

ты сейчас пытаешься сказать, что в си нельзя выделить память в куче? Какой нафиг ноль, какое нафиг нужное место, ты о чем вообще?

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

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

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

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

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

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

cleanup-аттрибут

Кривой костыль от разработчиков компиляторов. В стандарте его нет. Это коекакерство лишь замена goto cleanup.

В сишке типы не могут знать, что их копируют. Поэтому если указатель с этим атрибутом нужно передать в другую функцию или же вернуть из функции, то всё равно нужно будет разруливать права владения руками. Иначе получишь двойное освобождение памяти или использование после освобождения и опять попадёшь на передовицы CVE. Это приговор.

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

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

gcc это стандарт, фейковый стандарт который некоторые называют официальным, просто постепенно вбирает в себя фичи gcc.

В сишке типы не могут знать, что их копируют.

А в С++ знают если вызвать memcpy?

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

gcc это стандарт

Маняврирования.

А в С++ знают если вызвать memcpy?

В C++ есть инструменты для копирования и перемещения объектов, которые всё знают. Зачем копировать сложные объекты через memcpy? Это же не убогая сишка, где нет никакого иного выбора.

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

gcc это стандарт

Как же достал меня этот «стандарт», который постоянно генерирует битые бинарники на пустом месте. А чтобы собрать сам GCC без бубна не обойтись.

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

Маняврирования…

Второй слился.

Например структурка содержит указатель. Ты копируешь структурку своим memcpy и указатель раздваивается. Теперь два указателя ссылаются на одну память. Вот тебе и double free. Сишник 10% рабочего времени пишет бизнеслогику, а 90% времени добавляет новые уязвимости.

В c++ для устранения этих проблем есть конструкторы/операторы копирования/перемещения. Извини, но у тебя лапки сишка.

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

Например структурка содержит указатель. Ты копируешь структурку своим memcpy и указатель раздваивается

Вот копировать структурки memcpy-ем есть моветон и надо делать my_struct * my_fucking_structure_copy (const my_struct *src) на даже тривиальные случаи.

Внимательность, ЧТО копируешь, нужна, конечно, не без этого. Хотя вот именно такой случай любой статик-анализатор матом покроет (да и валгринд тоже должен).

В c++ для устранения этих проблем есть конструкторы/операторы копирования/перемещения

Тоже тот ещё, пардон, дроч, если честно.

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

Ты копируешь структурку своим memcpy и указатель раздваивается

В С++ такой проблемы нет?

В c++ для устранения этих проблем есть конструкторы/операторы копирования/перемещения.

А в С есть structure_copy().

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