Confira o desktop OpenGL 3.1 em GPUs do Mali com Panfrost

Confira o desktop OpenGL 3.1 em GPUs do Mali com Panfrost

O driver Panfrost de código aberto para GPUs Arm Mali Midgard & Bifrost agora fornece OpenGL ES 3.1 não compatível com desktop. O suporte OpenGL para desktop do Panfrost é nativo, reduzindo a sobrecarga da CPU. Os aplicativos agora podem usar os recursos ocultos do hardware, como índices explícitos de reinicialização primitiva, teste alfa e quadriláteros. O anúncio está no blog da Collabora.

Portanto, o Panfrost para as GPUs Arm Mali Midgard e Bifrost agora fornece OpenGL ES 3.0 não compatível em Bifrost e OpenGL 3.1 de desktop em Midgard (Mali T760 e mais recente) e Bifrost, em tempo para o primeiro lançamento do Mesa em 2021.

Isso segue o suporte OpenGL ES 3.0 em Midgard que chegou há pouco, bem como o suporte inicial OpenGL ES 2.0 que recentemente estreou 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.

Confira o desktop OpenGL 3.1 em GPUs do Mali com Panfrost

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 trazer o OpenGL ES 3.0 no Bifrost reflete essa divisão. Alguns recursos de função fixa, como instanciar e transformar feedback, funcionaram sem nenhuma alteração específica do Bifrost, uma vez que já criamos o Midgard.

Outros recursos de shader, como objetos de buffer uniformes, exigiam implementações “do zero” no compilador Bifrost, uma tarefa facilitada pela representação intermediária em amadurecimento do compilador com suporte de construtor de primeira classe. No entanto, outros recursos, como vários destinos de renderização, exigiam algum código específico do Bifrost, enquanto aproveitavam outro código compartilhado com Midgard.

Ao todo, o trabalho progrediu muito mais rapidamente na segunda vez, uma prova do poder do compartilhamento de código. Porém, não há necessidade de limitar o compartilhamento apenas a GPUs Panfrost; drivers de código aberto podem compartilhar código entre fornecedores.

Na verdade, como o Mali é uma GPU incorporada, o driver proprietário apenas expõe OpenGL ES, não OpenGL para desktop. No entanto, o suporte para desktop OpenGL 3.1 vem quase “de graça” para nós como um driver Mesa upstream, aproveitando a infraestrutura comum.

Este marco mostra a vantagem técnica do desenvolvimento de código aberto: em comparação com as implementações em camadas do GL de desktop como gl4es ou Zink, o suporte OpenGL de desktop da Panfrost é nativo, reduzindo a sobrecarga da CPU. 

Recursos ocultos

Além disso, os aplicativos podem usar os recursos ocultos do hardware, como índices de reinicialização primitivos explícitos, teste alfa e quadriláteros. Embora esses recursos possam ser emulados, as soluções nativas são mais eficientes.

O código compartilhado do Mesa também se estende ao suporte OpenCL via Clover. Uma vez que um driver suporta shaders de computação e recursos de compilador suficientes, o OpenCL básico está a apenas alguns patches e uma onda de correção de bugs de distância. Embora as implementações do OpenCL possam ser em camadas (por exemplo, com clvk), um driver Mesa de software livre evita o engano.

Acesse a versão completa
Sair da versão mobile