Long before Raspberry Pi happened, I used to design graphics processing units (GPUs) for a living: along with James Adams, Gary Keall, and others, I designed the VideoCore 3d GPU that you can find in every Raspberry Pi computer.
From 2007 to 2012, I represented Broadcom at Khronos, the graphics API standards body. At the time, our primary focus was on the OpenGL and OpenGL ES APIs. These are pretty venerable standards, dating back to the mid 1990s. They abstract away the detail of how particular GPUs work, providing a common set of primitives (“here’s a texture”, “draw this list of triangles”) that authors can use to write 3D graphics applications that work on any platform, regardless of the underlying GPU.
But after twenty years OpenGL was starting to looking like a bad abstraction: it didn’t provide the capabilities application authors needed, and was an increasingly poor fit for how the underlying hardware worked. The result was an increasing amount of overhead and inefficiency, both in the application and in the driver stack.
The Vulkan project was a long-running effort to define a better, more modern, abstraction, which began during my time at Khronos, and led eventually to the release of Vulkan 1.0 in 2016. Since then, it has seen widespread adoption among GPU, operating system, and application developers.
For the last couple of years, we have been working with our friends at Igalia to bring Vulkan to the Raspberry Pi 4 platform, and today we’re happy to announce that we have achieved Vulkan 1.2 conformance from Khronos.
Igalia’s Iago Toral says:
“All the changes required for this have already been merged in the upstream v3dv Mesa driver and will eventually be available in future Raspberry Pi OS updates.
Aside from Vulkan 1.2 core functionality, we have also been adding support for various other extensions, some of which are core in Vulkan 1.3, as well as many bugfixes and performance improvements.”
Another interesting development came through a contribution by Roman Stratiienko, who added support for Android. If you are interested in this you may want to check out KonstaKANG’s Lineage OS releases for Raspberry Pi 4.
Igalia continue to work on improving Vulkan support for Raspberry Pi 4, so stay tuned for future updates.