Recentemente, Jason Ekstrand, da Collabora, anunciou o NVK, o novo driver Vulkan aberto para hardware NVIDIA no Mesa.
A Collabora é uma empresa privada global com sede em Cambridge, Reino Unido, com escritórios em Cambridge e Montreal. Ela fornece consultoria de código aberto, treinamento e produtos para empresas.
E agora, Jason Ekstrand, da Collabora, anunciou um novo driver gráfico Vulkan para hardware NVIDIA chamado NVK, que será implementado na pilha de gráficos de código aberto Mesa para que todos possam desfrutar.
NVK, o novo driver Vulkan aberto para hardware NVIDIA no Mesa
Todos nós sabemos que as GPUs NVIDIA não recebem suporte suficiente da comunidade Linux e Open Source, pelo menos não até que a NVIDIA finalmente decidiu abrir seus drivers gráficos.
O driver Nouveau de código aberto não possui novos recursos e suporte de hardware, pelo menos em comparação com os drivers de código aberto disponíveis para GPUs AMD e Intel.
É aí que entra o NVK, escrito quase inteiramente do zero por Jason Ekstrand da Collabora, bem como por Karol Herbst e Dave Airlie da Red Hat, usando os novos cabeçalhos oficiais da NVIDIA.
O NVK pretende ser o novo driver Vulkan de referência para hardware NVIDIA e será lançado com uma próxima versão da pilha de gráficos Mesa.
A apresentação de Jason foi sobre escrever um novo driver Vulkan em 2022 e seu trabalho no NVK com a esperança de se tornar um driver Vulkan de referência moderno no Mesa.
O NVK continua a aproveitar os arquivos de cabeçalho oficiais da NVIDIA de código aberto publicados pela empresa. Com isso, o driver funciona apenas para GPUs Turing e mais recentes no momento, enquanto o suporte pode ser estendido para GPUs mais antigas.
Ainda apresentando dificuldades significativas está no lado do driver do kernel, provavelmente precisando revisar completamente (ou reescrever) o driver do kernel Nouveau DRM/KMS para suportar este driver NVK ou, de outra forma, precisar alimentar o driver do kernel NVIDIA aberto em forma (ou reescrever isso) para obtê-lo em forma amigável upstream.
O driver NVK ainda não foi upstream no próprio Mesa, mas continua sendo trabalhado fora da árvore.
Jason Ekstrand disse que:
“A triste realidade é que, enquanto os novos drivers originais foram escritos por alguns engenheiros incríveis e eram de última geração há uma década, eles ficaram para trás nos últimos anos. Um dos meus objetivos pessoais para o NVK é que ele se torne o novo driver Vulkan de referência no Mesa. Para esse fim, estou construindo o NVK com todas as melhores práticas que desenvolvemos para os drivers Vulkan nos últimos 7,5 anos e tentando manter a base de código limpa e bem organizada.”
O NVK está em desenvolvimento nos últimos dois meses e atualmente vem com um conjunto muito básico de recursos e suporta NVIDIA Turing e arquiteturas posteriores.
O suporte para as arquiteturas de GPU NVIDIA Kepler, Maxwell e Pascal também está chegando, espero que antes de estar pronto para implantação em massa em uma próxima versão do Mesa.
Mas, se você não pode esperar até que o NVK seja lançado, você pode tentar agora mesmo puxando e compilando o branch nvk/main do projeto nouveau/mesa.
Se você experimentar, seus criadores agradecem qualquer contribuição das comunidades Open Source e Linux. Aqueles que desejam saber mais sobre esse driver NVIDIA Vulkan de código aberto NVK atual e em andamento podem ver os slides de Jason (PDF) de sua palestra XDC 2022, bem como no blog Collabora.