close

Vulcano

Ir para a navegação Ir para a pesquisa
Vulcano
Logo do programa Vulkan
Captura de tela do programa Vulkan
Tipo de API
Autor Grupo Khronos
Desenvolvedor Grupo Khronos
Escrito em C
Sistema operacional
Primeira edição 16 de fevereiro de 2016
Plataforma de hardware multiplataforma
última versão 1.3.233 (3 de novembro de 2022)
Estado Real
Licença Licença Apache
Local na rede Internet www.vulkan.org
 Arquivos de mídia no Wikimedia Commons

Vulkan ( rus. Vulkan ) é uma API multiplataforma para gráficos 2D e 3D , apresentada pela primeira vez pelo Khronos Group na conferência GDC 2015 [11] [12] .

A API Vulkan era originalmente conhecida como "a próxima geração do OpenGL " ou simplesmente "glNext", mas após o anúncio, a empresa abandonou esses nomes em favor do nome Vulkan [13] . Assim como o OpenGL , o Vulkan permite renderização em tempo real de vários aplicativos gráficos 3D , como jogos ou iBooks em todas as plataformas com alto desempenho, e também oferece maior desempenho e menor uso de CPU , semelhante ao Direct3D 12 , Metal [en] e Mantle . Vulkan é baseado em tecnologias AMD em Mantle [14] [15] [16] [17] [18] .

Visão geral

O objetivo da Vulkan era superar outras APIs , incluindo seu antecessor OpenGL , em termos de menor sobrecarga, controle mais direto sobre a GPU e menos sobrecarga da CPU . Vulkan tem supostos benefícios:

  • OpenGL usa uma linguagem de alto nível para escrever shaders GLSL . Isso força cada fornecedor de driver OpenGL a implementar seu próprio compilador para GLSL, que é executado em tempo de execução do aplicativo gráfico, compilando programas sombreadores no código executável da plataforma de destino . Vulkan, em vez disso, oferece um formato binário intermediário chamado SPIR-V [en] , que é semelhante ao formato binário que os sombreadores HLSL na plataforma Direct3D compilam para . Isso elimina a carga sobre os fornecedores de drivers , permitindo que os shaders sejam compilados em tempo de design. Também permite que os desenvolvedores de aplicativos escrevam shaders em linguagens diferentes do GLSL.
  • A API multiplataforma é compatível com dispositivos móveis e placas gráficas de última geração .
  • Suporte aprimorado para sistemas modernos usando multithreading .
  • Reduzindo a carga na CPU em situações em que ela está com desempenho insatisfatório, o que permite obter maior taxa de transferência para computação e visualização de GPU.
  • Uma vantagem séria do Vulkan sobre o Direct3D 12 foi a capacidade de executar jogos 3D modernos não apenas no ambiente Windows 10 , mas também em computadores com Windows 7 e Windows 8.1 [19] [20] .

Para simplificar o desenvolvimento de aplicativos no Vulkan, em 2018 a AMD lançou um shell auxiliar V-EZ , que assume muitas funções auxiliares durante o desenvolvimento, para que o desenvolvedor não precise lidar com todos os meandros da API do Vulkan [21] [ 22] .

História

No verão de 2014 Khronos Group iniciou um projeto para criar a próxima geração de API gráfica . Em 2014, o projeto foi anunciado publicamente no SIGGRAPH com um convite à participação.

De acordo com o Escritório de Patentes e Marcas Registradas dos Estados Unidos , a marca "Vulkan" foi registrada em 19 de fevereiro de 2015 [23] .

Vulkan foi oficialmente nomeado e anunciado na Game Developers Conference 2015, embora especulações e rumores em torno da nova API existissem com antecedência. Um dos nomes foi "glNext" [24] .

Em 3 de março de 2015, a Valve anunciou o Source 2 , um motor de jogo com suporte para a API de gráficos Vulkan [25] [26] .

No início de 2015, a LunarG (financiada pela Valve ) desenvolveu e introduziu um driver Linux para Intel , que permitiu que o Vulkan fosse compatível com o sistema gráfico integrado da série HD 4000, que, apesar do driver Mesa aberto , não é totalmente compatível com OpenGL 4.0 [ 27] [28] . Há também a possibilidade [29] de suporte a Ivy Bridge , pois suporta Direct3D 11 .

