MICROSOFT MOVES TO CHECKMATE NVIDIA

microsoft

On October 2nd, Microsoft announced to the rest of the world that it was purchasing the physics middleware, Havok, from Intel. And the tech world let out a collective yawn at the news of a major software giant acquiring yet another piece of niche technology.

Ostensibly, the Havok acquisition is about Microsoft’s on-going love affair with its Azure cloud service and adding to its existing suite of developer tools. Nothing more.

“We believe that Havok is a fantastic addition to Microsoft’s existing tools and platform components for developers, including DirectX 12, Visual Studio, and Microsoft Azure,” read Microsoft’s blog post. “We will continue to innovate for the benefit of development partners. Part of this innovation will include building the most complete cloud service, which we’ve just started to show through games like “Crackdown 3.”

So is that the whole story? Not quite.

Microsoft’s real target is Nvidia. For several years now, Nvidia’s PhysX middleware has been the preeminent physics middleware used in videogames – despite what Havok may claim. Thanks to its integration with widely popular game engines like Unity 3D, Nvidia’s PhysX has now been used in thousands of PC and console games.

PhysX also has the advantage of being supported by the world’s leading GPU manufacturer. In games and applications which use PhysX, many of the physics calculations are off-loaded to the GPU from the Intel or AMD CPUs. Instead of hundreds of dynamic colliding objects on the screen, a GPU-accelerated physics environment can have thousands or even tens of thousands of dynamic objects.

Unfortunately, there is a catch.

GPU acceleration in Nvidia PhysX is possible only using Nvidia GPUs. If you have AMD or Intel GPUs, you are out of luck. In PCs with GPUs from those manufacturers, all game physics calculations are done exclusively by the CPU. If you have an Intel or AMD GPU in your PC, your game will feel less realistic and on many occasions, run slower. The scenario gets worse on high profile AAA PC games which are likely to push the boundaries of real-time 3D graphics and physics.

For example, see what happened after the release of CD Projekt Red’s, The Witcher 3. if you enable Nvidia’s proprietary HairWorks, it was noticed that the game’s performance is up to 30% slower on an AMD high-end GPU like the Radeon 290X compared to Nvidia’s GTX 980.

CD Project’s Marcin Momot confirmed this with the following statement. “Many of you have asked us if AMD Radeon GPUs would be able to run NVIDIA’s HairWorks technology – the answer is yes! However, unsatisfactory performance may be experienced as the code of this feature cannot be optimised for AMD products. Radeon users are encouraged to disable NVIDIA HairWorks if the performance is below expectations.” 

AMD’s Chief Gaming Scientist and my former colleague, Richard Huddy, went on the offensive. In an online interview, he said, “Around two months before release, or thereabouts, the GameWorks code arrived with HairWorks and it completely sabotaged our performance as far as we’re concerned. We were running well before that… it’s wrecked our performance, almost as if it was put in to achieve that goal.” 

A similar furore erupted after the release of Project Cars, the highly anticipated racing simulation. Just like in The Witcher 3, game performance dropped sharply on PCs using AMD GPUs to almost unplayable levels. According to AMD, the problem with proprietary APIs like PhysX and HairWorks is that Nvidia is not willing to share the source code with Intel or AMD. Without that source code, AMD cannot optimise its drivers for the best performance in games which use those APIs.

On a generational basis, the performance increase in GPU technology is racing well ahead of the same generation of CPUs. Modern GPUs have also become extremely programmable and are now capable of being used for gaming tasks like physics and AI path finding which previously could only be done by CPUs.

Also, Microsoft’s Xbox One console uses an AMD SoC. It is also likely that any console successor to the current Xbox One will also have AMD technology. Since Nvidia will not license the source code of any of its proprietary APIs, all real-time physics and AI path-finding calculations will need to be done purely on the console’s CPU – even if an extremely powerful GPU is available for those tasks either inside the console or the Azure Cloud which is linked to it.

Microsoft’s acquisition of Havok must be seen against this background.  As a result of this acquisition, in a few years’ time, I fully expect DirectX to have a GPU-accelerated DirectX Physics API or even a DirectX AI component. And like DirectX itself, it will be GPU vendor neutral.

At that point, all the major middleware like Unity 3D and Unreal will support DirectX Physics as the de facto physics standard instead of Nvidia’s PhysX. Nvidia will no longer be able to ‘tamper’ with games performance using its proprietary APIs and the other GPU vendors will not need to whine about discrimination.

Hopefully, that rosy future is not too far away.

 

Share this post:

Comment what you think!