¿Cuáles son las GPU actuales con controladores de código abierto en Android? Recientemente ha habido problemas con la GPU de Qualcomm en el nuevo Nexus 7, lo que me hace preguntarme cómo de estrictas son las normas de open-sourcing todo el código de un dispositivo Android en funcionamiento, incluidos los controladores de la GPU.
Respuesta
¿Demasiados anuncios?Las GPUs Broadcom, Qualcomm, PowerVR de Imagination, Tegra de Nvidia y Mali de ARM cuentan con controladores parcialmente (en su mayoría) de código cerrado. En general, el único código abierto del controlador es cualquier extensión del proveedor a los archivos de cabecera GL y EGL, y una licencia GPL calza que puede cargarse en el kernel para permitirle comunicarse con el controlador de sólo binarios. Sin embargo, los proveedores suelen contribuir con código relacionado a proyectos upstream, como el código de renderizado directo de X Windows, o el subsistema gráfico de Android.
La mayoría de los fabricantes de GPU temen que la apertura de sus controladores revele detalles sobre el funcionamiento de su tecnología, lo que permitiría a los trolls de patentes presentar reclamaciones espurias de que partes de las GPU o los controladores infringen sus patentes. Por esta razón, es poco probable que los controladores se abran por completo a menos que este riesgo cambie.
Hay no reglas para abrir todo el código de un dispositivo Android. Sería muy difícil fabricar un dispositivo completamente de código abierto. Incluso si los controladores de la GPU fueran abiertos, la mayoría de las radios celulares (si no todas) tienen un firmware sólo binario por razones regulatorias: si pudieras cambiar los controladores, podrías hacer que funcionaran en canales ilegales, o exceder la potencia de transmisión máxima permitida.