close

Vulkan (API)

Ir para a navegação Ir para a pesquisa
Software Vulkan
Logotipo
Captura de tela de exemplo
GêneroAPI  (não  listada )
DesenvolvedorGrupo Khronos
Data da primeira versão16 de fevereiro de 2016 [1]
Última versão1.3.204 (25 de janeiro de 2022)
Sistema operacionalMulti plataforma
LinguagemC++
C
LicençaApache 2.0
( licença gratuita )
Local na rede Internetwww.vulkan.org

Vulkan é uma interface de aplicativo programático (API) 2D e 3D multiplataforma de baixo nível , anunciada pela primeira vez na GDC 2015 pelo Khronos Group . Foi inicialmente introduzido como "Next Generation OpenGL " de Khronos ou simplesmente "glNext", mas o uso desses nomes foi suspenso assim que o nome de Vulkan foi anunciado. Assim como o OpenGL, os objetivos do Vulkan são alto desempenho para aplicativos gráficos 3D em tempo real, como jogos e mídia interativa em todas as plataformas; ele também oferece maior desempenho e menos sobrecarga de CPU do que Direct3D 12 e Mantle . Diz-se que o Vulkan é "derivado" e "construído sobre" os componentes Mantle da AMD .

O Khronos Group anunciou a intenção de fundir Vulkan e OpenCL em uma única biblioteca, o que permitiria gerenciar a parte gráfica e a parte computacional juntas, reduzindo bastante a complexidade.

Introdução

Vulkan visa fornecer uma variedade de vantagens sobre outras APIs, bem como seu predecessor OpenGL. Vulkan oferece custos mais baixos, controle mais direto do hardware e GPU e menor uso da CPU, levando aos seguintes benefícios:

  • OpenGL usa a linguagem de alto nível GLSL para escrita de shader (análoga ao HLSL do DirectX ) que força cada driver OpenGL a executar seu próprio compilador para GLSL que realiza a tradução do programa shader em tempo de execução. Vulkan fornece um intermediário binário chamado SPIR-V (Representação Intermediária Portátil Padrão). Isso reduz a carga dos fornecedores de drivers, permite a pré-compilação de shaders, permite que os desenvolvedores de aplicativos escrevam shaders em linguagens diferentes do GLSL.
  • APIs multiplataforma suportadas em dispositivos móveis e placas gráficas de última geração.
  • Agnóstico de SO para melhorar a portabilidade de aplicativos criados usando a API.
  • Suporte aprimorado para sistemas modernos que usam multithreading.
  • Carga de CPU reduzida em situações em que a CPU é o gargalo, permitindo maior taxa de transferência para cálculos e renderização de GPU.

Versões

Vulkan 1.0

Lançados oficialmente em 16 de fevereiro de 2016, eles representam a primeira versão final da API Vulkan. Atualizações são lançadas periodicamente, introduzindo novos recursos, corrigindo bugs e expandindo a documentação do desenvolvedor.

Vulkan 1.0.5 (4 de março de 2016)

  • Correção de Bug
  • Novas regras adicionadas
  • Corrigidas algumas especificações na documentação
  • Adicionada a extensão VK_NV_glsl_shader da NVIDIA

Vulkan 1.0.39 (23 de janeiro de 2017)

É o lançamento com mais novidades desde o primeiro lançamento da api

  • Correção de Bug
  • Muitas novas extensões adicionadas (por exemplo, VK_KHR_get_physical_device_properties2 e VK_KHR_maintenance1)
  • Toda a documentação atualizada, com particular atenção aos esclarecimentos
  • Algumas otimizações em relação ao desempenho

Vulkan 1.0.61.1 (20 de setembro de 2017)

  • Correção de Bug
  • Muitas novas extensões introduzidas (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list, etc)
  • Descontinuação do suporte ao Microsoft Visual Studio 2013. Apenas versões posteriores suportadas.

Vulkan 1.1

Lançado em 8 de março de 2018, é a maior atualização desde a primeira versão. Ele também acompanhará o andamento das atualizações periódicas da versão 1.0.

As principais inovações são:

  • Integra suporte Spir-V 1.3
  • Introduz suporte para HLSL
  • Introduz suporte para YCbCr
  • Vários novos recursos (agrupamento de dispositivos, visualização múltipla, etc.).

Vulkan 1.2

Lançado em 15 de janeiro de 2020, é resultado do esforço conjunto da Kronos com a comunidade de desenvolvedores que exigia a implementação de muitos recursos e a resolução de problemas conhecidos.

As notícias mais importantes são:

  • Semáforo da linha do tempo para sincronização
  • Suporte HLSL aprimorado
  • Índice de descritores
  • 23 extensões anteriores estão integradas à API principal
  • Um novo SDK

Na versão 1.2, as extensões para ray tracing foram introduzidas em caráter experimental .

Vulkan 1.3

Em 25 de janeiro de 2022, o Vulkan 1.3 foi lançado pelo grupo Khronos. O Vulkan 1.3 se concentra na redução da fragmentação, tornando os novos recursos não opcionais, para que um dispositivo possa ser considerado compatível com o Vulkan 1.3. Os novos recursos do Vulkan 1.3 incluem renderização dinâmica, estado dinâmico adicional, API de sincronização aprimorada e perfis personalizados para um dispositivo.

Adições

Quando lançou o OpenCL 2.2, o grupo Khronos anunciou que convergiria sempre que possível com o Vulkan para permitir a flexibilidade de distribuição do software OpenCL em ambas as APIs. Isso foi demonstrado pelo Premiere Rush da Adobe usando o compilador clspv de código aberto para compilar quantidades significativas de código do kernel OpenCL C para executar em um tempo de execução Vulkan para distribuição no Android.

Notas

Links externos