Nvidia’s GameWorks has been a topic of contention since its inception. According to Nvidia’s it “NVIDIA GameWorks pushes the limits of gaming by providing a more interactive and cinematic game experience and thus enabling next gen gaming for current games.” It’s a set of tools to enable developers to incorporate visually impressive technologies like Horizon Based Ambient Occlusion, Temporal Anti-aliasing, Soft Shadows and other needlessly long terms that get turned in to back-of-the box marketing acronyms. The criticism has been that games that utilise GameWorks tend to run poorly on machines that are stuffed with AMD hardware. Those complaints are being levied anew thanks to its inclusion in two big new games: The Witcher 3 and Project Cars.
While it seems Like The Witcher 3 runs just fine on both brands of GPU (we won’t really know until it’s out in the wild for more people), Many AMD users are complaining that Project Cars is a bit of a mess on AMD – and they’re pointing the blame at Nvidia….mostly.
It seems like even some of AMD’s higher-tiered cards are struggling to run the game, being bested by the mid-range Maxwell 960 from Nvidia. According to Techspot’s benchmarks, Nvidia’s GTX 960 is beating out AMD’s R9 290X in frames per second – which makes very little sense given the power disparity – in AMD’s favour – between the cards. The culprit? It could be PhysX, which forms part of Nvidia’s Gameworks (Slightly Mad has since confirmed that Project Cars is not a GameWorks title).
According to users on Anandtech:
“The game runs PhysX version 126.96.36.199. It is a CPU based PhysX. Some features of it can be offloaded onto NVidia GPUs. Naturally AMD can’t do this.
In Project Cars, PhysX is the main component that the game engine is built around. There is no “On / Off” switch as it is integrated into every calculation that the game engine performs. It does 600 calculations per second to create the best feeling of control in the game. The grip of the tires is determined by the amount of tire patch on the road. So it matters if your car is leaning going into a curve as you will have less tire patch on the ground and subsequently spin out. Most of the other racers on the market have much less robust physics engines.”
Another post on the forums says this:
“SMS knew for the past 3 years that Nvidia based PhysX effects in their game caused the frame rate to tank into the sub 20 fps region for AMD users. It is not something that occurred overnight or the past few months. It didn’t creep in suddenly. It was always there from day one.
Since the game uses GameWorks, then the ball is in Nvidia’s court to optimize the code so that AMD cards can run it properly. Or wait for AMD to work around GameWorks within their drivers. Nvidia is banking on taking months to get right because of the code obfuscation in the GameWorks libraries as this is their new strategy to get more customers.
Break the game for the competition’s hardware and hope they migrate to them. If they leave the PC Gaming culture then it’s fine; they weren’t our customers in the first place.”
Essentially, Project Cars is doing a ton of PhysX calculations, which are necessary for the game’s systems to function – but instead of being offloaded on to the GPU as they would be on Nvidia systems, the calculations are being done by the CPU on AMD ones, resulting in a significant performance hit. As it stands now, there’s no solution to this. And with Gameworks being NVidia proprietary stuff, it leaves Nvidia in charge of optimising games that utilise its technologies.
What’s jarring, and a little disturbing, is that it seems as though GameWorks allows Nvidia to gimp its own cards too – with its older, Kepler-based cards like the original Titan only beating out the GTX 960 by two frames per second. That’s inconceivable.
Why would developers opt to use GameWorks, if it cuts out AMD users? Well for starters, Nvidia has an absolute stranglehold on the GPU market, and using Gameworks allows then to make their games look better for most PC gamers, while using GameWorks as a sort of visual and physics effects middleware.
“For developers it’s a way to save money by using nvidia’s pre-baked effects by building the Gameworks libraries into the game. Often they can’t even see in the gameworks dlls. Can’t get source code and nvidia now has a way to directly manipulate performance in games that make heavy use of it. They can cripple AMD’s cards, cripple their own last generation cards etc. Which is what we see happen in the gameworks games, they’ve all been outliers to the typical performance hierarchy we see of currently released GPUs, showing awful performance on AMD cards and terrible performance for nvidia’s own Kepler cards. Then a game patch comes out down the road after reviews have been done and lessens it.”
Many are concerned that The Witcher 3, which launches tomorrow as a GameWorks title – will perform worse than it rightly should on AMD hardware. Indeed, it’s something CD Projekt RED has admitted to, regarding NVidia’s HairWorks at least.
CD Project’s Marcin Momot said they’re unable to get HairWorks playing nicely with AMD.
“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 optimized for AMD products. Radeon users are encouraged to disable NVIDIA HairWorks if the performance is below expectations.”
“We are not asking game developers do anything unethical.
GameWorks improves the visual quality of games running on GeForce for our customers. It does not impair performance on competing hardware.
Demanding source code access to all our cool technology is an attempt to deflect their performance issues. Giving away your IP, your source code, is uncommon for anyone in the industry, including middleware providers and game developers. Most of the time we optimize games based on binary builds, not source code.
GameWorks licenses follow standard industry practice. GameWorks source code is provided to developers that request it under license, but they can’t redistribute our source code to anyone who does not have a license.
The bottom line is AMD’s tessellation performance is not very good and there is not a lot NVIDIA can/should do about it. Using DX11 tessellation has sound technical reasoning behind it, it helps to keep the GPU memory footprint small so multiple characters can use hair and fur at the same time.
I believe it is a resource issue. NVIDIA spent a lot of artist and engineering resources to help make Witcher 3 better. I would assume that AMD could have done the same thing because our agreements with developers don’t prevent them from working with other IHVs. (See also, Project Cars)
I think gamers want better hair, better fur, better lighting, better shadows and better effects in their games. GameWorks gives them that.“
What do you think? Is it just down to better drivers? Nvidia has been releasing new drivers for just about every major release, where AMD’s a little slower on its driver releases. Or is it a bit more nefarious than that? Is Nvidia using its leverage with GameWorks and its market dominance to further wrest control from AMD?
Last Updated: May 18, 2015