Vulkan on Raspberry Pi 3


Raspberry Pi - Vulkan

Few days ago, an experimental Vulkan driver for Raspberry Pi has been released HERE.

RPi-VK-Driver is a low level GPU driver for the Broadcom Videocore IV GPU that implements a subset of the Vulkan (registered trademark of The Khronos Group) standard. The implementation is not conformant to the standard (therefore it cannot be called a Vulkan driver, officially) but tries to follow it as closely as the hardware allows for it.

This driver supports the VideoCore IV, the GPU available on Raspberry Pi 1, 2 and 3.

I updated a bit the Vulkan plugin of GeeXLab and compared to the first time I tested Vulkan on RPi 4, I got better results… in the log file!

I tested this VK driver on a Raspberry Pi 3 with a fresh RaspiOS (2020-05-27).

According to the error message I got, it looks like this driver can’t work with X server running at the same time. When I tried to launch a simple clear window demo in Vulkan, the following message was printed in the terminal:

cannot set CRTC for connector 29: Permission denied

The author of the driver recommends to launch Vulkan demos from pure console mode:

if boot mode is set to Desktop, you’ll need to switch tty console (eg. ctrl+alt+f1) for modesetting to work. Otherwise X won’t let you do display modesetting. You can return to your desktop using ctrl+alt+f7.

GeeXLab needs a X11 window to run an OpenGL or Vulkan demo and is not ready to play with this driver. BUT a Vulkan instance has been created and properly initialized. Here is an extract of GeeXLab log file:

17:01:59(0000032)	[info ]	[Vulkan2] Vulkan renderer plugin (Windows, Linux)
17:01:59(0000033)	[info ]	[Vulkan2] Vulkan core library (libvulkan.so.1) loaded ok.
17:01:59(0000034)	[info ]	[Vulkan2] Instance extensions: 4
17:01:59(0000035)	[info ]	[Vulkan2] - 1/ VK_KHR_surface (spec version: 25)
17:01:59(0000036)	[info ]	[Vulkan2] - 2/ VK_KHR_display (spec version: 21)
17:01:59(0000037)	[info ]	[Vulkan2] - 3/ VK_EXT_debug_report (spec version: 9)
17:01:59(0000038)	[info ]	[Vulkan2] - 4/ VK_EXT_debug_utils (spec version: 1)
17:01:59(0000039)	[info ]	[Vulkan2] # instance layers: 0
17:01:59(0000040)	[info ]	[Vulkan2] # Vulkan devices: 1
17:01:59(0000041)	[info ]	[Vulkan2] [ GPU 0 ]--------------------------------------
17:01:59(0000042)	[info ]	[Vulkan2] - GPU name: VideoCore IV HW
17:01:59(0000043)	[info ]	[Vulkan2] - DeviceID: 14E4-5250
17:01:59(0000044)	[info ]	[Vulkan2] - Raw driver version: 1
17:01:59(0000045)	[info ]	[Vulkan2] - Vulkan API version: 1.1.0
17:01:59(0000046)	[info ]	[Vulkan2] - Device type: VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
17:01:59(0000047)	[info ]	[Vulkan2] - Memory heap count: 1
17:01:59(0000048)	[info ]	[Vulkan2] 		heap 0 - size: 250 MB
17:01:59(0000049)	[info ]	[Vulkan2] - Device extensions: 8
17:01:59(0000050)	[info ]	[Vulkan2] 		1/ VK_KHR_display_swapchain (spec version: 9)
17:01:59(0000051)	[info ]	[Vulkan2] 		2/ VK_KHR_maintenance1 (spec version: 2)
17:01:59(0000052)	[info ]	[Vulkan2] 		3/ VK_KHR_maintenance2 (spec version: 1)
17:01:59(0000053)	[info ]	[Vulkan2] 		4/ VK_KHR_maintenance3 (spec version: 1)
17:01:59(0000054)	[info ]	[Vulkan2] 		5/ VK_KHR_swapchain (spec version: 70)
17:01:59(0000055)	[info ]	[Vulkan2] 		6/ VK_EXT_debug_marker (spec version: 4)
17:01:59(0000056)	[info ]	[Vulkan2] 		7/ VK_KHR_driver_properties (spec version: 1)
17:01:59(0000057)	[info ]	[Vulkan2] 		8/ VK_KHR_performance_query (spec version: 1)
17:01:59(0000058)	[info ]	[Vulkan2] - Device layers: 0
17:01:59(0000059)	[info ]	[Vulkan2] vkGetPhysicalDeviceDisplayPropertiesKHR - Enumerated displays
17:01:59(0000060)	[info ]	[Vulkan2] Display ID 29
17:01:59(0000061)	[info ]	[Vulkan2] - Display name 1920x1080
17:01:59(0000062)	[info ]	[Vulkan2] - Display width 530
17:01:59(0000063)	[info ]	[Vulkan2] - Display height 300
17:01:59(0000064)	[info ]	[Vulkan2] - Display horizontal resolution 1920
17:01:59(0000065)	[info ]	[Vulkan2] - Display vertical resolution 1080
17:01:59(0000066)	[info ]	[Vulkan2] --- initializing GPU 0...
17:01:59(0000067)	[info ]	[Vulkan2] --- GPU 0 initialized ok

I hope the next time, I could run the RGB triangle demo!





Leave a Comment

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