Skip to content
Gaming

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?

Mark Walton | 247
The Witcher 3 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."

Ars Video

 

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.

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]/"

Credit: Nvidia

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.

AMD vs. Nvidia

So why did CD Projekt Red choose to include HairWorks but not AMD's TressFX? It's entirely possible to include tech from both companies; indeed, Rockstar's recent PC release of GTA V includes tech from both AMD and Nvidia.

The basic problem is that there's an additional amount of time and cost attached to including two very different types of technology that produce largely the same effect. According to AMD's Huddy, the company "specifically asked" CD Projekt Red if it wanted to put TressFX in the game following the revelation that HairWorks was causing such a large drop in performance, but apparently the developer said "it was too late."

In addition to saying that HairWorks was causing "contrived damage to AMD," Huddy was particularly damning of the fundamental technology behind HairWorks, saying that it's "spectacularly inefficient on both bits of hardware." Huddy may very well be right on that point. The first wave of Witcher 3 benchmarks have started to trickle in, and Nvidia's HairWorks technology is proving to be quite the performance hog. Over at German site Hardwareluxx, they found that turning on HairWorks dropped the frame rate on a GTX 980 from 87.4 FPS down to 62.2 FPS, a performance hit of around 30 percent. The situation was far worse for AMD's R9 290X, which took a gargantuan hit from 75.8 FPS to 29.4 FPS.

AMD says its TressFX tech, as used in Tomb Raider, is far more efficient than HairWorks.

Nvidia faces more backlash over at another popular Reddit thread which laments Witcher 3's performance on Nvidia's Kepler-based GPUs, with the thread claiming the more recent Maxwell-based GTX 960 outperforms a theoretically more powerful GTX 780. There's even a thread over on Nvidia's own forums, with users complaining that the latest Nvidia drivers cripple performance on 7-series cards. It's not clear at this point whether or not these issues are driver related or simply due to some slightly sketchy benchmarks. Indeed, another set of benchmarks has emerged over at Polish site PCLab, which shows more consistent performance up the product stack.

We'll have to reserve final judgement on The Witcher 3's performance until some more concrete benchmarks show up, but early indications show that (even with much of the GameWorks tech disabled and at 1080p) the game needs some beefy hardware to run at ultra settings. The GTX 970 appears to be the sweet spot, with frame rates approaching 60 FPS; any card above that should do the game justice. AMD's R9 290X put in a good show considering it's quite a bit cheaper than Nvidia's cards, but struggled to hit a solid 50 FPS. Increasingly the resolution seems to narrow the performance gap between AMD and Nvidia, and at 4K there seem to be only a few frames in it. Of course, if you want something playable at that resolution, once again it looks like a SLI/Crossfire setup or a Titan X is the way to go.

No doubt performance will get better as new drivers trickle in, and as CD Projekt Red begins the inevitable post-release bug fixing. As for the whole GameWorks debate, the whole thing is getting tired. Expecting Nvidia to open-source its tech is wishful thinking, even if it would be in the best interests of consumers. While it's sometimes easy to sympathise with the underdog, at this point we need to see some real innovation from AMD, rather than just bluster over allegedly dodgy business practices from the competition.

Fortunately, that might soon happen; AMD's use of high bandwidth memory in an upcoming graphics card could be very exciting indeed. With the market divided between just two companies, there are always going to be struggles and controversies surrounding both companies' attempts to capture market share. If AMD can bounce back with tech that gives Nvidia a run for its money, perhaps we'll all be able to focus less on GameWorks and more on actually playing the games we want to play.

Or you could just go get some games for your console. I hear things are pretty good for The Witcher 3 over there right now.

Photo of Mark Walton
Mark Walton Consumer Editor
Mark is Consumer Editor at Ars Technica UK by day, and keen musician by night. He hails from the UK, the home of ARM, heavy metal, and superior chocolate.
247 Comments