Apresentado o NVK, um driver Vulkan aberto para placas de vídeo NVIDIA

A Collabora apresentou o NVK, um novo driver de código aberto para Mesa que implementa a API gráfica Vulkan para placas de vídeo NVIDIA. O driver foi escrito do zero usando arquivos de cabeçalho oficiais e módulos de kernel de código aberto publicados pela NVIDIA. O código do driver é de código aberto sob a licença do MIT. Atualmente, o driver suporta apenas GPUs baseadas nas microarquiteturas Turing e Ampere, lançadas desde setembro de 2018.

O projeto está sendo desenvolvido por uma equipe que inclui Karol Herbst, desenvolvedor Nouveau da Red Hat, David Airlie, mantenedor de DRM da Red Hat, e Jason Ekstrand, desenvolvedor Mesa ativo na Collabora. Ao desenvolver um novo driver, os componentes básicos do driver Nouveau OpenGL são usados ​​​​em alguns lugares, mas devido às diferenças nos nomes nos arquivos de cabeçalho NVIDIA e nos nomes no Nouveau, obtidos com base na engenharia reversa, empréstimo direto de o código é difícil e na maioria das vezes foi necessário repensar muitas coisas e implementá-las com zero.

O desenvolvimento também está sendo realizado com o objetivo de criar um novo driver Vulkan de referência para Mesa, cujo código pode ser emprestado na criação de outros drivers. Para fazer isso, ao trabalhar no driver, a NVK tentou levar em consideração toda a experiência existente no desenvolvimento de drivers Vulkan, manter a base de código na forma ideal e minimizar a transferência de código de outros drivers Vulkan, fazendo o que deveria para obter o ideal e trabalho de alta qualidade, e não copiar cegamente como foi feito em outros drivers.

O driver NVK está em desenvolvimento há apenas alguns meses, portanto sua funcionalidade é limitada. O driver passa com sucesso em 98% dos testes ao executar 10% dos testes do Vulkan CTS (Compatibility Test Suite). Em geral, a prontidão do driver é estimada em 20-25% da funcionalidade dos drivers ANV e RADV. Em termos de suporte de hardware, o driver está atualmente limitado a placas baseadas nas microarquiteturas Turing e Ampere. Patches estão sendo trabalhados para suportar GPUs Kepler, Maxwell e Pascal, mas ainda não estão prontos.

No longo prazo, espera-se que o driver NVK para placas gráficas NVIDIA atinja níveis de qualidade e funcionalidade semelhantes aos do driver RADV para placas AMD. Assim que o driver NVK estiver pronto, as bibliotecas comuns criadas durante seu desenvolvimento poderão ser usadas para melhorar o driver Nouveau OpenGL para placas de vídeo NVIDIA. A possibilidade de usar o projeto Zink para implementar um driver OpenGL completo para placas de vídeo NVIDIA, funcionando por meio de chamadas de transmissão para a API Vulkan, também está sendo considerada.

Fonte: opennet.ru

Adicionar um comentário