Open-Source Apple GPU Vulkan Driver Merged For Mesa 24.3
([Mesa] 4 Hours Ago
Apple Vulkan Driver In Mesa)
- Reference: 0001481625
- News link: https://www.phoronix.com/news/Apple-Vulkan-Driver-Mesa-24.3
- Source link:
Merged today for Q4's Mesa 24.3 feature release is a brand new open-source Vulkan driver: Honeykrisp, the driver providing Vulkan API support for Apple Silicon GPUs as part of the Asahi Linux effort.
Honeykrisp is the reverse-engineered, Vulkan driver for Apple GPUs that was started by Alyssa Rosenzweig. As written about in early June, [1]Honeykrisp is a new Vulkan driver derived from the NVK sources as what was the NVIDIA open-source Vulkan driver quickly forming in Mesa as a modern driver implementation.
Before getting too excited about this Vulkan API driver for Apple Silicon GPUs being merged, there's a host of caveats at the moment...
First, this Vulkan 1.3 driver only works now on Apple M1 and M2 SoCs. Support for newer (M3 / M4) SoCs will come at a later date.
Besides being limited to the earlier Apple Silicon SoCs, there's another big factor to consider: the performance is subpar for right now and it's not recommended for end-users in current form. Alyssa wrote in the Honeykrisp commit:
"Theoretically, we now support everything DXVK requires for D3D11 with full FL11_1. To quote Rob Herring:
How's performance? Great, because I haven't tested it.
This driver is NOT ready for end users... YET. Stay tuned, it won't be long now :}
I would like to reiterate: Honeykrisp is not yet ready for end users.
...
Regardless, as the kernel UAPI is not yet stable, this driver will refuse to probe without out-of-tree Mesa patches. This is the same situation as our GL driver.
On the Mesa side, the biggest todo before the release is improving performance. Right now, I expect WineD3D with our GL4.6 driver to give better performance. This isn't fundamental, just needs time ... our GL driver is 3 years old and honeykrisp is 3 months old.
On the non-Mesa side, there's still a lot of movement around krun and FEX packaging before this becomes broadly useful for x86 games.
At any rate, now that I've finished up geometry and tessellation, I'm hopefully done rewriting the whole driver every 2 weeks. So I think this is settled enough that it makes sense to upstream this now instead of building up a gigantic monster commit in a private branch."
So it's exciting this nearly ten thousand lines of new code Vulkan driver has been [2]merged for Mesa 24.3 (not the upcoming Mesa 24.2 release premiering in August), but it's not yet ready for end-users to light up their Apple Silicon GPUs with Vulkan API workloads on Linux.
[1] https://www.phoronix.com/news/Honeykrisp-Apple-Vulkan-Driver
[2] https://gitlab.freedesktop.org/mesa/mesa/-/commit/5bc828481630147575348b66677edaade9e891e6
Honeykrisp is the reverse-engineered, Vulkan driver for Apple GPUs that was started by Alyssa Rosenzweig. As written about in early June, [1]Honeykrisp is a new Vulkan driver derived from the NVK sources as what was the NVIDIA open-source Vulkan driver quickly forming in Mesa as a modern driver implementation.
Before getting too excited about this Vulkan API driver for Apple Silicon GPUs being merged, there's a host of caveats at the moment...
First, this Vulkan 1.3 driver only works now on Apple M1 and M2 SoCs. Support for newer (M3 / M4) SoCs will come at a later date.
Besides being limited to the earlier Apple Silicon SoCs, there's another big factor to consider: the performance is subpar for right now and it's not recommended for end-users in current form. Alyssa wrote in the Honeykrisp commit:
"Theoretically, we now support everything DXVK requires for D3D11 with full FL11_1. To quote Rob Herring:
How's performance? Great, because I haven't tested it.
This driver is NOT ready for end users... YET. Stay tuned, it won't be long now :}
I would like to reiterate: Honeykrisp is not yet ready for end users.
...
Regardless, as the kernel UAPI is not yet stable, this driver will refuse to probe without out-of-tree Mesa patches. This is the same situation as our GL driver.
On the Mesa side, the biggest todo before the release is improving performance. Right now, I expect WineD3D with our GL4.6 driver to give better performance. This isn't fundamental, just needs time ... our GL driver is 3 years old and honeykrisp is 3 months old.
On the non-Mesa side, there's still a lot of movement around krun and FEX packaging before this becomes broadly useful for x86 games.
At any rate, now that I've finished up geometry and tessellation, I'm hopefully done rewriting the whole driver every 2 weeks. So I think this is settled enough that it makes sense to upstream this now instead of building up a gigantic monster commit in a private branch."
So it's exciting this nearly ten thousand lines of new code Vulkan driver has been [2]merged for Mesa 24.3 (not the upcoming Mesa 24.2 release premiering in August), but it's not yet ready for end-users to light up their Apple Silicon GPUs with Vulkan API workloads on Linux.
[1] https://www.phoronix.com/news/Honeykrisp-Apple-Vulkan-Driver
[2] https://gitlab.freedesktop.org/mesa/mesa/-/commit/5bc828481630147575348b66677edaade9e891e6
sophisticles