Vulkan é uma nova API para gráficos acelerados por hardware (e computação geral) por meio de GPUs tradicionais. O OpenGL continuará sendo desenvolvido, pois é uma API de nível superior ao que o Vulkan pretende ser. Originalmente chamado de "glNext", pode-se inferir que o Vulkan provavelmente acabaria sendo "OpenGL 5", mas que o corpo de padrões finalmente decidiu que um novo nome coincidiria melhor com a quebra relativamente limpa que os APIs pretendem fazer com os existentes Paradigmas do OpenGL.
As vantagens práticas do Vulkan para desenvolvedores de jogos são principalmente sobre controle (como permitir mais, potencialmente permitindo melhores otimizações ao custo de um trabalho significativamente mais inicial por parte do desenvolvedor). Especificamente:
- A API é orientada em torno da geração assíncrona de buffers de comando em vários encadeamentos e do processamento seqüencial desses buffers em um pipeline de comandos. Isso reflete as realidades do hardware moderno. Atualmente, a maioria dos softwares de alto perfil e / ou alto desempenho criados no OpenGL implementam esse tipo de comportamento; ter a API dando suporte a isso significa que os desenvolvedores não precisam implementar e manter essa estrutura, ou podem fazê-lo com menos esforço.
- As tarefas de gerenciamento de threads e memória são deixadas para o aplicativo, não para o driver, permitindo que os desenvolvedores de jogos tenham mais controle sobre esses comportamentos e, portanto, adaptem potencialmente mais precisamente esses comportamentos às necessidades de seus jogos individuais.
- As camadas de validação e diagnóstico podem ser ativadas independentemente, permitindo, em teoria, uma melhor integração de ferramentas com a API (algo que o próprio OpenGL sofreu) e desabilitando a validação excessiva, em teoria permitindo que " os gráficos no nível três " tenham muito mais desempenho.
- Não há um forte diferencial de API entre as versões móvel e desktop, o que teoricamente facilitará a transferência de jogos de plataforma cruzada e, se nada mais, reduzir as dores de cabeça de verificação de versão que todo mundo odeia.
O Vulkan é muito parecido com o C / OpenGL na estrutura superficial (a aparência da API chama, etc.). No entanto, é melhor digitado (no sentido de que nem tudo é nulo int
; existem typedefs relevantes e assim por diante).
É muito mais baixo que o OpenGL. Pode-se esperar um salto na configuração operacional e na complexidade entre o OpenGL e o Vulkan, como foi visto na transição do D3D9 para o D3D10, que expôs muito mais detalhes ocultos da operação do dispositivo GPU ao cliente da API. A transição é realmente mais parecida com D3D11 para 12, já que o D3D12 é uma API muito semelhante à Vulkan, em termos de capacidade.