Ipotrick / Daxa

Daxa is a convenient, simple and modern gpu abstraction built on vulkan
MIT License
381 stars 28 forks source link

Daxa on MacOS #55

Open GabeRundlett opened 1 year ago

GabeRundlett commented 1 year ago

We would like to support Daxa on as many platforms as possible, but it is by no means our main priority. Daxa will not downgrade its API due to the lack of support for any features on lesser platforms. Some work has been done regarding MacOS support, though there are some big issues that prevent Daxa from working completely on MacOS.

Currently, the following lack of consideration for bindless through updating bound descriptor sets makes bindless unusable for now. This should be a pretty trivial fix within MoltenVK since Metal should support bindless fully. (2023 m2 Mac mini)

Also, Daxa requires Vulkan 1.3 support - and MoltenVK isn't there yet. Sync2 is the most relevant one for Daxa.

Just as a note, 64 bit integer atomics look like they may never be supported in Metal/MoltenVK... this is really sad.

AndreaCicca commented 1 year ago

Just as a note, 64 bit integer atomics look like they may never be supported in Metal/MoltenVK... this is really sad.

Maybe can be supported, but only on M2 class HW discussion

GabeRundlett commented 1 year ago

It can't for now. On M2 the only thing they support is 64 bit min/max, and those operations don't even return the previous value. this is linked in the linked reddit thread, which shows that the Unreal team managed to create a 32 bit workaround to their compute rasterization https://github.com/philipturner/ue5-nanite-macos/blob/main/AtomicsWorkaround/README.md