NVIDIA's GameWorks is in the news again with several reports recently accusing the green team and/or game developers of tampering with performance on AMD Radeon cards.
First Project Cars was the subject of these rumors, which resulted in developer Slightly Mad publishing a statement that it has a good working relationship with both NVIDIA and AMD as well as the publication of a list that clears up wrongful assumptions regarding Project Cars performance on AMD GPUs:
"For the past few days, erroneous information posted on Reddit and other websites has spread misinformation with regards to Project Cars' performance on systems using AMD GPUs.
To correct the wrongful assumptions regarding Project Cars' performance on AMD GPUs, the Madness engine, and the degree of involvement from our third-party technical partners, Slightly Mad Studios feel compelled to point out the following facts:
Project Cars is not a GameWorks product. We have a good working relationship with Nvidia, as we do with AMD, but we have our own render technology which covers everything we need.
NVidia are not "sponsors" of the project. The company has not received, and would not expect, financial assistance from third-party hardware companies.
The Madness engine runs PhysX at only 50Hz and not at 600Hz as mentioned in several articles
The Madness engine uses PhysX for collision detection and dynamic objects, which is a small part of the overall physics systems
The Madness engine does not use PhysX for the SETA tyre model or for the chassis constraint solver (our two most expensive physics sub-systems)
The Madness engine does not use PhysX for the AI systems or for raycasting, we use a bespoke optimized solution for those
The physics systems run completely independently of the rendering and main game threads and utilizes 2 cores at 600Hz
The physics threading does not interact with the rendering, it is a push system sending updated positional information to the render bridge at 600Hz
Any performance difference with PhysX would not be reflected with differences in comparing rendering frame rates. There is no interaction between PhysX and the rendering
Overall, PhysX uses less than 10% of all physics thread CPU on PC. It is a very small part of the physics system so would not make a visual difference if run on the CPU or GPU
Direct involvement with both Nvidia and AMD has been fruitful in assisting with the game performance at various stages of development. Both AMD and nVidia have had access to working builds of the game throughout development, and they have both tested builds and reported their results and offered suggestions for performance improvements.
Testing of the game with different driver versions has produced a variety of performance results on both Nvidia and AMD hardware. This is entirely to be expected as driver changes cannot always be tested on every game and every card, and this is the reason why both companies produce game-specific driver profiles, to ensure that they can get the best out of the game.
Project Cars does not use Nvidia specific particle technology--the system we use is a modified version of the same technology we used on the Need for Speed: Shift and Shift Unleashed games, and was entirely developed in-house. The reason the performance drops when there are a lot of particles on screen is simply because processing a large number of particles is very expensive."
Next the attention turned to the new The Witcher 3, which has a lot of performance issues on AMD Radeon cards. Lots of users with Radeon cards are experiencing framerate drops and stuttering but it seems one of the main reasons for this is a hair rendering feature called NVIDIA HairWorks. After disabling this feature the performance of Radeon cards in The Witcher 3 greatly improves.
ARS Technica spoke to AMD chief gaming scientist Richard Huddy, a vocal critic of NVIDIA's GameWork technology, and got to hear he feels like NVIDIA completely sabotaged AMD's performance:
I asked AMD's chief gaming scientist Richard Huddy, a vocal critic of Nvidia's GameWorks technology, about AMD's involvement with CD Projekt Red, and the support it had reportedly failed to provide to the developer: "That's an unfortunate view, but that doesn't follow from what we're seeing," said Huddy. "We've been working with CD Projeckt Red from the beginning. We've been giving them detailed feedback all the way through. 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."
Huddy also explained that—contrary to Nvidia's claims to developers can access source code under licence—CD Projekt Red did not have access to the source code for HairWorks. "I was [recently] in a call with one of the management at CD Projekt," said Huddy, "and what I heard then was that they didn't have access to the source code."
It's unclear why CD Projekt Red decided to leave HairWorks on by default on AMD cards even though it causes such a large drop in performance, nor why they didn't include AMD TressFX (as is done in GTA V which has tech from both vendors).