3 ms·
Correct, the built-in drivers only cover the "Kepler" architecture, as that was the last one that Apple used in a Mac. The 3rd party Nvidia drivers which suppor
by pmjordan 7y ago
Correct, the built-in drivers only cover the "Kepler" architecture, as that was the last one that Apple used in a Mac. The 3rd party Nvidia drivers which support more modern GPUs are only offered up to macOS 10.13 High Sierra.
The technical background for this is that Metal and OpenGL acceleration requires the GPU driver bundle to be loaded into a process's address space. (effectively a dynamic library) With 10.14, Apple has enabled the "library-validation" codesigning flag just about everywhere, which means that only libraries signed by the same developer as the process's main executable or by Apple can be loaded into a process. Hence, 3rd party GPU drivers won't load in WindowServer for example, which makes them dead in the water.
Apple could of course implement an exception or sign Nvidia's driver, but so far it looks like they're not interested. Perhaps there will be a solution to coincide with release of the new Mac Pro which once again contains PCIe slots you conceivably might want to fill with Nvidia cards, but I wouldn't count on it.
(FWIW, my company maintains the macOS driver for one of 2(?) manufacturers of USB graphics adapter chips, so I have a pretty good idea of how the macOS graphics stack works.)
- leemailll 7y agoSomeone on reddit suspect apple’s stance against Nvidia in this driver signing carnage is because they are not happy with Nvidia about cards in MacBook Pro
- ianai 7y agoWhat did nvidia do?
- deleted 7y ago[deleted]
- jdietrich 7y agoThere was a lawsuit and a recall program because of the premature failure of Nvidia GPUs in 2008 to 2010 MBPs. https://www.macworld.com/article/1154456/nvidiagpu-macbookpro.html https://www.macworld.com/article/1154456/nvidiagpu-macbookpr...
- giobox 7y agoThey screwed over much of the laptop industry in the late 2000s. Google "Nvidia bad bumps fiasco" or "Nvidia bumpgate". This left the major computer vendors (Dell/HP/Apple etc) with very large bills due to the high failure rate of these Nvidia GPUs in laptops. It was right after this that Apple stopped using Nvidia, I've always assumed bad blood over this was a major factor. The cost to Nvidia ended up in the hundreds of millions (based on charges one can see in quarterly filings from this time), the total cost of the failures industry wide is pretty hard to establish given laptop manufacturers weren't exactly in a rush to let customers know the extent of the issues...
- pmjordan 7y agoAs a driver developer, I've been on the receiving end of stuff breaking due to changes in macOS many a time. Based on my experience, I find it much more likely that Apple simply does not care about this problem/does not consider it a problem. By that I mean they are not willing to assign developer resources to the situation because from their point of view it is not a supported configuration, plain and simple. The fact that it ever worked is largely accidental as far as they are concerned. One of their highest priorities at the moment appears to be to remove any 3rd party code running in the context of Apple processes. For examples, you don't need to look far: kext -> DriverKit/System Extension transition, hardened runtime, etc. The Nvidia driver breaking is just a consequence of that increasing lockdown. The simplest solution would be to allow nvidia's code to run in the context of core system and user processes again (kernel, WindowServer, just about any GUI app) which presumably is not palatable to them or they wouldn't have made the change in the first place. The alternative would be to farm this type of driver out into a sandboxed user process. (Nowadays this means DriverKit.) Aside from potential performance issues, this would be a lot of work, so it's probably never going to happen unless literally millions of end users start complaining.