Те предлагат внедряването на GPU драйвер, написан на Rust, за Apple AGX G13 и G14

Linux Apple Rust

Това е доста изчерпателен драйвер за GPU от серията Apple AGX G13 и G14.
Днешният контролер е съвместим със SoC

Наскоро бе публикувана новината, че предложено е предварително внедряване на драйвера drm-asahi за серия GPU Apple AGX G13 и G14, използвани в чиповете Apple M1 и M2 в пощенския списък за разработчици на ядрото на Linux.

Контролерът е написан на Rust плюс, включва набор от универсални връзки за DRM подсистемата (Direct Rendering Manager), който може да се използва за разработване на други графични драйвери в Rust.

Издаденият комплект корекции досега е предложен само за обсъждане от основните разработчици (RFC), но може да бъде приет в основния екип след приключване на прегледа и отстраняване на идентифицираните недостатъци.

Това е първата ми версия на абстракциите на Rust за DRM подсистема. Включва самите абстракции, някои незначителни предпоставки за промени от страна на C, както и драйвъра на графичния процесор drm-asahi (за справка как се използват абстракциите, но не е задължително предназначени да кацнат заедно).

Тези пачове се прилагат в горната част на дървото в [1], което се базира на 6.3-rc1 с много добавени ангажименти за поддръжка на абстракция/Rust по-горе. Повечето от тях не са предпоставки за DRM абстракции. себе си, но само от водача.

От декември контролерът е включен в пакета с ядрото за дистрибуцията на Asahi Linux и е тестван от потребителите на този проект.

Драйверът може да се използва в Linux дистрибуции за организирайте графичната среда в dУстройства на Apple със SoC M1, M1 Pro, M1 Max, M1 Ultra и M2. При разработването на драйвера беше направен опит не само да се повиши сигурността чрез минимизиране на грешките при работа с памет в код, изпълняван от страна на процесора, но и частично да се предпази от проблеми, възникващи при взаимодействие с фърмуера.

По-специално драйверът осигурява определени обвързвания за споделени структури на паметта опасен със сложни низове от указатели, използвани във фърмуера за взаимодействие с контролера. Предложеният драйвер се използва във връзка с драйвера asahi Mesa, който осигурява поддръжка на OpenGL в потребителското пространство и преминава теста за съвместимост с OpenGL ES 2. и е почти готов да поддържа OpenGL ES 3.0.

В същото време драйверът, който работи на ниво ядро първоначално е разработен с бъдеща поддръжка за API на Vulkan, а програмният интерфейс за взаимодействие с потребителското пространство е проектиран с UAPI, предоставен от новия драйвер Intel Xe.

Над вече известни проблеми споменават се следните:

  • Съществуващата интеграция на Rust в момента не поддържа изграждане на абстракции като модули, така че абстракциите на Rust са налични само за вградени DRM компоненти.
  • DRM разчита до голяма степен на модела за „подкласиране“ за контролерни обекти и това не се отразява добре на Rust.
  • В момента се внедрява само това, което е необходимо за контролера (плюс малко количество
    очевидни екстри, където по-добрата цялост на API има смисъл).
  • drm::mm в крайна сметка изисква мутекс, вграден в абстракцията, вместо това
    да делегирате това на потребителя с обичайните правила за промяна на Rust.
    Това е така, защото възлите могат да бъдат премахнати по всяко време и тези операции
    трябва да е в синхрон.
  • От страна на Mesa в момента имате драйвера Gallium, който предимно вече е нагоре по веригата (UAPI битовете най-вече липсват) и
    преминава dEQP GLES2/EGL тестовете, като повечето от GLES3.0 преминават
    Разклонения нагоре по веригата в процес на работа. Това е обратно инженерство на драйвер на общността, така че се споменава, че има още много да се направи в този аспект.

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


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.