Please, there is nothing to compromise about.
Nvidia doesn't want to work with the kernel community. They don't want to document how their driver works. They don't want people to look at how their driver works. They don't even want people to develop alternative drivers for their cards.
Nvidia earned 100% of the bad blood existing between them and the kernel community. They are even worse to work with than Qualcomm. Should give you an idea of how bad they are.
No, it's just a matter of economics.
Linux does not, because they want all drivers to be inlined (included in the kernel) and open source. nVidia does not want to release their trade secrets, so they don't want to open source their drivers.
(No idea about macOS)
I'm not sure what AMD really managed here.
https://www.phoronix.com/scan.php?page=article&item=rx590-li...
Last I heard, people were installing Linux to use the AMD OpenGL drivers to play emulators (it might have been Cemu, actually ran trough wine).
[1]: XDC2019 slide deck https://xdc2019.x.org/event/5/contributions/334/attachments/...
I thought these were hardware companies.
Seriously though, one of the pleasurable things about using macOS is that you don't have to worry about hardware compatibility. Because there is none, outside the small list of parts officially supported by Apple itself. There are some NVidia cards on that list, yes.
Sure this is almost true, but not quite - there is obviously Linux specific code to support X11 and VDPAU that isnt in the Windows driver, for example. Of course, NVIDIA can decide to not support open drivers, or not support Wayland in their closed drivers, and as a consumer I can choose not to buy their products.
Linux has modules, and had very good support for out of tree modules.
The same is true of AMD, they share most of their display configuration code (in the kernel) and userspace code between a set of drivers on Windows, Linux, and macOS; they just also publish documentation and redistributable firmware, and maintain a second very-high-quality driver in Mesa, and due to the availability of documentation and that Mesa GL driver, there is a second Vulkan driver (RADV) which is also excellent.
Linux community on other hand wants nVidia to restructure their driver just to fit Linux model and essentially lose the source parity or publish the source completely. It's not an invalid request, because nVidias APIs don't really fit into Linux kernel design and userspace APIs. It's also not very likely to happen, especially due to poisonous behaviour of kernel maintainers towards nVidia, unwilligness to compromise and nVidias refusal to add more resources to refactor the driver.