How does Parallels Desktop for Mac work with Mac video cards?

82 users found this article helpful

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

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

Working with discrete graphics card

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

Note: Parallels Desktop does not control when to switch between graphics cards. This decision is made 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 for increased performance. That way, applications keep using standard API (OpenGL or DirectX) and the driver splits tasks between two physical video cards. 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 the driver’s work to split tasks between video cards, as only the driver can optimize input data for video cards and synchronize cards' work. Only it has the 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, Mac drivers belong to Apple (even though they're developed in collaboration with vendors) and features are controlled by Apple as well. That basically means that Mac OS X and its drivers can be considered as onethey cannot be split. That is why Mac OS X applications consider two video cards working in tandem as two separate video cards. 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 we could map both video cards to the guest OS and somehow allow applications to use it. But there is no practical need for that as there is a 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.