Ahead of a modular Mac Pro, Apple said to ready a dedicated API for writing device drivers

Apple is readying a new developer API for writing macOS device drivers, but what does it have to do with a rumored modular Mac Pro that could be previewed at WWDC 2019 on June 3?

In a word, a lot!

9to5Mac‘s Guilherme Rambo reports that macOS 10.15 includes a new API developers can use to write device drivers. Let me briefly explain why this is a very big deal.

The low-level device drivers layer allows macOS to communicate with hardware devices attached to your computer and chips on its logic board, such as the GPU. Each device, like a mouse or a printer, has its own driver. Apple offers an object-oriented framework for developing device drivers, called the I/O Kit framework, that’s both modular and extensible.

macOS architecture, in broad strokes

A manufacturer can use these I/O kit resources to create a custom macOS driver for their device in an officially sanctioned way. Graphics cards, PCI and PCIe cards, scanners and printers typically require custom macOS drivers in order to work with your computer.

When it comes to graphics, third-party support is severely limited. Basically, Apple writes its own drivers—and just for the specific GPUs that ship in Macs. A few years back, it stopped using Nvidia GPUs altogether so newer Macs are limited to Intel or AMD graphics.

This has created problems for creative pros who often prefer to take advantage of Nvidia’s fantastic graphics cards to accelerate video editing and other demanding work. If you’re someone who owns a “tower” Mac Pro (it came before the cylindrical MacPro 6,1 model), you could use Nvidia’s PCI-E graphics card internally with their web driver.

Nvidia’s GeForce GPU in a MacBook Pro from 2008

Unfortunately, that’s no longer the case with the latest macOS Mojave software. As a result, demanding customers who need Nvidia are now forced to downgrade to macOS High Sierra, which sounds especially stupid given Mojave’s rich support for external GPUs, or eGPUs.

As AppleInsider put it:

This decision makes absolutely no sense with eGPUs now being explicitly supported in macOS. They work fine in Windows, so it’s not a technical limitation. Some tasks perform better on AMD and some on Nvidia, it is a fact of silicon. There is no reason beyond marketing and user-funneling to prohibit use of the cards on a software level.

No, there aren’t a ton of eGPU installs. Yes, a good portion of those users are fine with AMD cards. But, it is absolutely overly user-hostile to not allow Nvidia to release the drivers not just for future eGPU use, but for the non-zero percent of those users who are keeping the old Mac Pro alive.

As AppleInsider separately noted, the only two Nvidia cards that continue to work with Mojave are the older GeForce GTX 680 and the Quadro K5000 models. But why is it that now, in 2019, there aren’t any functional Nvidia drivers for Mojave at all?

It’s Apple’s fault, Nvidia publicly acknowledged in 2018:

Developers using Macs with Nvidia graphics cards are reporting that after upgrading from macOS High Sierra 10.13 to MacOS Mojave 10.14 they are experiencing rendering regressions and slow performance.

Apple fully controls drivers for macOS.

Unfortunately, Nvidia currently cannot release a driver unless it is approved by Apple. Our hardware works on High Sierra 10.13 which supports up to (and including) Pascal.

AppleInsider spoke with several dozen developers inside who feel that higher levels of the company killed support for Nvidia’s higher-end cards. According to one developer:

It’s not like we have any real work to do on it, Nvidia has great engineers. It’s not like Metal can’t be moved to Nvidia with great performance.

Somebody just doesn’t want it there.

That “somebody” probably management.

In other words, for legal and licensing reasons Apple at some point decided to drop Nvidia and use AMD GPUs in Macs. But we’ve been told to expect a modular Mac Pro this year and “modular” implies the ability to swap the CPU, GPU, memory, storage and other components.

With that in mind, releasing a modular pro desktop that doesn’t accept Nvidia cards because Apple isn’t allowing Nvidia to write its own macOS drivers just won’t cut it in 2019.

I think Apple is aware they’re skating on thin ice. And I think they’ve waited until all pieces of this technological puzzle have fallen in place before addressing the problem. Therefore, a whole new API in macOS 10.15 to address the GPU/Nvidia situation makes lots of sense.

Agreed?

Photo: Nvidia’s Titan Xp works on a PCI-E Mac Pro and is supported through High Sierra