Skip to content

nine: add asahi as a supported driver

Martell requested to merge martell/mesa:asahi-nine into main

Asahi support for nine

Now that we are seeing things like 4k kernel emulation people are starting to look at games on Asahi.
We probably won't have a Vulkan driver for awhile that can run dxvk as that is a large undertaking. ref #4792
The Opengl driver is in great shape so Nine seems like the easy short term path to some directx support.

Screenshot_20231015_134957

I ran Nine tests locally as I iterated on this, this is the current status.
Still more todo to get to 100% but some tests are also bad and I do not know where to upstream my fixes.

Total 19571
succ: 19394
fail: 158
skip: 19

To run build this people will have to configure meas like this (but also have the UAPI form asahi/mesa)

meson build64 --libdir lib64 --prefix $HOME/mesa -Dgallium-drivers=asahi -Dgallium-nine=true -Dosmesa=false -Dvulkan-drivers= -Dbuildtype=release

Reviewer Notes:

The HACK commits are not intended for review, these are there because nine tests does not like asserts
@dh I used your nine tests fork on github for running these

Some of these commits are general nine commits and will also help nine on other drivers like v3d falling back to PIPE_CAP_NIR_COMPACT_ARRAYS when PIPE_CAP_CLIP_HALFZ is not available so can pull some of these into another PR and merge when they are approved. ref: !22644 (merged)

I also can't find any asahi ci jobs for cts to see if it is okay to just enable PIPE_CAP_NIR_COMPACT_ARRAYS
I'll have to figure out how to run that locally so consider that a HACK patch unless people tell me otherwise. Here is a reference to all the other implementations
v3d: 8fb16b88 freedreno: b76c6dcb zink: 8edd3577 iris: edd3ce5a d3d12 bd64669f

Edited by Martell

Merge request reports