Possível aceleração gráfica na Coreboard V2.0 (Labrador 32 BIts)

O SoC do Labrador 32 Bits utiliza a PowerVR SGX544 como GPU. É uma estranha decisão, porque os drivers dessa GPU são praticamente ainda inexistentes e não há documentação técnica oferecida pela Imagination para ela, então é como se não tivéssemos uma GPU no chipset. Mas atualmente há certas alternativas…

1 - Podemos usar o Android.
Mas teremos que importar os drivers de algum celular e embora as especificações da Labrador informavam antigamente suporte ao Android, ainda não há informações sobre rodar o Android nela. Também não tentei ainda. Utilizar o Android pode também não ser uma opção muito viável dependendo do tipo de função que teremos que fazer com a placa por que estamos praticamente usando outro sistema operacional.

2 - Usar o driver do Android no Linux.
Isso pode ser possível usando o libhybris, que na época foi desenvolvido para ajudar o porte de celulares para o Ubuntu Touch, e foi usado na distro Mer e no Sailfish OS. Ela traduz chamadas do Bionic para o GlibC ou para o Musl. Teremos que extrair os binários do driver de algum celular Android que utiliza a PowerVR SGX544.

3 - Drivers experimentais de código-aberto.
Como estamos lidando com arquitetura ARM pesquisei por distros Linux especializadas para celulares, e encontrei o PostMarketOS. Há uma seção que fala sobre aceleração de hardware e nela lista o que pode ser utilizado para hardwares com GPUs que usam arquiteturas SGX5. Há uma implementação no kernel que uma pessoa está desenvolvendo, uma engenharia reversa do driver do PowerVR SGX540 (é uma outra GPU, mas talvez pode funcionar…) e bibliotecas de usuário para essa GPU. Acho que vale para a comunidade dar uma olhada e experimentar na Labrador
https://wiki.postmarketos.org/wiki/3D_Acceleration

No passado, a Intel cometeu um grande erro e lançou a GMA 500, usando PowerVR. Na época ela teve muitos problemas com Linux (e no Windows também), mas mais tarde lançou drivers proprietários que já não funcionam mais. Mesmo se fosse usado um kernel bem antigo no Labrador (e supondo que o chipset dele funcione) acho muito improvável que funcionasse, porque nem mesmo a arquitetura é a mesma (estamos lidando com x86). Mas vale deixar essa observação (pra notar o quão horrível o suporte para o PowerVR é).

Eu atualmente não tenho intenções de mexer com a GPU da Labrador, porque atualmente não necessito dela no meu projeto. Mas quero manter essa thread aberta para poder ser discutida em breve e estou interessado nela. Ela ainda seria muito útil para ser utilizado com inteligência artificial mesmo que bem fraquinha, se for possível habilitar o OpenCL em breve, ou apenas ser utilizada pra experiência de entusiastas.

Olá @raposo muito obrigado pelo seu post.

Temos atualmente um time trabalhando com drivers experimentais em código aberto, bem como em uma engenharia reversa de drivers android. Estamos avançando e nosso foco é a habilitação do OpenCL, qualquer atualização eu posto aqui.

1 Curtida

Legal. O repositório do driver está disponível?