Nvidia Clears the Air About GameWorks

Earlier this week, AMD's Robert Hallock told Forbes that Nvidia's GameWorks represents a "clear and present threat to gamers." Why? Because Nvidia is allegedly crippling performance on AMD products with this middleware suite "to widen the margin in favor of Nvidia products." That's a pretty serious accusation.

Naturally, Nvidia had something to say in response. Last night, we spoke with Nvidia's Cem Cebenoyan, director of engineering, developer technology, who heads a team of engineers that works with game developers to make their games run better. Part of the team also works on GameWorks modules.

As a recap, GameWorks is a set of libraries and tools (middleware) for adding effects to games such as graphical (HBAO+, TXAA), physical (PhysX, Clothing), and so on. "We provide technologies which are easy to integrate into games as well as tutorials and tools to quickly generate game content," reads the GameWorks website. This is different than Nvidia's "The Way It's Meant to be Played" program, which basically points out that games with this label were developed on and created for Nvidia GPUs, and are best experienced on said hardware.

"The #1 goal here is to build technology that makes things better for Nvidia customers. In many cases that ends up actually helping AMD customers," Cebenoyan told Tom's. "For example, HBAO+, which is in Watch_Dogs, runs on AMD and runs really well on AMD, and certainly doesn't cripple anything on AMD. And that's not uncommon for GameWorks modules. Some of them are Nvidia specific because they use specific hardware functionality, like TXAA. By and large we built GameWorks not for AMD and not against AMD. It's more for Nvidia customers, for the company to enhance the experience of these games on the PC platform and make them awesome and enhance them any way we can."

"The positioning from other folks seems to be that [creating GameWorks] was a deliberate attempt to make something harder for AMD, or make it worse for them," he added. "It's certainly not the motivation at all. Actually we have this model of middleware for game developers in PhysX, which we have been shipping for five years, and that actually works really well. It just requires a different level of diligence and attention to building a real product than you do when just running sample code."

GameWorks came about because the company didn't want to build a bag of code to throw at developers. Instead, Nvidia wanted to provide a piece of middleware that just works, and built for integration. It's built like a piece of middleware would be built, he says, with the primary goal of seamless integration into video game titles. One thing that hasn't really been clear up until now is that GameWorks is licensed software.

"You can't take that source code and then give it to someone else that doesn't have a license. You have to keep it inside your company," he explained. "But [game developers] are allowed to make changes to it. In fact, what would be the purpose of the source code if they couldn't change it? They can change it, if they want they can optimize for someone else's hardware or put in changes that improve the performance on AMD or something like that, and that's totally fine; that's within the rules of the source license."

"We do give out source code under a license to the GameWorks modules. The only ones we don't are Nvidia specific, that only run on Nvidia. Most of them don't fall into that bucket. That's not what AMD is complaining about anyway, because those things are not possibly crippling AMD because they don't run on AMD, things like TXAA. For all the other modules that run everywhere, things like HBAO+ and HairWorks, we do offer that under a source license agreement. In addition to that, we have this separate thing that doesn't require any kind of licensing agreement; these samples we have for OpenGL and DirectX, and we also have samples for Android and all the stuff on our GameWorks website right now."

I said that in our testing, we've seen that a GameWorks-optimized title like Assassin's Creed IV does in fact run poorly on AMD hardware. If AMD is unable to optimize as completely for a GameWorks-based title, how can this be seen as an asset for the gaming community?

"It's interesting that these interviews, these things have come out in the last few days on the Watch_Dogs launch," he said. "I think it's a perfect example of what commonly happens in a GameWorks title where there's some hubbub about performance not being great... they see that it's a GameWorks title and it's just sort of guilt by association. A lot of the numbers that came out of the original article that I saw where they were complaining that it's an example of GameWorks screwing up the performance for AMD. The only GameWorks feature that runs on AMD in this title is HBAO+. That wasn't even on in those tests."

Cebenoyan said that a lot of the reported low-performance cases have nothing to do with GameWorks. These features can be turned off. "If AMD's performance is poor, I don't see how you can point the finger at GameWorks. That doesn't make any sense," he said. He added that Nvidia has lots of titles that the company optimizes the experience for customers, and typically without game source code.

"There seems to be this thing that people are saying now -- maybe folks who haven't actually worked with drivers -- don't realize that you can actually do in most cases game optimization without having any access to the source code. We do this all the time. Every time you see a new driver that boosts 10 percent performance in this title, 99 times out of 100 the driver engineer that did that improvement never looked at a line of the game's source code."

We eventually began talking about AMD's Mantle low-level API. I asked if Nvidia sees this as a threat or as a competitor. The answer? Not really.

"GameWorks is about encapsulating some cool effect and doing a kind of turnkey solution to that effect. We want to give you a simple thing to integrate -- show me water here in the world and it will just work, it will work with the whole scene," he said. "[GameWorks] is kinda in the other direction [than Mantle]. It's in providing a solution to a problem. The way Mantle works, which is providing a lower level access to the graphics processor, but it puts a heavy burden on the team doing the work. To integrate a new low level renderer into your game is very challenging. There's a lot of engineering and re-engineering of the renderer and things like that. Integrating HBAO+ can be done in a couple of days by one person."

