NVIDIA Game Works, good or bad?

It seems like Intel are doing something similar with Havok. It provides proprietary code under NDA. Are AMD and NV devrel allowed to go poking around Havok Vision Engine stuff?

Also regarding the multiple code paths point, it seems to me that if you are licensing parts of your renderer from a third party you don't have the time or resources to realize even one complete rendering path on your own, let alone three. Furthermore, If AMD, NV, and Intel all had custom APIs that they were happy to give out it would be mighty difficult to synthesize them all into one game engine, while saving time and effort (which is the point of using such libraries anyway). Also, depending on the legal situation could you end up in some kind of bizarre quasi-white-room situation where only certain guys could work on certain sections of code?

Ah, I just noticed mfA made the same point better and far more succinctly.
 
Using one library can save work, using 3 with different APIs adds work ... so either the pay offs will have to increase or the current stratified situation just gets worse.

No, I'm not saying people should use three different API. Realistically, if the libraries provided by these vendors are all only good for their hardware and bad for others' hardwares, then the most likely situation is developers will be using 3rd party libraries.

What I'm saying is, with competition, if NVIDIA makes their libraries perform worse on competitors' hardwares, and AMD's libraries are ok, then people will use AMD's libraries. This will force NVIDIA to fix it or otherwise they'll be at a disadvantage because everyone will adopt AMD's libraries instead.
 
They are as good as they need to be considering the level of sponsorship ... if one party is willing to offset the cost of a worse library that library stops being worse for the developer, of course not for us.

It's all simply a jumble of perverse incentives ...
 
They are as good as they need to be considering the level of sponsorship ... if one party is willing to offset the cost of a worse library that library stops being worse for the developer, of course not for us.

It's all simply a jumble of perverse incentives ...

Of course, but it could be even without GW. I mean, if some game developers are willing to make games "exclusively" for a specific console, then it's not hard to imagine that some developers may want to collaborate only with a specific IHV.

You might say that GW makes it easier to make such exclusive deals. However, if it creates a competitive market for IHVs to invest more in making better libraries, I wouldn't call it a bad idea.
 
What's inside GW anyway? I see PhysX and OptiX. Those are CUDA based, unless I missed something about those 2 being ported to DC or OpenCL. (Now that would be newsworthy!) But let's assume not, then: problem solved for those 2: it only works for Nvidia! No different than Mantle.

What about Flameworks? Anything else?
 
No, I'm not saying people should use three different API. Realistically, if the libraries provided by these vendors are all only good for their hardware and bad for others' hardwares, then the most likely situation is developers will be using 3rd party libraries.

What I'm saying is, with competition, if NVIDIA makes their libraries perform worse on competitors' hardwares, and AMD's libraries are ok, then people will use AMD's libraries. This will force NVIDIA to fix it or otherwise they'll be at a disadvantage because everyone will adopt AMD's libraries instead.

http://forum.beyond3d.com/showpost.php?p=1818943&postcount=64

http://forum.beyond3d.com/showpost.php?p=1819039&postcount=70

http://forum.beyond3d.com/showpost.php?p=1819207&postcount=76

My example: everybody in the industry will say that it would be bad if Intel and nvidia did each one a CTM API to compete with Mantle.

My point: Albeit libraries are of smaller scale compared to API, it's essentially the same thought process: it's better to have one piece of technology that is compatible for everyone (standard) than to diverge and increase complexity. That's mostly why DX is so widespread.

Let's be clear again: there are no evidence of foul play from nvidia with GW, but the potential is there and nvidia is certainly no stranger of abusing game optimizations.

In the end I believe it's a trust issue: nvidia has an untrustworthy image for some (myself included).
 
My example: everybody in the industry will say that it would be bad if Intel and nvidia did each one a CTM API to compete with Mantle.

My point: Albeit libraries are of smaller scale compared to API, it's essentially the same thought process: it's better to have one piece of technology that is compatible for everyone (standard) than to diverge and increase complexity. That's mostly why DX is so widespread.

If what you said is true, do you think we need a standard for game engines? I don't think so.

In the ideal world, it's good to have standards. Unfortunately, good standards are simply too time consuming to make. Just look at OpenCL: it's almost the same as CUDA, yet for its current status it's still behind CUDA in many fields.

Even Direct3D is not a "standard." It's something created by a company which somehow being used by everyone.

As for Mantle, do you think a lower level API is bad? Personally I think Direct3D as its current status is certainly not good enough. Yet, if no one tries to do anything (something like Mantle), we may never know what's a good low level API might look like. Someone always need to start with something, and that someone is almost never a standard committee.

Let's be clear again: there are no evidence of foul play from nvidia with GW, but the potential is there and nvidia is certainly no stranger of abusing game optimizations.

In the end I believe it's a trust issue: nvidia has an untrustworthy image for some (myself included).

