Gaming & Culture —

AMD says Nvidia’s GameWorks “completely sabotaged” Witcher 3 performance

There are plenty of performance issues in The Witcher 3, but who's to blame?

<em>The Witcher 3</em> in action.
The Witcher 3 in action.

A war of words broke out earlier this week as the Internet decided (again) that Nvidia's GameWorks technology was messing with the performance of games running on AMD hardware.

GameWorks is a collection of propriety technologies and APIs that Nvidia offers to developers so they can include tricky effects like realistic hair, shadows, and destruction in games without having to create them from scratch. But GameWorks' capabilities are necessarily Nvidia-optimized; such code may perform poorly on AMD GPUs. The situation has led vocal gamers to allege that Nvidia is playing dirty, paying developers to ensure that code doesn't run well on non-Nvidia systems. Nvidia has denied the claims on several occasions, but they continue to be made.

First, it was shiny new racing sim Project Cars that drew the ire of the Reddit community, with users claiming that the game is built on a version of PhysX that "simply does not work on AMD cards." (PhysX is a part of GameWorks.) Never one to turn away from a good Nvidia-bashing, AMD's corporate VP of alliances Roy Taylor responded with a tweet saying, "Thank for supporting/ wanting an open and fair PC gaming industry."

This was swiftly followed by a Reddit reply from Nvidia's GameWorks director Rev Lebaredian saying, "PhysX within Project Cars does not offload any computation to the GPU on any platform, including Nvidia. I'm not sure how the OP [original post] came to the conclusion that it does, but this has never been claimed by the developer or us; nor is there any technical proof offered in this thread that shows this is the case."

With the complaints flowing in thick and fast, Project Cars developer Slightly Mad Studios joined the fray and proceeded to place the blame for the game's issues squarely on AMD.

"We’ve provided AMD with 20 keys for game testing as they work on the driver side," said Slighty Mad Studios' Ian Bell. "But you only have to look at the lesser hardware in the consoles to see how optimised we are on AMD based chips. We’re reaching out to AMD with all of our efforts. We’ve provided them 20 keys as I say. They were invited to work with us for years, looking through company mails the last I can see [AMD] talked to us was October of last year. Categorically, Nvidia have not paid us a penny. They have though been very forthcoming with support and co-marketing work at their instigation."

While AMD seems to have made up with Slightly Mad Studios (at least if this tweet from Taylor is anything to go by), the company faces another supposedly GameWorks-related performance issues with CD Projekt Red's freshly released RPG The Witcher 3. The game makes use of several GameWorks technologies, most notably HBAO+ and HairWorks. The latter, which adds tens of thousands of tessellated hair strands to characters, dramatically decreases frame rate performance on AMD graphics cards—sometimes by as much as 50 percent.

A CD Projekt Red developer (speaking to Overclock3D) weighed in on the performance issues, saying, "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."

Geralt's luscious locks are causing trouble for AMD players.
Enlarge / Geralt's luscious locks are causing trouble for AMD players.

The trouble with GameWorks, at least as AMD tells it, is that Nvidia isn't willing to share the source code for its proprietary graphics APIs like HairWorks and HBAO+. Without that source code, AMD can't optimize its drivers for Nvidia's tech. This is an argument that AMD has been pushing for a while. From an idealistic point of view, yes, it would be nice if everyone played nice and we all got a better gaming experience because of it. But to place the blame entirely on a lack of transparency on Nvidia's part isn't entirely fair either, particularly given how much money the company has invested in the technology. HairWorks, which relies heavily on tessellation, is always going to perform poorly on AMD hardware, simply because AMD's older GCN 1.1 architecture (used on its flagship R9 290X, among others) was never all that good at tessellation.

Nvidia responded to the Witcher 3 claims over at PC Perspective, and as usual refused to accept the argument that access to source code would solve AMD's problems.

"We are not asking game developers do anything unethical," said Nvidia's GameWorks' Brian Burke. "GameWorks improves the visual quality of games running on GeForce for our customers. It does not impair performance on competing hardware. 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. Most of the time we optimize games based on binary builds, not source code... 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 [independent hardware vendors]/"


It's the latter point that's perhaps most interesting about this whole GameWorks brouhaha. As with Project Cars, there's an impression that perhaps AMD didn't support CD Projekt Red as heavily as Nvidia did throughout the development process, regardless of whether money changed hands or not. It's an argument that Nvidia has made on several occasions, although hearing it directly from a developer, like in the case of Project Cars, is a new and potentially troubling development for AMD.

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.

"We've been working with CD Projeckt Red from the beginning," said Huddy. "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."

While Nvidia and AMD get most of the flack for poorly performing games on their hardware, to say that CD Projekt Red is entirely without fault isn't fair either. Any developer that chooses to implement a particular technology, be it from Nvidia or AMD, draws a line in the sand separating users of the other brand of graphics card. Clearly, including things like HairWorks will adversely affect AMD users because the hardware simply isn't optimised for it. That said, you can turn off HairWorks to claw back that performance at the expense of some visual fidelity.

You must to comment.

Channel Ars Technica