Vulkan update: we’re conformant!

Today we have a guest post from Igalia’s Iago Toral, who has spent the past year working on the Mesa graphic driver stack for Raspberry Pi 4.

It’s been nearly a year since we first announced that we were developing a Vulkan driver for the latest generation of Raspberry Pi devices (Raspberry Pi 4, Raspberry Pi 400, and Compute Module 4).

Sascha Willems’ Vulkan radial blur demo

In June we released the source code for our prototype driver, and last month we announced that the driver had been successfully merged to Mesa upstream.

Today we have some very exciting news to share: as of 24 November the V3DV Vulkan Mesa driver for Raspberry Pi 4 has demonstrated Vulkan 1.0 conformance.

Khronos describes the conformance process as a way to ensure that its standards are consistently implemented by multiple vendors, so as to create a reliable platform for application developers. For each standard, Khronos provides a large conformance test suite (CTS) that implementations must pass successfully to be declared conformant; in the case of Vulkan 1.0, the CTS contains over 100,000 tests.

Vulkan 1.0 conformance is a major milestone in bringing Vulkan to Raspberry Pi, but it isn’t the end of the journey. Our team continues to work on all fronts to expand the Vulkan feature set, improve performance, and fix bugs. So stay tuned for future Vulkan updates!

39 comments
Jump to the comment form

Avatar

Great news, well done. I’m going to have a play.

Reply to rpiMike

Avatar

Will you get Minecraft running at a higher fps with Vulkan?

Reply to Jack Spence

Avatar

I don’t think so; Minecraft Java Edition uses OpenGL and Minecraft bedrock uses OpenGL ES. They won’t se any improvement because they don’t use the Vulkan API.

Reply to Ella Stanforth

Avatar

Hello! Is there a timeline when Vulkan driver is release-ready and will be officially published? Regards!

Reply to ellip

Avatar

Conformant = stamp of approval from Khronos that the driver is ready for use as a Vulkan platform.
Also since Mesa is the defacto standard for Vulkan development, now that the Pi driver has been merged into its source base which is a public repo,
that is as official a release as it can get.

Reply to Gregory

Avatar

> Hello! Is there a timeline when Vulkan driver is release-ready and will be officially published?

Not sure when it would be included on Raspbian repositories, but about release-ready, the Raspberry Vulkan driver is already included on last Mesa release, 20.3.

Reply to apinheiro

Avatar

Great news indeed.
However I am sure other will be as puzzled as I am in understanding if that support means it now works for all of us. In other words: In which distribution are these driver present?
Regards, Hugo.

Reply to Hugo van der Kooij

Avatar

The Pi4 Vulkan drivers are currently only in upstream Mesa. That means they aren’t available in any distros that I know of. You can either compile and install them from source (they broke Kodi and VLC media player on my system when I did this this week, so be careful) or wait until they are added to the Raspberry Pi OS repository.

Reply to Grant

Avatar

What is the package name for these drivers in Raspberry Pi OS repos?

Reply to berkus

Avatar

Probably VLC and Kodi are currently looking for OpenGL drviers. If Vulkan is needed for testing, it would require installing the new Mesa in it’s own instance for now instead of overwriting what is currently installed. Or try compiling Zink which enables an OpenGL compatiblity layer to use the Vulkan driver, which might work.

Reply to Drew

Avatar

Great news!
Although this seems predominantly about graphics, what are the prospects for this opening up the GPU for use doing faster ML computing?

Reply to Neil Stoker

Avatar

Something similar to CUDA for VC IV would be a monumental task.

Reply to Anders

Avatar

There are Vulkan based libraries for machine learning, training and inference. Check for example T Tencent’s
ncnn library. It does work on Raspberry Pi, and can use of this Vulkan driver on RPi.

Reply to Witek

Avatar
Avatar

Is the Vulcan driver usable on a Pi that doesn’t run X? To get the most out of the Pi in a ML application, it’s necessary to run programs from the console to avoid the processing overhead of Xorg.

Reply to Brian

Avatar

This is amazing, I will give it a try, great job!

Reply to Felix

Avatar

Any timeframe on when this will be included in the os?

Reply to Jamie scott

Avatar

this is exciting, thanks for the update

Reply to Ray Allen

Avatar

Does this work on 64bit raspberry pi OS and 64 bit Ubuntu ?

Reply to Caleb McCarthy

Avatar

Congratulations to Igalia and the Pi foundation.
Can’t wait to see vulkan games or applications running!
Hope the foundation won’t hesitate to invest on such software developments and improvements.
Great software support is essential for a great hardware!

Reply to Laurent

Avatar

This is fantastic news. Well done to everyone involved.

Reply to Gareth Qually

Avatar

Congratulations.

Happy to finally have Vulkan available. Will be testing it soon, with my existing Vulkan codes. And test zink on Vulkan too!

Also waiting patient for Vulkan 1.2 support. ;)

Reply to Witek

Avatar

Congratulations!
Is 64-bit raspbian out of beta yet? And if so, does this work on it?

Reply to Q

Avatar

Congrats on the development! I’ve been testing since the source since it was first available and have been learning Vulkan as well.

Reply to Andrew Falcon

Avatar

Congratulations! That’s great news. To unleash the power of Raspberry Pi 4, a working 64 bit distro (64bit kernel+userland) is necessary. The power of SIMD NEON units in the CPU is held back by a 32 bit system.