Whether NVIDIA is trustworthy or not is a different matter here. The discussion here is not about "NVIDIA having GW is bad" but "something like GW is bad."
 
There is a huge difference between an IHV owning the code that runs on all IHVs' hardware and an IHV controlling the code that runs only on their hardware.
But it's a *choice* to run that code on other IHV's hardware made by the game developers. No one is forcing them to do that.

Developers hate different code paths. They shouldn't have to put up with additional complexity, development time, QA risk and maintainability issues in their game because they're not able to optimize the same code path for all hardware due to its abstraction in a black box library.
Right, and Mantle isn't a gigantic different code path?

Optimizing for "all different hardware" is going to involve code divergence. Even a simple look at the throughput of various surface formats will show you that you're going to need some switch statements for optimal execution across different hardware, let alone more complex algorithms.

Again, I'm not saying GW/Mantle are good or bad, but you can't take a philosophical stance on one and not the other. Both are proprietary and effectively not ("performance") portable at a base level for the time being. In both cases it's up to individual developers to decide what to use.

Anyways, enough said on this topic really. I agree that the intentions behind GW probably differ from Mantle, but let's not try and sugar-coat the situation too much one way or another. This is all just standard market stuff with companies trying to gain any sort of advantage they can through roughly similar means (non-portable code). It's both necessary and ideally temporary for industry advancement.
 
If what you said is true, do you think we need a standard for game engines? I don't think so.

Don't read that post as if I'm somehow against competition, good standards actually enable technical competition and we already have plenty of standards that make those game engines possible: DX is a prime example.

But if you want to focus the engines themselves, we certainly don't need two game engines that are essentially the same, with no significant differentiation between each other. In this case it would be natural to see consolidation of those two game engines.

In the ideal world, it's good to have standards. Unfortunately, good standards are simply too time consuming to make. Just look at OpenCL: it's almost the same as CUDA, yet for its current status it's still behind CUDA in many fields.

Even Direct3D is not a "standard." It's something created by a company which somehow being used by everyone.

A standard doesn't need to be open, D3D is what's called an "industry standard".

As for Mantle, do you think a lower level API is bad? Personally I think Direct3D as its current status is certainly not good enough. Yet, if no one tries to do anything (something like Mantle), we may never know what's a good low level API might look like. Someone always need to start with something, and that someone is almost never a standard committee.

No, I don't think Mantle is bad ex ante, for similar reasons.

Apparently Mantle differentiate itself from DX enough to make it technically relevant and also apparently will be open enough to become interesting, desirable.

Whether NVIDIA is trustworthy or not is a different matter here. The discussion here is not about "NVIDIA having GW is bad" but "something like GW is bad."

You can't dissociate GW from the business decisions that made it bear fruit and that determined it's format.
 
But it's a *choice* to run that code on other IHV's hardware made by the game developers. No one is forcing them to do that.
It is a choice, but I'm not sure it will always be made by the game developers. I don't consider the business people to be developers even though they are a necessary part of a game studio.

Of course marketing deals can already force developers to use certain effects promoted by an IHV, but the developer controls the code so there's some flexibility on the developer's part.
 
It is a choice, but I'm not sure it will always be made by the game developers. I don't consider the business people to be developers even though they are a necessary part of a game studio.
Guess we'll have to agree to disagree. That's not a line I think is reasonable to try and draw in the context of development realities. Even if us developers like to try and ignore business forces we're ultimately no more free of them than anyone else. After all, if you don't sell games you aren't going to be around for long...
 
Don't read that post as if I'm somehow against competition, good standards actually enable technical competition and we already have plenty of standards that make those game engines possible: DX is a prime example.

But if you want to focus the engines themselves, we certainly don't need two game engines that are essentially the same, with no significant differentiation between each other. In this case it would be natural to see consolidation of those two game engines.

Actually that's what I mean with "competition." If you have only one game engine on the market, then there's no competition and no incentive to innovate. Direct3D is, unfortunately, a very good example of this. Direct3D's development started to slow down when Microsoft started working on Xbox and when OpenGL ceased to be a useful API for Windows games.

No, I don't think Mantle is bad ex ante, for similar reasons.

Apparently Mantle differentiate itself from DX enough to make it technically relevant and also apparently will be open enough to become interesting, desirable.

You can't dissociate GW from the business decisions that made it bear fruit and that determined it's format.

Why do you think Mantle will be "open enough" while GW is bad? Let's say, for example, if Mantle is by NVIDIA and GW is by AMD, do you think it's going to be better?

But of course as I said, this discussion started without considering the business decision part, and that's why I said it's not relevant to this discussion.
 
interesting interview: http://physxinfo.com/news/12197/introducing-nvidia-hairworks-fur-and-hair-simulation-solution/

the most interesting part, by me, is this one:

