How Does Parallels Desktop Work with Mac Video Cards?

76 users found this article helpful


How Parallels Desktop works with video cards

Parallels Desktop has no access to Mac's physical graphics cards. Instead, Parallels Display Adapter driver (which is part of Parallels Tools installation) interfaces with virtual hardware and provides 3D acceleration features. The actual acceleration is achieved by translating DirectX commands from guest OS to OpenGL API on macOS side.

Most of Macs have an integrated graphics, which is built-in to motherboard and shares memory with the CPU, it provides a more economical alternative to the stand-alone card, known as "discrete graphics" or "dedicated graphics". In this case Parallels Desktop will use the resources of Mac's built-in graphics.

Working with discrete graphics card

If your Mac has discrete graphics, Parallels Desktop can use macOS 'Automatic graphics switching' for its virtual machine(s). To learn more about the feature please visit Apple's KB HT202043.

NOTE: Parallels Desktop does not control when to switch between graphics cards, this decision is taken by macOS.

To make sure this option is enabled go to virtual machine configuration window -> Hardware -> Graphics - Advanced Settings

Working with two or more cards

The main purpose of Crossfire (by ATI/AMD) and SLI (by NVIDIA) technologies is to unify pair of 3D accelerators in the sake of increased performance. That way applications keep using standard API (OpenGL or DirectX) and the driver splits tasks between two physical video cards. It is rather a simplicity, because some tasks may be split more efficiently than others. It is explained more precisely in specific guidelines for developers. However, the main point is still there – it is driver’s work to split tasks between video cards, as only driver can optimize input data for video cards, synchronize card’s work and only it has required data regarding technical specifications.

Apple uses its own video driver for macOS. This is the reason why macOS is not supporting Crossfire, nor the SLI. Contrary to Windows where drivers belong to vendors, in Mac drivers belong to Apple (even though developed in collaboration with vendors) and features are controlled by Apple as well. That, basically, means that Mac OS X and it’s drivers can be considered as the one, hence cannot be split. That is why Mac OS X applications consider two video cards working in tandem as two separate video cards. And it is up to these applications to somehow split tasks between two cards, or just use one instead.

Since Parallels video card is virtual and relatively high-level (we do not work with hardware directly, but via API or OpenGL instead), it is not possible to effectively split tasks between two video cards as we are not emulating SLI/Crossfire. In theory (just in theory!) we could map both video cards to guest OS and somehow allow applications to use it. But there is no practical need for that as there is very tiny amount of peculiar Windows applications that could utilize two cards (because it is much more complicated process than SLI/Crossfire).

Was this article helpful?

Tell us how we can improve it.