ARM ya comenzara a admitir controladores de GPU Mali open source Panfrost
En XDC2020 (X.Org Developers Conference), se anunció que ARM se ha unido al proceso de desarrollo del proyecto Panfrost (que desarrolla un controlador abierto para el núcleo de video de Mali).
Para quienes desconocen del controlador Panfrost, deben saber que fue fundado en 2018 por Alyssa Rosenzweig en Collabora y ha evolucionado hasta ahora basándose en la ingeniería inversa de los controladores ARM originales.
Actualmente, el controlador admite chips basados en microarquitecturas Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) y Bifrost (Mali G3x, G5x, G7x).
Para la GPU Mali 400/450 utilizada en muchos chips antiguos basados en ARM, el controlador Lima se está desarrollando por separado.
Este controlador desarrollado por ingenieria inversa respalda la generación Midgard y Bifrost de GPU Mali, como un esfuerzo autofinanciado casi completamente independiente.
Estamos muy orgullosos de este trabajo y del hecho de que tenga un alto rendimiento, buenos niveles de funcionalidad y un alto nivel de conformidad con las especificaciones.
Con este anuncio, ARM ha expresado su voluntad de proporcionar a los desarrolladores de controladores la información y la documentación necesarias para comprender mejor el hardware y centrarse en el desarrollo, sin perder tiempo resolviendo acertijos en el proceso de ingeniería inversa de los controladores binarios.
Sin embargo, la ingeniería inversa necesariamente conlleva una sobrecarga, ya que necesitamos dedicar tiempo a descubrir cómo funciona realmente el hardware, incluida la forma más óptima de realizar varias operaciones y peculiaridades particulares del hardware.
Anteriormente, esto sucedía con la conexión de Qualcomm para trabajar en el proyecto Freedreno, desarrollando un controlador gratuito para la GPU Qualcomm Adreno.
Arm ahora está trabajando junto con Collabora para proporcionarnos información y documentación que nos permita a nosotros y a la comunidad comprender el hardware.
Collabora continúa nuestro esfuerzo para que Panfrost funcione en todos los dispositivos de estas generaciones, hacia el máximo rendimiento, la total conformidad con las especificaciones y el mayor conjunto de funciones posible. Si bien ya lo hemos hecho, el soporte de Arm nos permite acelerar este trabajo y ofrecer el mejor conductor posible con un compromiso de soporte a largo plazo.
Y es que desde hace ya vario tiempo se sabe que muchos de los controladores de GPU para procesadores ARM son de código cerrado, cosa que dificulta el desarrollo de controladores abiertos y sobre todo que si se encuentran errores pueden tardar mucho tiempo en ser corregidos.
La comunidad de desarrolladores ha intentado durante mucho tiempo aplicar ingeniería inversa a los controladores de GPU con proyectos como Freedreno (Qualcomm Adreno), Etnaviv (Vivante), así como Lima y Panfrost para las GPU de Arm Mali.
Hace varios años, la gerencia de Arm no estaba interesada en colaborar con el desarrollo de controladores de GPU de código abierto para las GPU de Mali, pero como señaló Phoronix , Alyssa Rosenzweig, una ingeniera de software gráfico empleada por Collabora, explicó que el desarrollo de Panfrost ahora se realizó en asociación con Arm.
La participación de ARM ayudará a llevar la estabilidad de la implementación a la ubicuidad y brindará un mejor soporte a las instrucciones internas específicas de GPU Mali al proporcionar información de primera mano sobre la arquitectura del chip.
La disponibilidad de documentación interna también garantizará el máximo rendimiento, el cumplimiento total de las especificaciones y la cobertura de todas las capacidades disponibles de GPU Midgard y Bifrost.
Los primeros cambios basados en la información recibida de ARM ya se han introducido en la base de código del controlador. En particular, se ha trabajado para llevar las operaciones de empaquetado de instrucciones a la forma canónica y para rediseñar completamente el desensamblador para reflejar con mayor precisión la arquitectura del conjunto de instrucciones GPU Bifrost y la conformidad con la terminología aceptada en ARM.
Finalmente se espera que el controlador tenga una mejora drástica en cuestión de poco tiempo, además de que este anuncio puede alentar a mas desarrolladores.
Si quieres conocer mas al respecto sobre la nota, puedes consultar el comunicado original dirigiéndote al siguiente enlace.