Panfrost agora tem suporte para OpenGL 3.1 para GPUs do Mali

Os desenvolvedores do Collabora não pararam de trabalhar e é que nos últimos meses deram muito o que falar e desta vez não é a exceção porque recentemente anunciou que anunciou a implementação no driver Panfrost do suporte a OpenGL 3.1 para GPUs Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) e GPUs Bifrost (Mali G3x, G5x, G7x), bem como suporte OpenGL ES 3.0 para GPUs Bifrost.

Estas mudanças deverá ser incluído na versão Mesa 21.0, que atualmente está em estágio de lançamento candidato.

Deve ser lembrado que os desenvolvedores do Collabora trabalham há muito tempo na implementação de controladores para tabelas e um exemplo disso é o passado Controlador de mesa de gálio, que implementa uma camada intermediária para organizar API OpenCL 1.2 e OpenGL 3.3 sobre drivers com suporte para DirectX 12 (D3D12) e que seu código-fonte foi lançado sob a licença do MIT.

O controlador proposto permite que você use Mesa em dispositivos que não são inicialmente compatíveis com OpenCL e OpenGL e também como uma posição inicial para portar aplicativos OpenGL / OpenCL para trabalhar em D3D12.

Por parte do novo driver Panfrost, observa-se que a GPU Midgard e Bifrost compartilham estruturas de dados comuns para funções fixas, mas Bifrost usa um conjunto fundamentalmente diferente de instruções, o que torna a implementação síncrona de funcionalidade para dados de GPU difícil.

Arquitetonicamente, o Bifrost compartilha a maioria de suas estruturas de dados de função fixa com Midgard, mas apresenta um novo conjunto de instruções. Nosso trabalho para apresentar o OpenGL ES 3.0 ao Bifrost reflete essa divisão.

Alguns recursos de função fixa, como instanciação e feedback de transformação, funcionaram sem nenhuma alteração específica do Bifrost, como já fizemos em Midgard. Outros recursos de sombreamento, como objetos de buffer uniformes, exigiam implementações "do zero" no compilador Bifrost, uma tarefa facilitada pela representação intermediária madura do compilador com suporte de construção de primeira classe.

Por exemplo as funções fixas já implementadas para Midgardcomo 'feedback de transformação', pode ser transferido para Bifrost sem alterações, enquanto recursos como Multiple Render Targets (MRT) são limitados a algumas alterações Bifrost específicas.

Ao mesmo tempo, outras operações de sombreador, como objetos de buffer unificados, exigem uma implementação de scratch para o compilador de sombreador Bifrost.

Isso segue o suporte OpenGL ES 3.0 em Midgard que pousou no verão, bem como o suporte inicial OpenGL ES 2.0 que estreou recentemente para Bifrost. OpenGL ES 3.0 agora é testado no Mali G52 na integração contínua do Mesa, alcançando uma taxa de aprovação de 99.9% nos testes correspondentes do programa de qualidade DrawElements.

No entanto, outros recursos, como vários alvos de renderização, exigiam código específico da Bifrost enquanto aproveitavam outro código compartilhado com Midgard. Ainda assim, o trabalho progrediu muito mais rápido da segunda vez, uma prova do poder dos códigos compartilhados. Mas você não precisa limitar seu compartilhamento apenas a GPUs Panfrost; Os drivers de código aberto podem compartilhar código entre fornecedores.

Além disso, no anúncio é mencionado que parte da duplicação de trabalho foi evitada usando uma representação intermediária no compilador, que, junto com o código compartilhado, acelere significativamente o desenvolvimento e que, com essa abordagem, o código possa ser usado não apenas para uma família de GPUs, mas também para diferentes controladores.

Em particular, os desenvolvedores mencionam que, para implementar OpenGL em sistemas de desktop, o driver Panfrost exigia o uso de componentes Mesa prontos para usar, enquanto o driver proprietário para Mali é limitado apenas a suportar apenas OpenGL ES.

No entanto, o suporte para desktop OpenGL 3.1 é quase "gratuito" para nós como um controlador Mesa upstream, aproveitando a infraestrutura comum.

Finalmente, se você estiver interessado em saber mais sobre isso sobre a nova implementação do Panfrost proposta pelos desenvolvedores do Collabora, você pode conferir os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.