Link

Sobre Vulkan

APIs gráficas mais antigas, como o OpenGL, foram projetadas quando o hardware gráfico era muito diferente das arquiteturas modernas e quando um modelo de abstração diferente era apropriado. Enquanto OpenGL e seu equivalente móvel, OpenGL ES, foram capazes de suportar recursos adicionais, oferecendo extensões e novas versões, a arquitetura básica dessas APIs mudou pouco nos últimos vinte e oito anos. Essa continuidade permitiu o suporte de longo prazo: em geral, aplicativos muito antigos continuarão a ser executados em hardware moderno. O custo dessa abordagem é que o comportamento das GPUs modernas é tão abstraído pela API que é difícil para o aplicativo e o driver conhecer as necessidades uns dos outros. O resultado é um desempenho imprevisível para o aplicativo e considerável complexidade no driver, já que cada fornecedor aplica diferentes otimizações de driver na tentativa de fazer com que o software seja executado rapidamente (HAJDARBEGOVIC, 2015).

Vulkan é visto como um sucessor do OpenGL. Lançado pelo Khronos Group em 2016, Vulkan possui uma arquitetura que aproveita ao máximo as modernas unidades de processamento gráfico (GPUs) para produzir gráficos de alto desempenho e aplicativos de computação.

O Vulkan não é uma nova iteração de uma API gráfica existente, está apenas fazendo as mesmas coisas de formas melhores. Portanto, um novo hardware gráfico não é necessariamente obrigatório. Placas gráficas que suportam OpenGL 4.x ou OpenGL ES 3.1. são suficientes para o Vulkan (ROBOTISTA, 2017).

O conceito original da API Vulkan foi projetado e desenvolvido pela AMD, com base em sua API proprietária chamada Mantle. Esta API apresentou alguns ganhos impressionantes de desempenho através de vários benchmarks (PAWEL, 2016a), provando assim a sua nova abordagem e satisfazendo todas as exigências competitivas da indústria.

A AMD tornou a API Mantle em código aberto e a doou para o Khronos Group. O Khronos, com a ajuda de muitos outros fornecedores de hardware e software, fez esforços colaborativos para lançar a API Vulkan.

Vulkan não é a única API de gráficos 3D da próxima geração; existem concorrentes, como o Direct3D 12 da Microsoft e o Metal da Apple. No entanto, o Direct3D é limitado às suas variantes do Windows e Metal ao Mac (OS X e iOS). Vulkan se destaca nesse aspecto. Sua natureza multiplataforma suporta quase todas as plataformas de sistemas operacionais disponíveis; esta lista inclui Android, Linux, Tizen, Windows 7, Windows 8 e Windows 10. Suporte de terceiros licenciado livremente para iOS e macOS também está disponível.

Como Vulkan é uma API escrita em C, as linguagens de programação normalmente utilizadas são C e C++. Porém, existem bibliotecas que permitem a utilização da API Vulkan com outras linguagens de programação como Rust, Object Pascal, Java, JavaScript, Python, entre outras.


Vulkan em uso

Desde que a API Vulkan foi introduzida pelo Khronos Group em 2015, ela ganhou apoio de grandes empresas como Intel e Google (KUNDURTHY et al., 2018). Em 2016, Epic Games anunciou suporte de Vulkan para Unreal Engine (HALFACREE, 2016). Em 2017, a engine de jogos Unity passou a ter suporte completo ao Vulkan (LIAN, 2017). Em 2017, com o amadurecimento da API Vulkan, um número crescente de desenvolvedores de jogos anunciou que começaria a adotá-la (KUNDURTHY et al., 2018). Em 26 de fevereiro de 2018, o Khronos Group anunciou que a API Vulkan ficou disponível para todos no macOS e iOS por meio da biblioteca MoltenVK, que permite que o Vulkan seja executado em cima da API Metal (BRIGHT, 2018). Em 2019 o Google anunciou seu serviço de streaming de jogos eletrônicos que utiliza Vulkan como API gráfica (LARABEL, 2019).


Anterior Próximo