Maíra Canal da empresa Igalia apresentou um projeto para reescrever o driver VGEM (Virtual GEM Provider) na linguagem Rust. O VGEM contém cerca de 400 linhas de código e fornece um backend GEM (Graphics Execution Manager) independente de hardware, usado para acesso compartilhado aos buffers de drivers de dispositivos 3D baseados em software, como LLVMpipe, com o objetivo de aumentar o desempenho da rasterização em software.
O VGEM se tornará o segundo driver gráfico em Rust a operar em nível de kernel (o primeiro foi o driver DRM (Direct Rendering Manager) Asahi para GPUs Apple AGX, utilizado nos chips Apple M1/M2). Durante o desenvolvimento, foi necessário criar novos bindings para que o código em Rust trabalhasse com o dispositivo de plataforma, tipo XArray e abstrações relacionadas ao acesso direto à memória, como barreiras DMA (DMA fence). Neste estágio de desenvolvimento, o driver está quase pronto, passando na maioria dos testes IGT, exceto por duas verificações (vgem_slow e vgem_basic@unload), mas requer melhorias na implementação de suporte IOCTL.
Fonte: opennet.ru
