mesa/src/asahi
Alyssa Rosenzweig 5bc8284816 hk: add Vulkan driver for Apple GPUs
Honeykrisp is a Vulkan 1.3 driver for Apple GPUs. It currently support M1 and
M2, future hardware support is planned. It passed CTS a few months ago and with
two exceptions[1] should still pass now.

Compared to the May snapshot that passed conformance [1], this adds a bunch of
new features, most notably:

* Geometry shaders
* Tessellation shaders
* Transform feedback
* Pipeline statistics queries
* Robustness2
* Host image copy

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. Please
read [3].

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.

[1] Pipeline robustness and pipeline statistics are included in this tree but
    need bug fixes in the CTS to pass. This is being handled internally in
    Khronos. These features may be disabled to get a conformant driver.

[2] https://rosenzweig.io/blog/vk13-on-the-m1-in-1-month.html

[3] https://dont-ship.it/

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30382>
2024-07-26 18:40:47 +00:00
..
clc format: Generate endian-independent format aliases 2024-07-19 13:50:42 +00:00
compiler format: Generate endian-independent format aliases 2024-07-19 13:50:42 +00:00
drm-shim asahi: add broken bits of unstable Linux UAPI 2024-06-14 15:44:30 +00:00
genxml asahi: offset buffer images in software 2024-07-26 18:40:47 +00:00
layout ail: add ail_get_level_size_B helper 2024-07-26 18:40:47 +00:00
lib libagx: rework tess i/o 2024-07-26 18:40:47 +00:00
vulkan hk: add Vulkan driver for Apple GPUs 2024-07-26 18:40:47 +00:00
.clang-format clang-format: Disable formatting by default 2023-08-13 16:48:49 +02:00
.editorconfig asahi: Add .editorconfig for CL files 2024-01-10 08:44:37 -04:00
meson.build hk: add Vulkan driver for Apple GPUs 2024-07-26 18:40:47 +00:00