OpenGL and Parallels Desktop 13



    Every Parallels Desktop for Mac user wants Windows applications to run as fast as possible. Many factors affect the speed of Windows applications running in the Parallels Desktop virtual machine: processor power, the availability of SSDs, running applications, Windows updates, and much more. Under the cut is a short story about why “owls are not what they really seem” (c).

    For those Windows applications that use 3D graphics, two more factors must be taken into account: the performance of the video card and the graphic Windows libraries used by the application - DirectX or OpenGL.

    Many Windows CAD / CAM applications and games use DirectX or OpenGL. Almost every major release of Parallels DesktopWe are trying to improve support for these libraries. In this article I will talk about OpenGL.

    Opengl


    “The Open Graphics Library (OpenGL) is a language-independent cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. Typically used to interact with a graphics card for hardware rendering acceleration. "

    OpenGL "is widely used in computer-aided design (CAD) systems, virtual reality, scientific and informational visualizations, flight simulators and video games."

    For example, OpenGL uses Windows-based applications Adobe After Effects, Adobe Photoshop, Adobe Premiere Pro, Autodesk AutoCAD, Google SketchUp and a myriad of games.

    Pinning hopes


    I’d like to tell you that Parallels Desktop magically transforms your four-year-old MacBook Air into a powerful $ 3,000 water-cooled PC gaming machine, 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 efforts 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.



    Wolfenstein : The Old Blood is a shooter developed by Bethesda Softworks . This is an abbreviated record of a gaming session in Parallels Desktop 13 on Mac. Full version in resolution 1920 x 1080, 1,06 GB.



    Some more well-working OpenGL applications:

    • Rage (2011)
    • Wolfenstein: The New Order (2014)
    • Unigine Heaven and Valley benchmarks
    • Minecraft
    • CATIA
    • Solidworks
    • Northgard
    • Rhinoceros 5
    • Navisworks 2017
    • ARCHICAD 20
    • Solid Edge
    • Series Quake games (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 so simple.

    In addition, you may notice that MacOS supports OpenGL 4.1, while Parallels Desktop 13 only supports OpenGL 3.2. Why doesn't Parallels support OpenGL 4.1 on Windows? To confuse everyone even more, I will 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 were flagged as not recommended and permanently removed in OpenGL 3.1. At that time, OpenGL introduced an additional version system called “Core profile / Compatibility profile”. In the main profile, non-recommended functions are not available; they work in the compatibility profile. In general, manufacturers of video cards in drivers for Windows support a compatibility profile so that older applications can work. But Apple on MacOS only supports the main profile.

    Imagine the developer who created the Windows application that uses OpenGL 2.1. The developer wants to use new features from OpenGL 3.x. But now he is forced to rewrite a bunch of old code so as 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 from the main profile. And if you are improving an old product, it is better to choose a compatibility profile. Therefore, almost all OpenGL applications for Windows use this profile.

    Parallels virtualized graphics for use with MacOS graphics cards use OpenGL. The virtual machine converts Windows API calls to MacOS calls (the description is simplified, in fact, everything is more complicated). Since the recommended features of OpenGL 3.x are not available on MacOS, Parallels simply has nowhere to translate them. Therefore, Parallels Desktop uses a primary profile.



    Today, Parallels supports the OpenGL 3.2 Core Profile, and for some (very conservative) applications, it can switch to the OpenGL 3.2 Compatibility Profile.

    Predicting the performance of OpenGL applications


    Unfortunately, it’s 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 have not 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, great! You can buy Parallels Desktop and Windows. If applications run slowly, then you won’t waste your money.

    You can also participate in the topic on the forum , where people write dirty tricks about OpenGL applications that they want to use in Parallels Desktop.

    Also popular now: