Intel inicia mejoras en driver de código abierto para GMA500

Intel inicia mejoras en driver de código abierto para GMA500

Hace un tiempo les contamos sobre los problemas que tenía el hardware gráfico GMA500 de Intel a la hora de ser usado con sistemas operativos de código abierto como Linux.  El principal problema era que esta tecnología había sido desarrollada por PowerVR y la compañía se oponía a publicar la información necesaria para construir drivers de código abierto.

Para empeorar las cosas, sólo se había escrito un driver para una versión específica de Ubuntu, lo que dificultaba el uso de hardware basado en GMA500 en otras distribuciones. En ese entonces dijimos que sólo Intel, trabajando en conjunto con PowerVR podía revertir el problema, y según reporta el sitio especializado Phoronix, esto ya estaría sucediendo.

Linux Foundation estuvo exhibiendo unos dispositivos con GMA500 en una reciente feria de tecnología móvil.  Estos dispositivos usaban un driver nuevo que está preparando Intel con el propósito de que la mayor parte esté escrita como código abierto, dejando sólo algunas partes claves como código cerrado, específicamente lo que corresponde a tecnología de PowerVR.

La parte de código cerrado será totalmente independiente para que se pueda distribuir sin problemas, y la parte de código abierto contendrá lo necesario para interactuar con X.org y el kernel de Linux.

Gallium3D : Arquitectura gráfica bien diseñada

La base de este trabajo es una nueva arquitectura gráfica llamada Gallium 3D.  Esta arquitectura está diseñada pensando en las dificultades que tiene la escritura de drivers hoy en día:  Para que un hardware esté bien soportado, el fabricante de drivers tiene que escribir la implementación de la aceleración de API’s como OpenGL y Direct3D, y además la integración con el sistema gráfico subyacente, como por ejemplo X.org o el sistema propio de Windows.

Con Gallium 3D se propone una arquitectura que separa API’s gráficas de la implementación en los drivers.  Por ejemplo las aplicaciones están escritas para OpenGL y/o Direct3D y luego un componente de Gallium3D llamado State Tracker es el encargado de traspasar esas llamadas a funciones nativas del hardware de una forma independiente de las API’s.

Con esta arquitectura, en el caso específico de GMA500 se pudo aislar la funcionalidad con licenciamiento restringido de PowerVR en un componente específico de la arquitectura y no en todo el driver. Con esto, pronto este hardware podrá ser soportado por todas las distribuciones de Linux e incluso otros sistemas operativos.

Arquitectura de Gallium3D (por Zack Rusin)

Links:
Intel’s Special Driver For Poulsbo Uses Gallium3D (Phoronix)
Gallium3D : Graphic Done Right (Zack Rusin)
Intel y las barreras al código abierto en su GMA500 (Fayerwayer)