Há algum tempo, a Fundação Raspberry Pi, juntamente com a Igalia , anunciou ao público em geral seu trabalho conjunto no desenvolvimento de um driver Vulkan para placas Raspberry Pi. Inicialmente, afirmaram que seria compatível apenas com a placa mais recente, o "Raspberry Pi 4", e assim começou a fase inicial de desenvolvimento. Não mencionaram uma data específica para quando o driver estaria pronto ou quando estaria adequado para o lançamento de aplicativos reais.
A única coisa que mencionaram foi que isso poderia ser possível no segundo semestre de 2020. Nas especificações do controlador , foi mencionado que ele é limitado à compatibilidade com o acelerador gráfico VideoCore VI, usado desde o modelo Raspberry Pi 4, e que não seria compatível com placas mais antigas, o que significa que os modelos 3b+ e anteriores foram descartados.
Além disso, mencionaram que, comparado ao OpenGL, o uso do Vulkan pode melhorar o desempenho de aplicativos gráficos e jogos.
Com esta notícia, muitos fãs e proprietários de uma Raspberry Pi que não era o modelo 4, ficaram desiludidos porque sentiram que foram deixados de lado e que praticamente anunciaram que já não vale a pena continuar a apoiar qualquer uma destas placas.
Mas, agora nas notícias mais recentes, parece que as coisas mudaram conforme um desenvolvedor veio provar o contrário.
Sobre o RPi-VK-Driver 1.0
Martin Thomas, um engenheiro da NVIDIA, foi o responsável pelo desenvolvimento do RPi-VK-Driver, um driver de código aberto que, nas palavras do seu autor:
"O controlador foi desenvolvido por, no entanto o desenvolvimento foi realizado como um projeto pessoal, não relacionado à NVIDIA (o controlador foi desenvolvido nos últimos dois anos em seu tempo livre)."
Esta primeira versão do driver de código aberto RPi-VK-Driver 1.0 é distribuída sob a licença MIT e implementa suporte à API gráfica Vulkan para placas Raspberry Pi mais antigas que incluem a GPU Broadcom Videocore IV.
O controlador é compatível com todos os modelos de placa Raspberry Pi lançados antes do Raspberry Pi 4.
Dos modelos suportados, os seguintes são mencionados no repositório:
- Zero
- Zero w
- 1 modelo A
- 1 modelo A+
- 1 modelo B
- 1 modelo B+
- 2 Modelo B
- 3 Modelo A+
- 3 Modelo B
- 3 Modelo B+
- Módulo de computação 1
- Módulo de computação 3
- Módulo de computação 3 lite
- Módulo de computação 3+
- Módulo de computação 3+ lite
Como os recursos da GPU VideoCore IV, presente em modelos mais antigos do Raspberry Pi, não são suficientes para a implementação completa do Vulkan, o driver implementa apenas um subconjunto da API Vulkan , que não abrange todo o padrão, mas tenta segui-lo na medida do possível, dentro das limitações da equipe.
No entanto, a funcionalidade disponível é suficiente para muitas aplicações e jogos, e o desempenho está muito à frente dos drivers OpenGL devido ao gerenciamento de memória mais eficiente, ao processamento multithread de comandos da GPU e ao controle direto das operações da GPU.
O driver também suporta recursos como MSAA (anti-aliasing multiamostra), shaders de baixo nível e contadores de desempenho . Uma limitação é a falta de suporte para shaders GLSL, que ainda não estão disponíveis nesta fase de desenvolvimento.
Quanto ao autor, podemos destacar que também foi ele o responsável pela publicação da porta de jogos Quake 3 para o Raspberry Pi, que serve como uma demonstração das capacidades do novo controlador.
O jogo é baseado no motor ioQuake3, ao qual foi adicionado um back-end de renderização modular baseado no Vulkan, originalmente desenvolvido pelo projeto Quake III Arena Kenny Edition. Usando o novo controlador no jogo, foi possível renderizar mais de 100 quadros por segundo (FPS) na placa Raspberry Pi 3B + com saída de 720p.
Por fim, para obter mais informações sobre a implementação deste controlador , consulte o repositório do controlador no seguinte link.