"In that sense, I don't think they're competitors," he added. "We've been making a lot of investments in both OpenGL and DirectX -- DirectX 12 is going in the low level direction as well. So we're working closely with Microsoft to make sure that's going to be awesome. And we've done similar things on the OpenGL side to give developers ways to do both low level access and just really fast submission of information to the GPU for developers who want that. And I don't think that's the solution for everyone."

One thing that was pointed out to me was that AMD seems to focus a lot of their effort on Mantle and has de-emphasized support for Direct3D, which may be partly why we're seeing all these performance differences on both Nvidia and AMD titles. I also noticed a level of agitation in the interview, which is understandable given the allocations flying at Nvidia this week.

Nvidia points to this example of HBAO+, which the company says works great on both AMD and Nvidia hardware. There's also a sample of the GeForce-only TXAA feature here (4x TSAA vs 8x MSAA). Both samples are taken from the just-released PC version of Watch_Dogs.

Finally, the company provides a direct link to the SDK that is supposedly hidden on Nvidia's developer website (NVIDIA_SDK11_Direct3D_11.00.0328.2105.exe), and a link to new samples the company uploaded back in March here, which are open source.

  • jasonelmore
    i'm glad they addressed this out in the open and provided a counter argument for pretty much all of AMD's allegations. truth be told, AMD's driver support is not on the same level as Nvidia's. I think that's something everyone can agree on.

    It may be a hardware thing, but i doubt it, i think nvidia just has some really good coders and engineers.
    Reply
  • Amdlova
    long time ago with ATI card i removed all shadows. Its really bugged on amd when u disable shadows you gain 30% more fps. AMD Wake UP!
    Reply
  • blppt
    I think Extremetech did an article about how much more resources Nvidia had to devote to their graphics driver teams than AMD has. Given that AMD's graphics team has apparently much less to draw from, I think they do a pretty good job. Its just a shame that AMD puts out this great hardware that unfortunately gets a bad rap due to the drivers progressing so slowly.
    Reply
  • blppt

    naive guys believe in free lunch, damn!

    Yeah, that made a lot of sense....
    Reply
  • de5_Roy
    there will be plenty of accusation-slinging in the future between these two fierce competitors.
    Reply
  • koolkei
    I think Extremetech did an article about how much more resources Nvidia had to devote to their graphics driver teams than AMD has. Given that AMD's graphics team has apparently much less to draw from, I think they do a pretty good job. Its just a shame that AMD puts out this great hardware that unfortunately gets a bad rap due to the drivers progressing so slowly.

    now now. lets see the 3 major players in the conventional computer from a wider perspective.

    Nvidia competes in mainly graphic processors, a little in the SoC (although they said the were going to withdraw from it). that's 1 market focus

    Intel competes in mainly main processors, a little in the SoC division, and a little on the graphic processors, although still only integrated ones. that's 2 market focus (as they are only developing IGP and not discrete ones)
    not to mention they have their own fab.

    AMD? they are everywhere.. GPU, CPU, SoC(although still a small part of it) that's at least 3 market focus, yet a leader in HSA innovation(which intel is still trying to catch upto). and then you count AMD is MUCH smaller than intel is. they have less workers count, the have less income, less money to invest in R&D, yet still keeping up with the latest technologies, and in some part not just keeping up. (i meant they are one of the major contributor in the HSA foundation)
    Reply
  • koolkei
    now now. lets see the 3 major players in the conventional computer from a wider perspective

    ......

    less money to invest in R&D, yet still keeping up with the latest technologies, and in some part not just keeping up. (i meant they are one of the major contributor in the HSA foundation)

    i forgot to mention some things. i'm not a fanboy of any brand, AMD products does have it's flaw, big ones compared to the competition. i think most of you guys already knows what i mean
    Reply
  • rantoc
    Fully understand the idea behind the development of that project, lets face it - Many developers are lazy and settle for the low hardware standard that the consoles provide and don't want to spend a lot of time beefing up the gfx. If this makes that beefing up process easier - More will jump on that train and that in turn will make people want to upgrade when an upgrade actually gives some tangible benefits rather than play that console "killer title" in 500fps for no use.

    This is a great idea that could revitalize the stagnant game gfx!
    Reply
  • blppt
    koolkei

    I think thats exactly what I said---I wasnt blaming AMD for not being able to devote "Nvidia-level" resources to their drivers, but the reality is, like you said, they simply cannot. Given the apparent disparity of the size/quality driver teams between those two companies, I'm actually impressed that they do as well as they do. Either that or their hardware is just such a superior design that the lagging in driver development is offset by having the better hardware.
    Reply
  • alextheblue
    My issue with GameWorks is that some of it is closed source, and most of it is licensed source so it's not available for AMD to look at. Very little of Nvidia's stuff is open source. PhysX is another example, and they use that to their advantage by deliberately crippling the Software mode by using antiquated code and not taking advantage of modern SSE/AVX. Even changing some compiler settings would give it a huge boost - but then that would make PhysX hardware mode less impressive!
    Reply