Actualización de Vulkan: conformidad con la versión 1.2 para Raspberry Pi 4

Mucho antes de que sucediera Raspberry Pi, solía diseñar unidades de procesamiento de gráficos (GPU) para ganarme la vida: junto con James Adams, Gary Keall y otros, diseñé la GPU VideoCore 3d que puede encontrar en todas las computadoras Raspberry Pi.

De 2007 a 2012, representé a Broadcom en Khronos, el organismo de estándares de API de gráficos. En ese momento, nuestro enfoque principal estaba en las API de OpenGL y OpenGL ES. Estos son estándares bastante venerables, que datan de mediados de la década de 1990. Abstraen los detalles de cómo funcionan las GPU en particular, proporcionando un conjunto común de primitivas («aquí hay una textura», «dibuje esta lista de triángulos») que los autores pueden usar para escribir aplicaciones de gráficos 3D que funcionan en cualquier plataforma, independientemente de la GPU subyacente.

Pero después de veinte años, OpenGL comenzaba a parecer una mala abstracción: no proporcionaba las capacidades que necesitaban los autores de las aplicaciones y era cada vez menos adecuado para el funcionamiento del hardware subyacente. El resultado fue una cantidad cada vez mayor de gastos generales e ineficiencia, tanto en la aplicación como en la pila de controladores.

La muestra de sombras diferidas de Sasha Willems ahora está funcionando

El proyecto Vulkan fue un esfuerzo prolongado para definir una abstracción mejor y más moderna, que comenzó durante mi tiempo en Khronos y finalmente condujo al lanzamiento de Vulkan 1.0 en 2016. Desde entonces, ha visto una adopción generalizada entre GPU, sistema operativo y desarrolladores de aplicaciones.

Durante los últimos años, hemos estado trabajando con nuestros amigos de Igalia para traer Vulkan a la plataforma Raspberry Pi 4, y hoy nos complace anunciar que logramos la conformidad con Vulkan 1.2 de Khronos.

Iago Toral de Igalia dice:

“Todos los cambios necesarios para esto ya se han combinado en el controlador Upstream v3dv Mesa y eventualmente estarán disponibles en futuras actualizaciones del sistema operativo Raspberry Pi.

Además de la funcionalidad principal de Vulkan 1.2, también hemos agregado soporte para varias otras extensiones, algunas de las cuales son básicas en Vulkan 1.3, así como muchas correcciones de errores y mejoras de rendimiento”.

Otro desarrollo interesante vino a través de una contribución de Roman Stratiienko, quien agregó soporte para Android. Si está interesado en esto, puede consultar las versiones de Lineage OS de KonstaKANG para Raspberry Pi 4.

Sistema operativo Lineage para Raspberry Pi 4

Igalia continúa trabajando para mejorar el soporte de Vulkan para Raspberry Pi 4, así que esté atento a futuras actualizaciones.

Real Racing ejecutándose en Lineage OS