Every Parallels Desktop for Mac user wants Windows applications to work as quickly as possible. The speed of Windows applications running in the Parallels Desktop virtual machine is influenced by many factors: processor power, the presence of SSDs, running applications, Windows updates, and much more. Under the cut there is a short story about why "owls are not what they really seem to be" (c).
For those Windows applications that use 3D graphics, two more factors need to be taken into account: the performance of the video card and the Windows graphics libraries used by the application — DirectX or OpenGL. ')
Many Windows CAD / CAM applications and games use DirectX or OpenGL. In almost every major release of Parallels Desktop, we are trying to improve support for these libraries. In this article I will talk about OpenGL.
Opengl
“ Open Graphics Library (OpenGL) is a language-independent cross-platform application programming interface (API) for drawing 2D and 3D vector graphics. Usually used to interact with a video card for hardware acceleration of rendering. "
OpenGL "is widely used in computer-aided design (CAD), virtual reality, scientific and information visualizations, flight simulators and video games."
For example, OpenGL uses Windows applications like Adobe After Effects, Adobe Photoshop, Adobe Premiere Pro, Autodesk AutoCAD, Google SketchUp, and a myriad of games.
Pinning hopes
I would like to tell you that Parallels Desktop magically transforms your four-year-old MacBook Air into a powerful gaming PC with a $ 3000 water-cooled video card, but it’s not.
Parallels Desktop can allow your Mac to run most Windows applications, some games, and some CAD / CAM applications.
Success stories
Thanks to the work of engineers, some Windows applications using OpenGL 3.2 began to work in Parallels Desktop 12 and 13. Examples of OpenGL applications that work well in Parallels Desktop 13 are presented below.
DIALux evo - The de facto standard in the professional lighting design industry.
• Rage (2011) • Wolfenstein: The New Order (2014) • Unigine Heaven and Valley Benchmarks • Minecraft • CATIA • Solidworks • Northgard • Rhinoceros 5 • Navisworks 2017 • ARCHICAD 20 • Solid Edge • Quake game series (Quake, Quake II, Enemy Territory: Quake Wars and others.).
OpenGL Versions
OpenGL has more complex versioning than most other applications. For example, if an application needs OpenGL 3, and the operating system supports OpenGL 4, then it is logical to assume that the application will work just fine. But not everything is so simple.
In addition, you may have noticed that MacOS supports OpenGL 4.1, and Parallels Desktop 13 supports only OpenGL 3.2. Why doesn't Parallels support OpenGL 4.1 in Windows? To confuse even more, I’ll say that even some OpenGL 3.x Windows applications do not work in Parallels Desktop 13.
Why? In OpenGL 3.0, many features from OpenGL 2 and earlier versions were marked as not recommended, and were permanently removed in OpenGL 3.1. At that time, an additional version system called the Core profile / Compatibility profile (Core profile / Compatibility profile) appeared in the OpenGL. In the main profile, the recommended features are not available, they work in the compatibility profile. In general, video card manufacturers in Windows drivers support a compatibility profile for older applications to work. But Apple in MacOS only supports the main profile.
Imagine a developer who has created a Windows application that uses OpenGL 2.1. The developer wants to use new features from OpenGL 3.x. But now he has to rewrite a bunch of old code in order not to use functions that are no longer available. Nobody wants to do this. And the solution is the compatibility profile.
If you are creating a new application or engine from scratch, you can start with the main profile. And if you improve the old product, it is better to choose a compatibility profile. Therefore, almost all OpenGL applications under Windows use this profile.
Parallels virtualized graphics for working with a video card on MacOS uses OpenGL. The virtual machine converts the Windows API calls into MacOS calls (the simplified description, in fact, is more complicated). Since not recommended OpenGL 3.x features are not available on MacOS, Parallels simply has nowhere to translate them. Therefore, Parallels Desktop uses the main profile.
Today Parallels supports the OpenGL 3.2 Core Profile, and for some (very conservative) applications can switch to the OpenGL 3.2 Compatibility Profile.
Performance prediction for OpenGL applications
Unfortunately, it is not so easy to predict whether a particular Windows OpenGL application will work well in Parallels Desktop. If you already have our product, try it yourself.
If you haven’t purchased Parallels Desktop yet, you can install a trial version , you can try Windows for free with it. And also run the applications or games of interest and see if there is enough performance. If enough, fine! You can buy Parallels Desktop and Windows. If the applications will work slowly, then you will not spend money in vain.
You can also participate in the forum thread , where people write dirty tricks about OpenGL applications that they want to use in Parallels Desktop.