Maíra Canal de la empresa Igalia presentó un proyecto para reescribir el controlador VGEM (Proveedor de GEM Virtual) en el lenguaje Rust. VGEM consta de aproximadamente 400 líneas de código y proporciona un backend GEM (Gestor de Ejecución Gráfica) no atado al hardware, utilizado para el acceso compartido a los buffers de controladores de dispositivos 3D por software, como LLVMpipe, con el fin de mejorar el rendimiento de la rasterización por software.
VGEM será el segundo controlador gráfico en Rust que opera a nivel de núcleo (el primero fue el controlador DRM (Administrador de Renderizado Directo) Asahi para la GPU Apple AGX, utilizada en los chips Apple M1/M2). Durante su desarrollo, fue necesario crear nuevos enlaces para trabajar desde el código en Rust con el dispositivo de la plataforma, el tipo XArray y las abstracciones relacionadas con el acceso directo a la memoria, como los barriers DMA (barreras DMA). En la etapa actual de desarrollo, el controlador está casi listo, pasando la mayoría de las pruebas de IGT, excepto por dos verificaciones (vgem_slow y vgem_basic@unload), pero requiere ajustes en el soporte de IOCTL.
Fuente: opennet.ru
