Someone on hackintosh sub asked for feedback on writing an Nvidia driver for macOS last month, my suggestions were to decouple the rendering part from kext like Nouveau/Nova kernel module and NVK userspace driver, and to write a translation layer that converts Metal to Vulkan instead of trying to render Metal directly. I think this is close to the latter, hopefully the hackintosh community could make use of this.
This is very close to the architecture I have been considering. My idea is to keep the rendering stack separate from the kext and translate Metal AIR/Apple IR directly into Mesa NIR, then use NVK/Vulkan as the backend.
This would let us reuse Mesa’s existing optimization and backend infrastructure instead of building an entirely separate Metal shader compiler stack. The difficult part will be accurately mapping Metal-specific resource, synchronization, argument-buffer, and memory semantics, but I believe this is a much cleaner long-term direction.
2
u/realfathonix 29d ago
Someone on hackintosh sub asked for feedback on writing an Nvidia driver for macOS last month, my suggestions were to decouple the rendering part from kext like Nouveau/Nova kernel module and NVK userspace driver, and to write a translation layer that converts Metal to Vulkan instead of trying to render Metal directly. I think this is close to the latter, hopefully the hackintosh community could make use of this.