Overview of the Open Source Vulkan Driver for Raspberry Pi 4

Overview of the Open Source Vulkan Driver for Raspberry Pi 4

Linux Foundation via YouTube Direct link

Not much performance work yet. - Mostly for the Quake games. - VkQuake3 much faster than its GL1 renderer.

7 of 14

7 of 14

Not much performance work yet. - Mostly for the Quake games. - VkQuake3 much faster than its GL1 renderer.

Class Central Classrooms beta

YouTube videos curated by Class Central.

Classroom Contents

Overview of the Open Source Vulkan Driver for Raspberry Pi 4

Automatically move to the next video in the Classroom when playback concludes

  1. 1 Overview of the Open Source Vulkan Driver for Raspberry Pi 4
  2. 2 Development story . Current state Implementation challenges • Future plans . Contributing
  3. 3 Driver code name: V3DV. • Development started in a public fork of Mesa. • Leverages Mesa Vulkan WSI. • Expands existing V3D NIR compiler. . Same kernel interface as V3D.
  4. 4 Initial early milestone to render on hardware. • Vulkan CTS to help iterative feature development - Requires minimal functionality in the driver first. - Helped improve CTS coverage.
  5. 5 Growing subset of CTS for regression testing. - Parallel deqp runner for faster execution. - Currently -10K tests (-10% of CTS pass list). • Weekly rebases and full CTS runs. • Assert everywhere phil…
  6. 6 Vulkan 1.0 mandatory feature set complete. - A bunch of optional features too. - Many optional features and extensions missing. . Current focus on CTS conformance. - Passing -110K tests, -4 fails to …
  7. 7 Not much performance work yet. - Mostly for the Quake games. - VkQuake3 much faster than its GL1 renderer.
  8. 8 Aware of some slow paths in the driver. - Particularly for some cases of transfer ops. - Possibly underused TFU unit.
  9. 9 Vulkan expects everything to execute in GPU. - Not quite possible for us in a few selected cases. - Caused some implementation churn. - Incurs in additional coordination (flushes).
  10. 10 Linear display pipeline in Raspberry Pi 4 - V3D cannot sample from linear images. - For now, we don't support sampling on swapchains. - We should be able to sample in windowed mode when running insid…
  11. 11 formats for optimal performance. - We don't know formats until descriptors are bound. Pre-compile 2 shader variants in advance. • Optimal case: use 16-bit return size • Fallback case: use 32-bit retu…
  12. 12 Optimal path requires PCI GPU and VK_EXT_pci_bus_info. - Raspberry Pi display device is not a PCI device. • We just want to check that DR13 device matches. - RFC MR with a solution proposed.
  13. 13 Long term: - Explore better TFU unit usage. - Better WSI platform support. - Optimal implementation of input attachments. - Optional features & extensions - Maybe Vulkan 1.1?
  14. 14 Improve code reuse with GLES driver. - Maybe port some features to GLES driver

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.