Em 10 de agosto de 2015, o Google anunciou uma versão futura do Android com suporte a Vulkan [30] .

Em 18 de dezembro de 2015, o Khronos Group anunciou que a especificação da versão Vulkan 1.0 está quase completa e será lançada quando drivers compatíveis estiverem disponíveis .

Em 16 de fevereiro de 2016, a especificação pública Vulkan 1.0 [31] e os drivers experimentais para placas gráficas AMD e Nvidia foram lançados .

Em 26 de fevereiro de 2018, Khronos, como parte da especificação da Vulkan® Portability Initiative, lançou a versão pública do Vulkan 1.0 SDK para plataformas macOS e iOS [32] .

Em 7 de março de 2018, a especificação pública do Vulkan 1.1 [33] foi lançada .

Em 15 de janeiro de 2020, a especificação pública do Vulkan 1.2 [34] foi lançada .

Em 15 de janeiro de 2020, o Khronos Group anunciou que o compilador HLSL da Microsoft agora suporta tradução para SPIR-V [en] . HLSL é agora oficialmente a linguagem de programação de shader para Vulkan , junto com GLSL [35] .

O suporte ao rastreamento de raios foi adicionado em 17 de março de 2020 [36] .

Em 22 de janeiro de 2022, a especificação pública do Vulkan 1.3 [37] foi lançada .

1º de setembro de 2022 Lançada a extensão VK_EXT_mesh_shader [38] para suportar shaders de malha [39] .

Usando Vulkan

Jogos

  • The Talos Principle  é o primeiro jogo da empresa croata Croteam que usa essa tecnologia na prática. [40]
  • Dota 2  - O suporte experimental para Vulkan foi adicionado em 23 de março de 2016 e lançado em maio de 2016. [41]
  • Doom  - Em 11 de julho de 2016, a Id Software lançou um patch para o jogo Doom (2016) , no qual a renderização dos gráficos e o cálculo das interações físicas foram refeitos de OpenGL para Vulkan. [42] [43] [44]
  • Doom Eternal - Nativamente usa a API Vulkan.
  • Rage 2 - Usa nativamente a API Vulkan.
  • vkQuake  - porta Vulkan de Quake lançado em julho de 2016. [45] [46]
    • O relançamento oficial do Quake, lançado em 19 de agosto de 2021, usa o Vulkan por padrão.
  • Need for Speed: No Limits , Vainglory e Heroes of Incredible Tales  - Em junho de 2016, a Samsung anunciou suporte para portar jogos de OpenGL ES para Vulkan para o smartphone Samsung Galaxy S7 . [47]
  • Mad Max (jogo, 2015)  - Em 30 de março de 2017, uma versão Linux do jogo usando Vulkan entrou em teste beta.
  • Olympus Rising  - Suporte adicionado em 20 de agosto de 2016.
  • Rust  - Suporte adicionado em 13 de janeiro de 2017.
  • Destinos  - Suporte adicionado em 22 de fevereiro de 2017.
  • Wolfenstein II: The New Colossus  - Suporte adicionado em 27 de outubro de 2017. [48]
  • Escape from Tarkov  - Suporte futuro anunciado. [49]
  • X4 Foundations - Suporte a Vulkan anunciado. [cinquenta]
  • Star Citizen  - suporte Vulkan anunciado. [51]
  • No Man's Sky  - Suporte adicionado no patch 1.77.
  • World War Z  - Nativamente usa a API Vulkan.
  • Red Dead Redemption 2 - Nativamente usa a API Vulkan. O jogo suporta duas APIs - Vulkan e DirectX 12, mas de acordo com o feedback e comentários dos jogadores, o desempenho é melhor ao usar o Vulkan [52] .
  • Detroit: Become Human - usa nativamente a API Vulkan .
  • Tom Clancy's Rainbow Six Siege e Tom Clancy's Ghost Recon Breakpoint - O suporte experimental para a API Vulkan foi adicionado em 28 de janeiro de 2020
  • X-Plane 11 - Em 3 de abril de 2020, o estúdio desenvolvedor por trás do jogo de simulação de voo lançou a atualização 11.50, que inclui a API Vulkan.
  • Path of Exile - A atualização 3.10.2 foi lançada em 28 de maio de 2020 para dar suporte à versão beta do renderizador baseado em Vulkan. [53]
  • Baldur's Gate III - Nativamente usa a API Vulkan. O jogo suporta duas APIs - Vulkan e DirectX 11.
  • War Thunder - Suporte Vulkan foi adicionado ao OpenGL, atualmente Vulkan é o padrão em pelo menos a versão Linux do cliente.
  • PUBG: New State - Mobile Game com Vulkan GUI e suporte OpenGL ES no lançamento (11/04/2021)
  • Counter-Strike: Global Offensive - Adicionado suporte em 11 de dezembro de 2021. DXVK (DirectX Vulkan)
  • Brawl Stars - jogo multiplataforma móvel. O suporte foi adicionado em 16 de dezembro de 2021. O jogo anteriormente suportava OpenGL.

