New Developments to Vulkan for Graphics with Your Raspberry Pi
Back in January, Raspberry Pi announced they were starting to work on a new highly requested feature: an open source driver for graphics that would be compatible since Raspberry Pi 4 was made OpenGL ES 3.1 conformant. This new feature is Vulkan.
As described by the developers at : Vulkan is “a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.”
The Vulkan API has been designed to accommodate modern GPUs and address many of the performance bottlenecks in Open GL, helping graphic developers get better results from their hardware. Back when Raspberry Pi first made the announcement in January, the initial success was just a first RGB triangle and a promise of new developments ahead.
However, now that several months have passed (and the world feels forever changed from how life used to be at the beginning of the year), there’s significant progress to reports, including an added source code.
Since January, the team working on the Vulkan driver stack for Raspberry Pi has completed more than 70,000 tests for Vulkan 1.0 and have an implementation for a major subset of the Vulkan 1.0 API.
To get a sense of the new features, you can now view several images taken from Vulkan demos running on Raspberry Pi 4. Check out Sascha Willems Vulkan . The demos show multiple colorful, complex landscapes as well as renderings of innovative and imaginative 3D objects, demonstrating the potential for new games and applications.
However, the developers stress that there’s still a lot of work that needs to be done before the driver will be able to handle the complexity of most applications or games. In fact, several of the demos themselves don’t quite run yet due to bugs in the driver or Vulkan features that have yet to be implemented. Still, it is now possible to picture – literally picture – what the future holds.
In terms of the work that’s currently being done, the team’s major task is to provide support for the all the basic Vulkan 1.0 features. This includes support for input attachments, texel buffers, compute shaders, multisampling, and pipeline caches among other features.
Once all the features are supported, the team’s plan is to focus on CTS conformance and fixing bugs. Once they get close to conformance, they anticipate that the driver will finally be robust enough to be able to test actual Vulkan games and applications.
Even then, there will undoubtedly be more optimization and tuning work that will be needed, but much of that will come as users start to experiment with the possibilities and uncover what ought to be improved or fixed.
While much of the promise of Vulkan still lies in the future, if you’re interested, there is a way you can start to get involved today.
If you have any questions or want to help contribute, you can join the team on irc.freenode.net #videocore channel.
And don’t forget to come back to the Vilros blog for more updates and news for your Raspberry Pi and Arduino devices!