Ils proposent l'implémentation d'un pilote GPU écrit en Rust, pour les Apple AGX G13 et G14

Linux Apple Rouille

Il s'agit d'un pilote assez complet pour les GPU des séries Apple AGX G13 et G14.
Le contrôleur d'aujourd'hui est compatible avec les SoC

La nouvelle a été publiée récemment que une implémentation préliminaire du pilote drm-asahi a été proposée pour les GPU de série Apple AGX G13 et G14 utilisés dans les puces Apple M1 et M2 sur la liste de diffusion des développeurs du noyau Linux.

Le contrôleur est écrit en Rust et aussi, inclut un ensemble de liens universels sur le sous-système DRM (Direct Rendering Manager) qui peut être utilisé pour développer d'autres pilotes graphiques dans Rust.

L'ensemble de correctifs publié jusqu'à maintenant a été proposé pour discussion seulement par les développeurs principaux (RFC), mais peut être accepté dans l'équipe principale une fois l'examen terminé et les lacunes identifiées supprimées.

Ceci est ma première version des abstractions Rust pour DRM sous-système. Inclut les abstractions elles-mêmes, certaines mineures modifications préalables du côté C ainsi que du pilote GPU drm-asahi (pour référence sur la façon dont les abstractions sont utilisées, mais pas nécessairement destinés à atterrir ensemble).

Ces correctifs sont appliqués au sommet de l'arbre dans [1], qui est basé sur 6.3-rc1 avec beaucoup de commits de support abstraction/Rust ajoutés dans au-dessus de. La plupart d'entre eux ne sont pas des prérequis pour les abstractions DRM. eux-mêmes, mais uniquement du conducteur.

Depuis décembre, le contrôleur est inclus dans le paquet avec le noyau pour la distribution Asahi Linux et a été testé par les utilisateurs de ce projet.

Le pilote peut être utilisé sur les distributions Linux pour organiser l'environnement graphique en dAppareils Apple avec SoC M1, M1 Pro, M1 Max, M1 Ultra et M2. Lors du développement du pilote, une tentative a été faite non seulement pour augmenter la sécurité en minimisant les erreurs lors de l'utilisation de la mémoire dans le code exécuté côté CPU, mais également pour se protéger partiellement contre les problèmes qui surviennent lors de l'interaction avec le micrologiciel.

En particulier, le pilote fournit certaines liaisons pour les structures de mémoire partagée dangereux avec des chaînes complexes de pointeurs utilisées dans le micrologiciel pour interagir avec le contrôleur. Le pilote proposé est utilisé conjointement avec le pilote asahi Mesa, qui fournit la prise en charge d'OpenGL dans l'espace utilisateur et réussit les tests de compatibilité OpenGL ES 2. et est presque prêt à prendre en charge OpenGL ES 3.0.

En même temps, le pilote qui fonctionne au niveau du noyau est initialement développé avec la prise en charge future de l'API Vulkan à l'esprit, et l'interface de programmation pour interagir avec l'espace utilisateur est conçue avec l'UAPI fournie par le nouveau pilote Intel Xe à l'esprit.

Sur Problèmes connus les éléments suivants sont mentionnés:

  • L'intégration Rust existante ne prend actuellement pas en charge la création d'abstractions en tant que modules, de sorte que les abstractions Rust ne sont disponibles que pour les composants DRM intégrés.
  • DRM s'appuie fortement sur le modèle de "sous-classement" pour les objets de contrôleur, et cela ne convient pas à Rust.
  • Actuellement, seul ce qui est nécessaire pour le contrôleur est implémenté (plus une petite quantité de
    extras évidents où une meilleure intégrité de l'API a du sens).
  • drm :: mm finit par nécessiter un mutex intégré à l'abstraction, à la place
    pour déléguer cela à l'utilisateur avec les règles de mutabilité habituelles de Rust.
    En effet, les nœuds peuvent être supprimés à tout moment et ces opérations
    il doit être synchronisé.
  • Du côté de Mesa, vous avez actuellement le pilote Gallium qui est pour la plupart déjà en amont (les bits UAPI manquent pour la plupart) et
    passe les tests dEQP GLES2/EGL, la plupart des tests GLES3.0 réussissant
    Branches amont des travaux en cours. Il s'agit d'une ingénierie inverse de pilote communautaire, il est donc mentionné qu'il reste encore beaucoup à faire dans cet aspect.

enfin si tu es intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.