RPi-VK-Drive: the GPU controller with Vulkan support for older RPI boards

Some time ago, the Raspberry Pi foundation, together with Igalia, they made known joint work to the general publicor on the development of a Vulkan driver for Raspberry Pi boards in which initially they said that this would be compatible only with the newest board which is the "Raspberry Pi 4" and that is how they started the initial stage of development and which does not mention as such a specific date of when it would be ready the controller or about when it would be suitable to launch some real applications.

The only thing they mentioned was that this could be possible in the second half of 2020, within controller specifications It was mentioned that this is limited to the VideoCore VI graphics accelerator support, used from the Raspberry Pi 4 model and that could not be compatible with older plates, that is to say from the 3b + model backwards they were discarded.

Furthermore, they mentioned that, compared to OpenGL, the use of Vulkan can improve the performance of graphics applications and games.

With this news, many fans and owners of a Raspberry Pi that was not the model 4, were disappointed because they felt that they were put aside and that they practically announced that it is no longer worth working on continuing to support any of these boards.

But, now in more recent news, it seems that things have changed as a developer came to prove otherwise.

About RPi-VK-Driver 1.0

Martin Thomas, an NVIDIA engineer was responsible for the development of RPi-VK-Driver which is an open controller that in the words of its author:

"The controller was developed by, however development was carried out as a personal project, unrelated to NVIDIA (the controller was developed the last two years in his spare time)."

This first version The open driver RPi-VK-Driver 1.0 is distributed under the MIT license and in the Vulkan graphics API support is implemented for older Raspberry Pi boards that ship with the Broadcom Videocore IV GPU.

The controller It is suitable for all Raspberry Pi board models released before Raspberry Pi 4.

Of the supported models, the following are mentioned in the repository:

  • Zero
  • Zero w
  • 1 model A
  • 1 model A +
  • 1 model B
  • 1 model B +
  • 2 Model B
  • 3 Model A +
  • 3 Model B
  • 3 Model B +
  • Compute Module1
  • Compute Module 3
  • Compute Module 3 lite
  • 3 + Compute Module
  • Compute Module 3+ lite

Since the capabilities of the VideoCore IV GPU, that are equipped with older Raspberry Pi models, they are not enough for full Vulkan implementation, the controller implements only a subset of the Vulkan API, which does not cover the whole standard, but try to follow it as far as the team allows.

However, the available functionality is sufficient for many applications and games, and performance is far ahead of OpenGL drivers due to more efficient memory management, multi-threaded processing of GPU commands, and direct control of GPU operations.

The controller also supports functions like MSAA (multi-sample anti-aliasing), low-level shaders and performance counters. Of the limitations, there is a lack of support for GLSL shaders, which are not yet available at this stage of development.

As for the author, we can highlight that he was also in charge of publishing the Quake 3 game port for Raspberry Pi, which serves as a demonstration of the capabilities of the new controller.

The game is based on the ioQuake3 engine, to which was added a modular rendering backend based on Vulkan, originally developed by the Quake III Arena Kenny Edition project. By using the new controller in the game, it was possible to render more than 100 frames per second (FPS) on the Raspberry Pi 3B + board at 720p output.

Finally, regarding the implementation of this controller as well as to know more information about it, you can check the controller repository in the following link


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.