Reply to CooliPi

Avatar

Yes! Great work to all involved! Can’t wait to get this upstreamed into LineageOS and have it compiling. If HW acceleration can finally be activated, then look out! Android on Pi as a viable environment will become a reality, perhaps even become the primary desktop for some. Though with only Vulkan 1.0 it remains to be seen if Android 11 will work, or will have to step back to 10.

Reply to Fenil

Avatar

Awesome news! I’ve always wanted to experiment with Vulkan development, so I’m quite excited by this. Is there any word on when Vulkan support will be available in the default GPU driver?

Reply to Grant

Avatar

RE: Awesome news! I’ve always wanted to experiment with Vulkan development

Same here. Suggestion freely given to Rapsberry Pi for their next hard bound publication:

‘Easy as Pi – A Noob’s Guide to Writing Vulkan 3D Games and GFX
(And Other Boring Uses for V6 GPU Acceleration)’

Nothing too fancy, just the basics for first edition. Wonder if it all can be done by this Christmas. Maybe ask Igalia to help. It could be a hot best seller.

Reply to Philip K

Avatar

Yes, I would also be VERY happy to buy a book for noobs wanting to learn this subject.

Reply to Puffergas

Avatar

Could some one explain what this means in English for those new to Linux and the Pi in general?

Reply to Andrew

Avatar

Vulkan is a standard that define an abstraction to drive a GPU (the thing that compute what to display). A standard compliance test is a way to have assurance that the software implementation of that abstraction for some specific hardware is correct. Mesa is standard implementation of Vulkan (and opengl) on Linux. The news is that the code for driving the video core IV is certified so application using the Vulkan api will eventually work on the PI and they will do so when a new Mesa package is released for Raspian.

Reply to Nicolas

Avatar

Well this news is more specific to Pi since Vulkan has been available to Linux for the past 4 years from day one. Vulkan is replacing OpenGL, and Linux on x86 and Android users have been able to migrate to and run Vulkanized 3D games and apps all this time. This accouncement means the Pi 4 has just officially joined that group and jumped into the game, literally. Because one key apsect of Vulkan has been it being reworked to account for mobille platforms which is where the Pi’s ARM cpu really sits in the hardware space, though that line is being blurred with the release of 4/8GB Pi 4 and possible ARM servers on the horizon. That was the idea behind OpenGL ES but it was really pushed out as an afterthought.

This attention to optimizing the same Vulkan api for both high-end and lower spec cpus is very exciting because the Pi 4 could be able to run the same 3D software as their “desktop” counterpart at reasonable performance. With the cheap price point of the Pi 4, this has now given non-professionals, kids, even people in low income countries access to the same next geneneration 3D environment to run or learn GPU coding and computing. Also who knows. If the Pi 4 sees widespread usage and market share as an easily accessible Vulkan platform, companies like Valve may have to take notice. Something like an official ARM Steam client could happen and give the Pi 4 access to the same library of 3D games as Linux x86 – the future for Pi looks bright with so many possibilites…

Reply to Andre

Avatar

Does that mean Blender 3D 2.8+ is coming to Raspberry Pi? That is exciting news, indeed!

Reply to Harry Hardjono

Avatar

Outstanding work!

Reply to Romilly Cocking

Avatar

Great news! A big thanks to the development team.

Reply to Heiko Rolli

Avatar

Amazing news. I’ve been following the Pi for many years so it’s an absolute joy to see you smash this milestone. Thank you for all the hard work you’ve all being doing to achieve this. I can’t wait to see what this unlocks for Pi based desktops.

Reply to Edwin Jones

Avatar

This is great news! :D Congrats and hopefully we’ll see that framerate go much higher.
I wonder, though, where does this leave games and other software that rely on OpenGL when the Pi will run the Vulkan driver?

Reply to Nick

Avatar

For a student project (around IR thermography), I got everything working, in 64 bits, including libtizonia (and Tizonia, without spotify bullshit). The image is Ubuntu mate 20.10, extrelemy well done.

For the record, I had to recompile drm and mesa from master.OpenCV 3.4.0 to 3.4.12 work, including the openGL thing. Even compiz works like on my Intel machine :-)
For the one interested, you’ll be able to use OpenGL ES + both MESA_GLSL_VERSION_OVERRIDE=130
MESA_GL_VERSION_OVERRIDE=3.0
to make custom OpenGL software work. e.g. ImGui (both Vulkan, OpenGL 2.x and OpengL 3.0, everything is ok). Sort of figures, got ~ 5500 using “vblank_mode=0 glxgears” but that’s not representative.
I even can test thermal camera on it (tip : use v4l2loopback), including OpenGL software (see https://framagit.org/ericb/ir_thermography, I derivated from miniDart).
Other : mpv works very well, excepted in 4k@60 vidéo, where I have lot of dropped fps, due to something not orking. I’ll try later with the last ffmpeg changes, per see.

Though, the RPi 4 is still the same : why are the specifications not fully available ?

Reply to ericb

Avatar

Great milestone! It remembers me of a RISC-V workshop in Barcelona when people announced the first boards featuring that architecture capable of running Quake ports on Linux. Anyway, it is great to see that Vulkan continues to gain traction as a viable open-source graphics API.

That could also be useful for building rich visualizations of ML data collected with things like the Adafruit addon people presented the other day.

Reply to Lucas Morais

Leave a Comment