A equipe de drivers de exibição da Red Hat tem trabalhado recentemente em planos para a Nova, um novo driver de kernel Linux DRM a ser desenvolvido em Rust para suporte gráfico NVIDIA de código aberto.
A Nova é vista como o sucessor/substituto do Nouveau para as gerações mais recentes de GPUs NVIDIA que suportam o Processador de Sistema de GPU (GSP). O desafio é ainda maior, pois está sendo escrito em Rust em um momento em que várias abstrações de kernel ainda estão sendo elaboradas e ainda não foram incorporadas.
A Nova tem como objetivo final ser um driver Linux DRM NVIDIA de código aberto moderno para GPUs Turing e mais recentes (série RTX 2000) onde há suporte para GSP. O driver DRM Nouveau recentemente incorporou suporte opcional para o GSP - ou suporte obrigatório a partir da mais recente série RTX 40 - enquanto a Nova será uma substituição moderna, escrita em Rust, e sem a bagagem do Nouveau que se acumulou ao longo dos anos no suporte a GPUs NVIDIA desde seus primeiros dias.
Este driver baseado em Rust e apenas GSP promete ser mais performático e capaz do que o driver Nouveau no futuro, semelhante ao driver Intel Xe focado no futuro que se livrou de todo o excesso acumulado ao longo dos anos no código do Gerenciador de Renderização Direta i915.
Ao optar pelo Rust, os desenvolvedores da Red Hat envolvidos esperam que ele ofereça melhor segurança de memória e, por sua vez, melhor manutenibilidade e uma barreira menor para novos desenvolvedores se envolverem.
Focar apenas em GPUs capazes de GSP também simplifica o desenvolvimento do driver, com grande parte da inicialização/gerenciamento de hardware sendo deixada para o GSP e seu firmware/microcódigo, em vez de ser programada pelo driver do dispositivo. O driver Nouveau continuará a existir para aqueles com placas gráficas NVIDIA mais antigas.
Embora exista o driver DRM Apple Silicon sendo desenvolvido pela equipe Asahi em Rust, esse também está fora da árvore. O desafio com a falta de um driver DRM Rust upstream ainda - ou outro driver de kernel Rust completo - é a falta de várias abstrações. Para algumas áreas, existem abstrações de kernel Rust, mas ainda não foram incorporadas.
Ao começar a trabalhar nas abstrações necessárias para o driver Nova, Danilo Krummrich da Red Hat publicou uma postagem na lista de discussão intitulada “Nova and staging Rust abstractions” para percorrer as diferentes árvores Git com abstrações Rust para o DRM, abstrações de dispositivo, PCI, etc. O código inicial doNova continua a ser desenvolvido via drm/nova no FreeDesktop.org. Será interessante ver como a Nova se desenvolve ao longo do tempo.
Compartilhe esta postagem com seus colegas e amigos para mantê-los informados sobre as últimas novidades no mundo do Linux!
Até a próxima !!
Nenhum comentário:
Postar um comentário