RPi-VK-Drive: o controlador de GPU com suporte Vulkan para placas RPI mais antigas

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.


Adicionar como fonte preferencial no Google