A AMD abriu o código-fonte para o V-EZ, uma API Vulkan de shell de baixo nível e plataforma cruzada

As APIs da Vulkan são interfaces de software de plataforma cruzada de baixo nível que oferecem maior desempenho de gráficos 3D devido a custos mais baixos em comparação com outras APIs como o OpenGL, especialmente com funções especiais de GPU (a API também é adequada para renderização em 2D). Com a implementação adequada, a Vulkan fornece "do aumento marginal da velocidade polinomial em comparação com outras APIs no mesmo equipamento".

O desenvolvedor do Khronos Group apresentou a API Vulkan na conferência da GDC 2015, e o primeiro lançamento foi em fevereiro de 2016. Inicialmente, a API do Vulkan era chamada "a próxima geração do OpenGL" ou simplesmente glNext, mas o nome foi alterado para Vulkan.

Muitos aguardavam ansiosamente o lançamento dessa tecnologia revolucionária, que acelera bastante os gráficos 3D e reduz a carga no processador, como Direct3D 12, Metal e Mantle. Mas o problema era que a API Vulkan exigia muito mais trabalho do desenvolvedor, enquanto as APIs de nível superior, como o OpenGL e o DirectX 11, simplificavam muitas coisas, como gerenciamento de memória. Para ajudar a trabalhar com o Vulkan, a AMD desenvolveu uma camada de abstração e empacotador V-EZ e agora publicou o código-fonte dessa ferramenta sob a licença MIT gratuita ( repositório GitHub ).

Inicialmente, o V-EZ foi lançado em março de 2018 com fontes fechadas, agora essa restrição foi removida.


API Vulkan

O V-EZ é um nível intermediário (middlware), que assume muitas funções auxiliares durante o desenvolvimento, para que o desenvolvedor não precise conhecer imediatamente e lidar manualmente com todos os meandros do Vulkan, o V-EZ fará muitas coisas sozinho. O shell auxiliar usa a mesma semântica que a API Vulkan, ou seja, pode ser usada como um tipo de ferramenta de treinamento. Começando com o V-EZ, os desenvolvedores podem se acostumar gradualmente a isso - e, eventualmente, passar a usar o Vulkan diretamente. Isso também significa que, em muitos casos, a documentação da Vulkan é aplicável ao V-EZ.

Vantagens do Vulkan em relação às APIs da geração anterior:

  • A API Vulkan é adequada para placas gráficas topo de linha e para equipamentos gráficos em dispositivos móveis.
  • Diferentemente do Direct3D 12, o Vulkan está disponível em muitos sistemas operacionais modernos, não vinculados a nenhum SO ou fator de forma. Desde o início, as APIs da Vulkan funcionam no Android, Linux, Tizen, Windows 7, Windows 8 e Windows 10, há suporte de terceiros para iOS e macOS.
  • Sobrecarga de driver reduzida, carga de CPU reduzida.
  • Reduzindo a carga na CPU através do uso de processamento em lote.
  • Melhor dimensionamento para processadores com vários núcleos.
  • O OpenGL usa a linguagem de alto nível GLSL para escrever shaders, o que força cada driver OpenGL a implementar seu próprio compilador para GLSL, que é executado em tempo de execução para converter os shaders do programa em código de máquina GPU. Em vez disso, os drivers Vulkan devem aceitar shaders já convertidos no formato binário intermediário SPIR-V, semelhante ao formato binário no qual os shaders HLSL são compilados no Direct3D.
  • Graças à compilação preliminar dos shaders, a velocidade de inicialização dos aplicativos é aumentada e, para cada cena, você pode usar um número maior de shaders. Um driver precisa apenas de certa otimização de GPU e geração de código, o que simplifica a manutenção do driver e reduz seu tamanho.
  • Gerenciamento unificado de núcleos de computação e shaders gráficos, eliminando a necessidade de usar uma API de computação separada em combinação com uma API gráfica.



Camada intermediária V-EZ

Embora o criador da API Vulkan seja o Khronos Group, a tecnologia é baseada na Mantle API, que a AMD doou ao Khronos Group. A idéia era criar uma tecnologia mais avançada que não estivesse ligada a um fabricante específico, para que pudesse ser adotada como um padrão do setor geralmente reconhecido, como o OpenGL. Portanto, a AMD agora está ajudando a avançar a API Vulkan e está criando ferramentas de suporte como o V-EZ.

Requisitos de instalação para V-EZ


  • Windows 7, 8.1, 10 de 64 bits
  • Linux de 64 bits (testado no Fedora e Ubuntu)
  • Visual Studio 2015 ou posterior
  • GCC 4.9 ou posterior
  • CMake 3.8 ou posterior
  • LunarG Vulkan SDK 1.1.70

O V-EZ não está vinculado a um fornecedor específico e deve funcionar em equipamentos que não sejam da AMD.

Os criadores do V-EZ esperam que a publicação do código fonte sob uma licença gratuita contribua para a maior popularidade do shell do V-EZ e, consequentemente, de novas interfaces de programação de baixo nível. Por sua vez, isso ajudará os desenvolvedores a adotar novas APIs, o que levará a um melhor desempenho dos jogos e a mais jogos entre plataformas.

Atualmente, o Vulkan é suportado por vários mecanismos de jogos, incluindo Source 2, Serious Engine 4, Unreal Engine 4, Torque 3D, id Tech 3, id Tech 4, id Tech 4, id Tech 6, Xenko, Unity, CryEngine, Intrinsic, Unigine, Abyss Engine , Banshee 3D e Godot.

Source: https://habr.com/ru/post/pt421361/


All Articles