AMD, NVIDIA, and Developers Weigh In On GameWorks Controversy 80
Dputiger writes: "Since NVIDIA debuted its GameWorks libraries there's been allegations that they unfairly disadvantaged AMD users or prevented developers from optimizing code. We've taken these questions to developers themselves and asked them to weigh in on how games get optimized, why NVIDIA built this program, and whether its an attempt to harm AMD customers. 'The first thing to understand about [developer/GPU manufacturer] relations is that the process of game optimization is nuanced and complex. The reason AMD and NVIDIA are taking different positions on this topic isn't because one of them is lying, it’s because AMD genuinely tends to focus more on helping developers optimize their own engines, while NVIDIA puts more effort into performing tasks in-driver. This is a difference of degree — AMD absolutely can perform its own driver-side optimization and NVIDIA's Tony Tamasi acknowledged on the phone that there are some bugs that can only be fixed by looking at the source. ... Some of this difference in approach is cultural but much of it is driven by necessity. In 2012 (the last year before AMD's graphics revenue was rolled into the console business), AMD made about $1.4 billion off the Radeon division. For the same period, NVIDIA made more than $4.2 billion. Some of that was Tegra-related and it's a testament to AMD's hardware engineering that it competes effectively with Nvidia with a much smaller revenue share, but it also means that Team Green has far more money to spend on optimizing every aspect of the driver stack.'"
Wrong target of blame. (Score:1, Insightful)
"Quirks mode" all over again? (Score:4, Insightful)
to me it sounds like again like the beginning of Internet Explorer vs. Firefox compliance to HTML standards.
Down to the detail of how it pans out:
- one company being the popular one (Microsoft, Nvidia), so everybody code to their platform (IE, drivers) and end up unknowingly produce bad that code that happen to rely on the peculiarities of this platform (the non standard assumption of Nvidia's drivers, the weird re-interpretation of HTML done by IE's engine). When there are problem, they tend to hack their own code.
- the other company being the underdog (Mozilla, AMD) making a platform (Firefox, Catalyst) that tries to follow the open standard to the letter (HTML5, OpenGL), but in the end other person's code (websites, code) behaves poorly, because it breaks standard and relies on quirks that aren't present in that platform. The users complain of problem (broken HTML rendering worse under Firefox than IE, non-compliant openGL code's performance being more degraded on AMD then Nvidia hardware).
Funnily, if past history is any indicator, on the long run AMD's approach is better and either them or one of their successor is bound to manage to bring opengl-compliance more important than driver tricks.
(the fact that AMD is dominating the current iteration of consoles, might help bring more power to them)
Interestingly the embed world might one also end up helping just like it did the browser wars (Internet Explorer was far less prevalent in embed machine like PDA/Smartphone/Tablet than on desktop and the problems with broken HTML became much more apparent, and compliance with HTML5 [sure to run on as much platforms as possible] was determinant. Also the embed eco-system mostly centered around compliant engine (like Webkit)) due to the same factors (extremely heterogeneous ecosystem hardware-wise, where Nvidia is just one player among tons of others with their Tegra platform. compliance with OpenGL ES is what is going to be determinant as the embed platforms are going to need a lingua franca to insure that porting an engine is as smooth as possible and works easily on all smartphones/tablets, no matter if they boast PowerVRs, Vivante, Lima, Adreno, etc.)
Maybe we might need something along Acid test and w3c conformancy test to exercise drivers and test game code for standard non-compliance.
(That partly exist as "piglit" - the test suite that freedesktop.org uses to test opensource mesa and gallium drivers).
Differnet perspective (Score:5, Insightful)
AMD's perspective is that Mantle is less problematic:
- Mantle's spec are open.
- Also it's just a very thin layer above the bare hardware. Actual problems will mostly be confined in the actual game engine.
- Game engine code is still completely at the hand of the developer and any bug or short coming is fixable.
Whereas, regarding GameWorks:
- It's a closed-source blackbox
- It's a huge midleware, i.e.: part of the engine itself.
- The part of the engine that is GameWorks is closed and if there are any problems (like not following standard and stalling the pipeline) no way that a developer will notice and be able to fix, even as AMD are willing to help. Whereas Nivida could be fixing this by patching around the problem in the driver (as usual), because they control the stack.
So from their point of view and given their philosophies, GameWorks is really destructive, both to them and to the whole market in general (gameworks is as much problematic to ATI, as it is to Intel [even if it is a smaller player] and to the huge diverse ecosystem of 3D chips in smartphone and tablets).
Now, shift the perspective to Nvidia.
First they are the dominant player (AMD is much smaller, even if they are the only other one worth considering).
So most of the people are going to heavily optimise game to their hardware, and then maybe provide an alternate "also ran" back-end for mantle. (Just like in the old days of Glide / OpenGL / DX backends).
What does Mantle bring to the table? Better driver performance? Well... Nvidia has been into the driver optimisation business *FOR AGES*, and they are already very good at it. What is the more likely, that in case of performance problems developers are going to jump on mass to a newer API that is only available from one non-dominant PC player, and a few consoles, and completely missing on any other platform? Or that Nidia will patch around the per problem by hacking their own platform, and dev will continue to use the ?
In Nvidia's perspective and way to work, Mantle is completely irrelevant, barely registering a "blip" on the marketing-radar.
that's why there's some outcry against GameWorks, whereas the most Mantle has managed to attract is a "meh". (and will mostly be considered as yet another wanabe-API that's going to die in the mid- to long-term)
Re:AMD supports openGL just fine (Score:3, Insightful)
If the spec is even remotely vague about something, it seems like AMD consistently chooses the least robust and slapdash manner to resolve that ambiguity.
As a side note I'm fairly certain AMD only opened up their drivers because they're so terrible at writing them they're hoping the community will do it for them. It's not altruism, it's bottom line they don't have the resources to do it well and decided to try and look good. It's just PR.