NVK, um driver aberto para placas gráficas NVIDIA, suporta Vulkan 1.0

O consórcio Khronos, que desenvolve padrões gráficos, reconheceu a total compatibilidade do driver NVK aberto para placas de vídeo NVIDIA com a especificação Vulkan 1.0. O driver passou com sucesso em todos os testes do CTS (Kronos Conformance Test Suite) e está incluído na lista de drivers certificados. A certificação foi concluída para GPUs NVIDIA baseadas na microarquitetura Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). O teste foi realizado em ambiente com kernel Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 e GNOME Shell 44.4. A obtenção do certificado permite declarar oficialmente a compatibilidade com os padrões gráficos e usar as marcas registradas Khronos associadas.

O driver NVK foi construído do zero por uma equipe que inclui Karol Herbst (desenvolvedor Nouveau na Red Hat), David Airlie (mantenedor de DRM na Red Hat) e Jason Ekstrand (desenvolvedor ativo de Mesa na Collabora). Ao criar o driver, os desenvolvedores usaram arquivos de cabeçalho oficiais e módulos abertos do kernel publicados pela NVIDIA. O código NVK usou alguns componentes básicos do driver Nouveau OpenGL em alguns lugares, mas devido às diferenças nos nomes nos arquivos de cabeçalho NVIDIA e nos nomes de engenharia reversa no Nouveau, o empréstimo direto do código é difícil e na maior parte muitas coisas tiveram que ser repensadas e implementadas do zero.

O desenvolvimento foi realizado com o objetivo de criar um novo driver Vulkan de referência para Mesa, cujo código poderia ser emprestado na criação de outros drivers. Para isso, ao trabalhar no driver NVK, eles tentaram levar em consideração toda a experiência existente no desenvolvimento de drivers Vulkan, manter a base de código em ótima forma e minimizar a transferência de código de outros drivers Vulkan, fazendo o que deveria ser para trabalho ideal e de alta qualidade, e não copiar cegamente como é feito em outros drivers. O driver já está incluído no Mesa e as alterações necessárias na API do driver Nouveau DRM estão incluídas no kernel Linux 6.6.

Entre as mudanças no anúncio, Mesa também destaca a adoção de um novo compilador backend para NVK, escrito na linguagem Rust e resolvendo problemas no antigo compilador que interferiam na passagem dos textos do Kronos, além de eliminar algumas limitações fundamentais do arquitetura que não poderia ser corrigida sem um retrabalho completo do antigo compilador. Entre os planos para o futuro, são mencionadas a adição de suporte a GPU baseado na microarquitetura Maxwell e a implementação de suporte completo à API Vulkan 1.3 no novo backend.

Fonte: opennet.ru

Adicionar um comentário