Для рецензування запропонований Linux-драйвер для GPU Apple AGX, написаний на Rust

У списку розсилки розробників ядра Linux запропоновано попередню реалізацію драйвера drm-asahi для GPU Apple AGX серій G13 та G14, що використовуються в чіпах Apple M1 та M2. Драйвер написаний мовою Rust і додатково включає набір універсальних обв'язок над підсистемою DRM (Direct Rendering Manager), які можна використовувати для розробки інших графічних драйверів Rust. Опублікований набір патчів поки що запропонований тільки для обговорення розробниками ядра (RFC), але може бути прийнятий до основного складу після завершення рецензування та усунення виявлених недоліків.

З грудня драйвер входить до складу пакета з ядром для дистрибутива Asahi Linux і протестований користувачами цього проекту. Драйвер може бути використаний у дистрибутивах Linux для організації роботи графічного оточення на пристроях Apple із SoC M1, M1 Pro, M1 Max, M1 Ultra та M2. При розробці драйвера зроблено спробу не тільки підвищення безпеки за рахунок мінімізації помилок при роботі з пам'яттю в коді, що виконується на стороні CPU, але й забезпечений частковий захист від проблем, що виникають при взаємодії з прошивкою. Зокрема, драйвер надає певні обв'язки для небезпечних структур пам'яті, що розділяється, зі складними ланцюжками покажчиків, що застосовуються в прошивці для взаємодії з драйвером.

Запропонований драйвер використовується в поєднанні з Mesa-драйвером asahi, що забезпечує підтримку OpenGL в просторі користувача і успішно проходить тести сумісності з OpenGL ES 2 і готовий для підтримки OpenGL ES 3.0. При цьому драйвер, що працює на рівні ядра, спочатку розвивається з урахуванням майбутньої підтримки API Vulkan, а програмний інтерфейс для взаємодії з простором користувача спроектований з огляду на UAPI, що надається новим драйвером Intel Xe.

Джерело: opennet.ru

Додати коментар або відгук