Maíra Canal de la société Igalia a présenté un projet de réécriture du pilote VGEM (Virtual GEM Provider) en Rust. VGEM comprend environ 400 lignes de code et fournit un backend GEM (Graphics Execution Manager) non lié au matériel, utilisé pour l'accès partagé aux tampons des pilotes de dispositifs 3D logiciels, tels qu'LLVMpipe, afin d'améliorer les performances du rendu logiciel.
VGEM sera le deuxième pilote graphique en Rust fonctionnant au niveau du noyau (le premier était le pilote DRM (Direct Rendering Manager) Asahi pour les GPU Apple AGX, utilisé dans les puces Apple M1/M2). Le développement a nécessité la création de nouveaux liaisons pour faire fonctionner le code Rust avec le matériel de la plateforme, le type XArray et les abstractions liées à l'accès direct à la mémoire, telles que les barrières DMA (DMA fence). À l'étape actuelle du développement, le pilote est presque prêt, il passe la plupart des tests IGT, à l'exception de deux vérifications (vgem_slow et vgem_basic@unload), mais nécessite des améliorations pour le support IOCTL.
Source : opennet.ru