Motores de jogo

  • Fonte 2  - Em março de 2015, a Valve Corporation anunciou a Fonte 2, que recebeu suporte da Vulkan.
  • Serious Engine 4  - Em fevereiro de 2016, a Croteam anunciou suporte para Vulkan no Serious Engine.
  • Unreal Engine 4  - Em fevereiro de 2016, a Epic Games anunciou o Unreal Engine 4 com suporte a Vulkan.
  • Unreal Engine 5 - Como o motor é uma continuação do Unreal Engine 4, ele já tinha o Vulkan desde o início.
  • Torque 3D [pt]  - Em abril de 2016, os desenvolvedores anunciaram que adicionaram suporte ao Vulkan.
  • Quake Engine  - O suporte a Vulkan foi adicionado em junho de 2016.
  • id Tech 3  - O suporte Vulkan foi adicionado em maio de 2017.
  • id Tech 4  - O suporte Vulkan foi adicionado em agosto de 2017.
  • id Tech 6  - Em maio de 2016, a id Software anunciou que o Doom desenvolvido pela id Tech 6 suportará o Vulkan.
  • id Tech 7  - Em junho de 2018, a id Software anunciou o mecanismo id Tech 7 que roda exclusivamente no Vulkan.
  • Xenko  - Em julho de 2016, foi adicionado suporte para Vulkan.
  • Unity  - Suporte para Vulkan apareceu na versão 5.6.
  • CryEngine  - O suporte Vulkan apareceu na versão 5.4.
  • Intrinsic é um mecanismo de jogo multiplataforma gratuito e de código aberto que suporta Vulkan.
  • Unigine  - Em abril de 2017, a Unigine Corp anunciou o suporte Vulkan para seu mecanismo Unigine.
  • Abyss Engine - Em maio de 2017, a Deep Silver lançou o Galaxy on Fire 3 Manticore no Android com suporte ao Vulkan.
  • O Banshee 3D é um mecanismo de jogo multiplataforma gratuito e de código aberto que suporta Vulkan.
  • Godot Engine  - O suporte foi adicionado na versão 4.0. [54]
  • Turbo Engine (Leadwerks 5.0) é um motor pago da Leadwerks Technologies.

Bibliotecas de wrappers

  • Anvil - Reduz o tempo necessário para escrever um aplicativo Vulkan funcional do zero. Parte do projeto GPUOpen [pt] [55] .
  • GLOVE - "OpenGL ES Over Vulkan", atua como uma camada intermediária entre o OpenGL ES e o Vulkan [56] .
  • MoltenVK - permite que aplicativos Vulkan sejam executados em cima do Metal [en] nos sistemas operacionais macOS e iOS da Apple [57] .
  • V-EZ - "Modo Fácil" para Vulkan, projetado para simplificar a complexidade do uso do Vulkan. Parte do projeto GPUOpen [58] .
  • Vulkan-Hpp é um wrapper para a linguagem de programação C++ [59] .
  • Vulkano é um wrapper para a linguagem de programação Rust [60] .
  • PasVulkan é um wrapper para a linguagem de programação Object Pascal [61] .
  • NVK - API Vulkan para Node.js , permite escrever aplicativos nas linguagens de programação JavaScript e TypeScript [62] .
  • DXVK - um wrapper para usar jogos e aplicativos DirectX 9-11 no Vulkan sem precisar reescrevê-los
  • nGlide é um wrapper para usar jogos e aplicativos Glide no Vulkan sem precisar reescrevê-los.
  • D9VK é um wrapper para usar jogos e aplicativos DirectX 9 no Vulkan sem ter que reescrevê-los.

