I’ve been silent here for quite some time, so here is a quick summary of some of the new functionality we have been exposing in V3DV, the Vulkan driver for Raspberry PI 4, over the last few months:
- VK_KHR_bind_memory2
- VK_KHR_copy_commands2
- VK_KHR_dedicated_allocation
- VK_KHR_descriptor_update_template
- VK_KHR_device_group
- VK_KHR_device_group_creation
- VK_KHR_external_fence
- VK_KHR_external_fence_capabilities
- VK_KHR_external_fence_fd
- VK_KHR_external_semaphore
- VK_KHR_external_semaphore_capabilities
- VK_KHR_external_semaphore_fd
- VK_KHR_get_display_properties2
- VK_KHR_get_memory_requirements2
- VK_KHR_get_surface_capabilities2
- VK_KHR_image_format_list
- VK_KHR_incremental_present
- VK_KHR_maintenance2
- VK_KHR_maintenance3
- VK_KHR_multiview
- VK_KHR_relaxed_block_layout
- VK_KHR_sampler_mirror_clamp_to_edge
- VK_KHR_storage_buffer_storage_class
- VK_KHR_uniform_buffer_standard_layout
- VK_KHR_variable_pointers
- VK_EXT_custom_border_color
- VK_EXT_external_memory_dma_buf
- VK_EXT_index_type_uint8
- VK_EXT_physical_device_drm
Besides that list of extensions, we have also added basic support for Vulkan subgroups (this is a Vulkan 1.1 feature) and Geometry Shaders (we use this to implement multiview).
I think we now meet most (if not all) of the Vulkan 1.1 mandatory feature requirements, but we still need to check this properly and we also need to start doing Vulkan 1.1 CTS runs and fix test failures. In any case, the bottom line is that Vulkan 1.1 should be fairly close now.
Great work! I’m a total newbie to this and was wondering what the limits are for this sort of thing. For instance, are there extensions that just can’t be implemented in GPU (I assume so), and does that mean you have to implement them partially in CPU?
Generally speaking, if a extension provides a GPU feature that is not natively available in your GPU you probably won’t implement that feature. All the extensions I am listing here are implemented in the GPU (for those that implement GPU features). Some of the extensions are not exactly about exposing new GPU features and have more to do with improving the shading language or integrating with the native OS, and these are implemented mostly on the CPU, because they are CPU features.
Is possible install it in rpi3b+ ??
I install box86 and steam. For now only can run shadow warrior.
No, Vulkan is only supported on Raspberry Pi 4.
Hi, can you tell if it’s already possible to use Vulkan on RPI4 without X ? Like it is possible to use gles on RPI3 from cli ? Thanks you!
Hi Leon, yes this should work. I checked that we were able to run the vkcube demo without X when support for VK_KHR_display was added.
Alright, thanks, going to try it out ! 🙂
Thank you for all blog posts. I’ve been silently following the progress and am really impressed by all the work you’ve done! Thanks for all the hard work. I just bought my first Pi 4, so I’ll be experimenting with the new V3D stuff soon.