A project I have a very keen eye on is NVK, the open source NVIDIA Vulkan driver developed by the community (not NVIDIA), and it seems like progress on it is going rather well. Developer Faith Ekstrand wrote a bit on the Collabora blog, detailing work that has been done since the original introduction post back in October last year.
Some highlighted feature improvements:
- Support for Maxwell and Kepler GPUs. Karol Herbst posted a merge request adding handling various state setup bits needed for shaders on older hardware back in August. However, even though Karol's branch existed for a while, it stopped working when I added a hard dependency the MME (Macro Method Expander) for draws and clears. Pre-Turing hardware support was finally unblocked by Mary and her work enabling the MME on older hardware. I also spent a week or two in December on Maxwell bug-fixing and it's not too far off Turing these days in terms of CTS pass rates.
- Geometry, Tessellation, and transform feedback. While not required for Vulkan 1.0, these are pretty important features for running modern games. The codegen compiler back-end already supports them so that part was done. In November or so, George Ouzounoudis did the work to plumb them through NVK and enable the corresponding Vulkan features.
- Thomas Anderson implemented VK_KHR_draw_indirect_count as well as flipping on a bunch of smaller extensions.
- Echo has been playing around with NVK+DXVK a bit and has succeeded in getting some games playing. It's still early days and requires some hacks. However, there are a few titles working and I was able to demo Hollow Knight and F1 2017 at the Collabora meet-up in May.
- Mohamed Ahmed is currently working on VK_KHR_sampler_ycbcr_conversion as his GSoC internship project.
There's also support for a great many more extensions, which means they're close to bumping up the version of Vulkan supported from 1.0 to potentially 1.3.
A lot of work is still to go, as it's not yet passing the conformance tests but all the work that has gone into the driver has meant "60% more" tests actually run compared with last year. No current timeline on when to expect NVK to be upstreamed into Mesa directly though, as it's coming along with a needed new kernel API.
As for the current performance? That's still to be worked on, as most of the work is just going into getting it all working with multiple problematic performance areas noted in the blog post. Work is also ongoing on a new back-end compiler for NVIDIA hardware, code-named NAK or Nvidia Awesome Kompiler.
There's a lot more in the post that's worth a full read.
Fun to see especially for me, as today is another day of booting up the GamingOnLinux work machine to be greeted by NVIDIA proprietary driver problems. Although it's not alone in problems. Today is just bug day apparently.