Compatibilidade

A especificação inicial afirma que o Vulkan será executado em hardware que atualmente suporta OpenGL ES 3.1 ou OpenGL 4.xe superior [63] . Vulkan exigirá novos drivers gráficos como suporte , mas isso não significa necessariamente que todos os dispositivos existentes que suportam OpenGL ES 3.1 ou OpenGL 4.x terão drivers habilitados para Vulkan disponíveis.

Veja também

Notas

  1. Vulkan no FreeBSD . Informações da GPU Vulkan (1 de junho de 2021). Recuperado em 22 de maio de 2022. Arquivado a partir do original em 14 de março de 2022.
  2. Vulkan no QNX . www.khronos.org (14 de julho de 2021). Recuperado em 14 de julho de 2021. Arquivado do original em 14 de julho de 2021.
  3. Nintendo Switch listado como Vulkan e OpenGL Conformant - My Nintendo News . Minha Nintendo Notícias . Excite Global Media (19 de dezembro de 2016). Recuperado em 14 de julho de 2021. Arquivado do original em 14 de julho de 2021.
  4. Palumbo, Alessio Nintendo Switch oficialmente suporta Vulkan, OpenGL 4.5 e OpenGL ES . Tecnologia WCCF (19 de dezembro de 2016). Recuperado em 14 de julho de 2021. Arquivado do original em 14 de julho de 2021.
  5. Produtos em conformidade . cronos.org . O Grupo Khronos (28 de abril de 2018). Recuperado em 28 de fevereiro de 2018. Arquivado a partir do original em 28 de janeiro de 2017.
  6. Vulkan no Raspberry Pi . www.raspberrypi.org (14 de julho de 2021). Recuperado em 14 de julho de 2021. Arquivado do original em 20 de julho de 2021.
  7. Vulkan agora oficial, com versão 1.0 da API e driver AMD [Atualizado ] . Ars Technica . Conde Nast (16 de fevereiro de 2016). Recuperado em 18 de fevereiro de 2016. Arquivado do original em 14 de julho de 2021.
  8. Valich, Theo Mantle Cycle está completo quando Khronos lança Vulkan 1.0 . VR World (17 de fevereiro de 2016). Recuperado em 19 de fevereiro de 2016. Arquivado a partir do original em 11 de maio de 2022.
  9. GitHub - KhronosGroup/MoltenVK: MoltenVK é uma implementação da API de computação e gráficos Vulkan de alto desempenho e padrão do setor, que é executada na estrutura gráfica Metal da Apple, trazendo o Vulkan para iOS e macOS. . Recuperado em 12 de setembro de 2019. Arquivado a partir do original em 19 de julho de 2021.
  10. O VxWorks oferece suporte para muitas bibliotecas gráficas padrão, como ... e Vulkan . WinDriver . Recuperado em 8 de novembro de 2021. Arquivado a partir do original em 8 de novembro de 2021.
  11. Vulkan: Gráficos e computação Belong Together (PDF). Khronos.org (março de 2015). Recuperado em 5 de março de 2015. Arquivado a partir do original em 18 de dezembro de 2016.
  12. Vulkan - Gráficos e computação estão juntos . Khronos.org. Recuperado em 5 de março de 2015. Arquivado a partir do original em 9 de maio de 2021.
  13. glNext revelado como API de gráficos Vulkan . Recuperado em 27 de março de 2015. Arquivado a partir do original em 14 de outubro de 2016.
  14. Mantle é um Vulkan: API de gráficos mortos da AMD renasce das cinzas no sucessor do OpenGL | PCworld . Recuperado em 27 de março de 2015. Arquivado a partir do original em 7 de novembro de 2016.
  15. AMD Gaming: Um dos Futuros da Mantle: Vulkan | Blogs da AMD (link indisponível) . community.amd.com. Data de acesso: 5 de março de 2015. Arquivado a partir do original em 6 de março de 2015. 
  16. Ainda não está morto: o Mantle da AMD potencializa a nova API Vulkan, esforços de VR . extrema tecnologia. Recuperado em 5 de março de 2015. Arquivado a partir do original em 22 de abril de 2016.
  17. O manto da AMD continua vivo no Vulkan - lança as bases para o próximo OpenGL . Wccftech.com (20 de junho de 2014). Recuperado em 5 de março de 2015. Arquivado a partir do original em 19 de agosto de 2020.
  18. Kirsch, Nathan O AMD Mantle está morto como o conhecemos? API Vulkan usa a tecnologia Mantle para OpenGL . revisões legítimas. Recuperado em 5 de março de 2015. Arquivado a partir do original em 26 de junho de 2015.
  19. API Vulkan™ | AMD . Recuperado em 24 de novembro de 2019. Arquivado do original em 14 de julho de 2019.
  20. A API Vulkan suporta oficialmente multi-GPU no Windows 10, Windows 7, Windows 8.1 e Linux . Playground.ru. Recuperado: 24 de novembro de 2019.
  21. AMD V-EZ de código aberto, um wrapper para a API Vulkan de baixo nível e multiplataforma . Recuperado em 28 de agosto de 2018. Arquivado do original em 28 de agosto de 2018.
  22. GitHub - GPUOpen-LibrariesAndSDKs/V-EZ . Recuperado em 28 de agosto de 2018. Arquivado do original em 29 de agosto de 2018.
  23. Status de Marca Registrada e Recuperação de Documentos . tsdr.uspto.gov. Recuperado em 9 de novembro de 2015. Arquivado a partir do original em 11 de maio de 2013.
  24. glNext revelado como API de gráficos Vulkan . www.develop-online.net. Recuperado em 9 de novembro de 2015. Arquivado a partir do original em 14 de outubro de 2016.
  25. Valve anuncia motor Source 2, gratuito para desenvolvedores . Polígono. Recuperado em 9 de novembro de 2015. Arquivado a partir do original em 5 de março de 2015.
  26. GDC 2015: Valve anuncia Source 2 Engine - IGN . IGN. Recuperado em 9 de novembro de 2015. Arquivado a partir do original em 4 de março de 2015.
  27. Valve desenvolveu um driver de GPU Intel Linux Vulkan - Phoronix . www.phoronix.com. Data de acesso: 9 de novembro de 2015. Arquivado a partir do original em 24 de setembro de 2015.
  28. Aprendendo mais sobre o driver Intel Vulkan, planos Linux Vulkan - Phoronix . www.phoronix.com. Data de acesso: 9 de novembro de 2015. Arquivado a partir do original em 24 de setembro de 2015.
  29. Evan Odabashian no Twitter . Twitter. Recuperado em 9 de novembro de 2015. Arquivado a partir do original em 19 de agosto de 2020.
  30. Reto Méier. Renderização de baixo custo com Vulkan | Blog de desenvolvedores Android . Renderização de baixo custo com Vulkan | Blog de desenvolvedores Android (10 de agosto de 2015). Recuperado em 9 de novembro de 2015. Arquivado do original em 8 de março de 2016.
  31. Registro Khronos Vulkan . www.khronos.org. Recuperado em 9 de março de 2018. Arquivado a partir do original em 10 de março de 2018.
  32. Aplicativos Vulkan habilitados nas plataformas da Apple . www.khronos.org. Data de acesso: 28 de fevereiro de 2018. Arquivado a partir do original em 28 de fevereiro de 2018.
  33. Grupo Khronos lança Vulkan 1.1 . www.khronos.org. Recuperado em 9 de março de 2018. Arquivado a partir do original em 14 de abril de 2022.
  34. Grupo Khronos lança Vulkan 1.2 . www.khronos.org. Recuperado em 15 de janeiro de 2020. Arquivado a partir do original em 11 de maio de 2022.
  35. HLSL como uma linguagem de sombreamento Vulkan de primeira classe . www.khronos.org. Recuperado em 15 de janeiro de 2020. Arquivado a partir do original em 15 de janeiro de 2020.
  36. Khronos Group lança Vulkan Ray Tracing . www.khronos.org. Recuperado em 17 de março de 2020. Arquivado a partir do original em 17 de março de 2020.
  37. Khronos fortalece o ecossistema Vulkan com lançamento do Vulkan 1.3, roteiro público e perfis . www.khronos.org. Recuperado em 25 de janeiro de 2022. Arquivado do original em 25 de janeiro de 2022.
  38. VK_EXT_mesh_shader .
  39. Sombreamento de malha para Vulkan .
  40. Quick Look: Vulkan Performance on The Talos Principle , Anandtech (17 de fevereiro de 2016). Arquivado do original em 15 de maio de 2022. Recuperado em 19 de fevereiro de 2016.
  41. Atualização do Dota 2 - 23 de maio de 2016 . store.steampowered . com . Válvula. Recuperado em 24 de maio de 2016. Arquivado do original em 8 de novembro de 2020.
  42. Vulkan Support Now Live - FAQ  (  11 de julho de 2016). Arquivado do original em 17 de junho de 2017. Recuperado em 1 de abril de 2017.
  43. DOOM se tornou o primeiro jogo de grande sucesso a suportar a API Vulkan  (russo) , OSZone  (11 de julho de 2016). Arquivado do original em 14 de julho de 2016. Recuperado em 11 de julho de 2016.
  44. DOOM - Suporte Vulkan agora disponível . Bethesda.net . Recuperado em 11 de julho de 2016. Arquivado do original em 6 de agosto de 2019.
  45. Papadopoulos, John Aqui está sua primeira olhada no primeiro Quake sendo recriado no Unreal Engine 4 (projeto de fã) . Dark Side of Gaming (21 de julho de 2016). Recuperado em 26 de agosto de 2016. Arquivado a partir do original em 12 de abril de 2022.
  46. Larabel, Michael Quake 1 portado para rodar no Vulkan . Foronix . Phoronix Media (25 de julho de 2016). Recuperado em 26 de agosto de 2016. Arquivado a partir do original em 11 de maio de 2022.
  47. Veja como a API Vulkan e o Galaxy S7 criam experiências de jogo mais imersivas  , 28-06-2016. Arquivado do original em 24 de fevereiro de 2017. Recuperado em 1 de abril de 2017.
  48. Twitter de Tiago Sousa 06/12/2017 . Recuperado em 19 de junho de 2017. Arquivado a partir do original em 30 de maio de 2019.
  49. Fórum: Suporte à API Vulkan? . Recuperado em 19 de junho de 2017. Arquivado do original em 22 de julho de 2017.
  50. X4 Foundations: neue 3D-Engine auf Basis von Vulkan wegen VR  (alemão) , PC Games Hardware . Arquivado do original em 14 de novembro de 2017. Recuperado em 14 de novembro de 2017.
  51. forums.robertsspaceindustries.com (downlink) . Arquivado do original em 1º de maio de 2017. 
  52. Benchmarks de placas de vídeo de Red Dead Redemption 2 . Overclockers.ua. Recuperado em 24 de novembro de 2019. Arquivado do original em 19 de dezembro de 2019.
  53. Atualização 3.10.2 com uma versão beta do renderizador baseado em Vulkan  (russo) , Path of Exile  (28 de maio de 2020). Recuperado em 28 de maio de 2020.
  54. Motor Godot. Godot Engine - Saiu o Godot 3.1, melhorando a usabilidade e recursos . godoengine.org. Recuperado em 17 de março de 2019. Arquivado do original em 18 de março de 2019.
  55. Projeto Anvil no GitHub
  56. Projeto GLOVE no GitHub
  57. Projeto MoltenVK no GitHub
  58. Projeto V-EZ no GitHub
  59. KhronosGroup/Vulkan-Hpp . — 2020-12-07. Arquivado em 15 de dezembro de 2020.
  60. Projeto Vulkano no GitHub
  61. Projeto PasVulkan no GitHub
  62. Projeto NVK no GitHub
  63. Visão geral de Vulcano . O Grupo Khronos. Recuperado em 5 de julho de 2016. Arquivado do original em 8 de dezembro de 2015.

Literatura

  • Vendedores G. Vulkan. Guia do desenvolvedor = Vulkan. guia de programação. - DMK Press , 2017. - 394 p. - ISBN 978-5-97060-486-1 .