PhysXInfo.com: It was really a big surprise to see NVIDIA HairWorks utilizing DirectCompute API, while other NVIDIA hardware physics effects is typically exclusive to CUDA capable GPUs. What was the reasoning behind this decision?
Tae-Yong Kim: One of the goals of NVIDIA GameWorks is to solve hard visual computing problems in a way that balances implementation efficiency and time-to-market, runtime performance, and ease of integration. This requires choosing the right technologies, and sometimes that will lead to CUDA solutions, other times to DirectCompute, and other times to solutions using completely different approaches.
With NVIDIA HairWorks, the balance landed in favor of DirectCompute, partly because the simulation portion of the algorithm is a small part of overall runtime cost, which is dominated by rendering.
PhysXInfo.com: So, can we expect other APEX modules or GPU accelerated PhysX SDK features to be ported to non-CUDA platforms as well, over time?
Tae-Yong Kim: As we implement modules in the future, we will make the decision on a module-by-module basis as to the optimal technology to use.
PhysXInfo.com: Can one hope for HairWorks solution to be ever made available for next-gen consoles – PS4 and Xbox One?
Tae-Yong Kim: We are looking into the feasibility for using NVIDIA HairWorks on next gen consoles, so stay tuned.


so, beyond the fact that this is a response to tressfx, in my opinion, and that was good AMD to "force" Nvidia to use an open standard, it is curious that Nvidia will start to open up just as AMD introduces mantle as a proprietary Api ..
 
Actually that's what I mean with "competition." If you have only one game engine on the market, then there's no competition and no incentive to innovate. Direct3D is, unfortunately, a very good example of this. Direct3D's development started to slow down when Microsoft started working on Xbox and when OpenGL ceased to be a useful API for Windows games.

I agree, I just pointed out that similar solutions tend to consolidate, but if we have good standards, the barrier to entry in that market is significantly reduced. If we somehow had only one game engine, any smart team could compete with their own engine, with different technical decisions and innovations.

Why do you think Mantle will be "open enough" while GW is bad?

Because of the messaging from AMD and @repi. I can't say it will be as it's being promoted, but it's a start.

Let's say, for example, if Mantle is by NVIDIA and GW is by AMD, do you think it's going to be better?

If both had the same format, I would be very happy for nvidia for changing significantly, while complaining about AMD's regression. But it wouldn't be "better" in any way I can think.

I would probably still be a little wary over nvidia's trustworthiness though, specially if gsync didn't have any changes.

But of course as I said, this discussion started without considering the business decision part, and that's why I said it's not relevant to this discussion.

OK.
 
My point is, when people are complaining that GW could be NVIDIA's way to ensure that games run better on their HW, they shouldn't be complaining to NVIDIA, they should complain to AMD and Intel and ask why they aren't doing the same thing to make something better than GW.

Maybe they should start wondering why IHVs (H == Hardware) need to patch up 3D/GPGPU projects, with ISVs (S == Software) butter and bread: middlewares. It really only distracts from their core mission, and API development. Imagine AMD doing the hardware and Mantle and DirectX driver and TressFX and BoobFX and EasyAI and FastTree and NiceAA and FreeSync scaler hardware and ... aren't they suppose to do GPUs?
 
It's in the best interest of IHVs to provide ISVs with the tools to integrate the most advanced (and calculation intensive) visual effects possible with little effort. Those super fast GPUs aren't very useful sitting idle...
 
It's not in the best interest of IHVs to be ISVs as well, it lowers incentives. I imagine that the real middleware ISVs have a hard time feeling motivated to continue whenever a IHV creates non-publicdomain end-point/user infrastructure. You could call this competitive distortion (or Wettbewerbsverzerrung in german).
It's a vicious circle.
 
What's inside GW anyway? I see PhysX and OptiX. Those are CUDA based, unless I missed something about those 2 being ported to DC or OpenCL. (Now that would be newsworthy!) But let's assume not, then: problem solved for those 2: it only works for Nvidia! No different than Mantle.

What about Flameworks? Anything else?



I have nothing against gamework library, i have a problem when it is used by Nvidia for potentially cheat on reviews for sell their cards. When you see the performance of Nvidia and AMD GPU in the 3 games who use gameworks you can only laugh at this. The problem is not gamework, in term of open or not library, the problem is you have now games who are more controlled than never by Nvidia and who will be used in reviews, and where developpers who have pay for use GW, are not allowed to optimize the games for AMD gpu's, and where AMD cant optimize their driver for this game ( or at least without put during 3 months 10 developpers on it ( in general everyone will have finish the game in the laptime ).. no cfx support, no AA support, bad performance, bugs, no supports by developpers of AMD gpu's for this games .. point..

Im right with it, but they can just put a stickers on their site: " we have decided to dont support AMD gpu's on this game " .. Like that the thing i clear and we will dont have undred of posts in games forums asking for a technical solution for thoses games..
 
Last edited by a moderator:
Back
Top