Download the Tom's Hardware App from the App Store
The reference for current tech news
Yes No
Ads

AMD: DirectX Holding Back Game Performance

by - source: Bit-Tech

AMD claims that game developers actually want the API to go away.

With all the hype surrounding DirectX 11 and how it's changing the face of PC gaming in regards to mind-blowing eye candy, AMD's worldwide developer relations manager of its GPU division, Richard Huddy, claims that developers actually want the API to go away, that it's getting in the way of creating some truly amazing graphics.

"I certainly hear this in my conversations with games developers," he told Bit-Tech in an interview. "And I guess it was actually the primary appeal of Larrabee to developers – not the hardware, which was hot and slow and unimpressive, but the software – being able to have total control over the machine, which is what the very best games developers want. By giving you access to the hardware at the very low level, you give games developers a chance to innovate, and that's going to put pressure on Microsoft – no doubt at all."

Outside a few current developers who have announced that PC game development will take priority over console versions, a good chunk of the gaming industry is developing titles for the Xbox 360 and PlayStation 3 first and then porting them over to the PC thereafter. The result is that PC versions are only slightly superior to their console counterparts on a visual sense even though a high-end graphics card has at least ten times the horsepower of the Xbox 360's Xenos GPU and the PlayStation 3's GeForce 7-series architecture.

What this means is that-- although PC graphics are better than the console version-- developers can't tap into the PC's true potential because they can't program hardware directly at a low-level, forced to work through DirectX instead. But there are benefits to working with APIs including the ability to develop a game that will run on a wide range of hardware. Developers also get access to the latest shader technologies without having to work with low-level code.

But according to Huddy, the performance overhead of DirectX is a frustrating concern for developers. "Wrapping it up in a software layer gives you safety and security," he said. "But it unfortunately tends to rob you of quite a lot of the performance, and most importantly, it robs you of the opportunity to innovate."

He added that shaders, which were introduced back in 2002, were designed to allow developers to be more innovative, to create a more visual variety in games. But now many PC games have the same kind of look and feel because developers are using shaders "to converge visually."

"If we drop the API, then people really can render everything they can imagine, not what they can see – and we'll probably see more visual innovation in that kind of situation."

The interview goes on to define the performance overhead of DirectX, explaining that the actual amount depends on the type of game in development. Huddy also talks about the possible problems of developing for a multiple GPU architecture on a low-level if the API is ignored.

"The problem with the PC is that you ideally want a PC that doesn't crash too much, and if a games developer is over-enthusiastic about the way they program direct to the metal, they can produce all sorts of difficulties for us as a hardware company trying to keep the PC stable," he said.

The interview is definitely an awesome read, so head here to get the full scoop.

Share:
80
Comments
X
Submit

Comments
Add your comment
wiyosaya 03/18/2011 10:55 PM
Show
plznote 03/18/2011 10:56 PM
Hide
--3+

lol wut?
Didn't know that.

bystander 03/18/2011 11:05 PM
Hide
-10+

Reading over the article, it seems that the API has more benefits than negatives. Especially for the non elite developers.

trialsking 03/18/2011 11:09 PM
Hide
-1+

But I thought the consoles were 10 times better than PC's. Thats what all the console fanboys tell me.

Stryter 03/18/2011 11:25 PM
Hide
-10+

Why on earth would you want to program graphics at a low-level. It would take forever to create even a small number of visuals. That's why we have high-level languages in the first place. The only reason I can see working with low-level code is for performance purposes.

I also find it very hard to believe that there are any huge restrictions in what a developer can create with a high level api, versus low-level coding. And with graphics engines like CryEngine and Unreal, the case this guy's making seems weak.

kcorp2003 03/18/2011 11:26 PM
Hide
-2+

Me and other developers were discussing this for years. Its nice to see Huddy took the step forward. At the end of the day, writing an assemble for a diverse market is not wise. The gap between consoles and PC is getting narrowed. like or not.

at least Johan Andersson (DICE dev) is heavily pushing for this.
http://forum.beyond3d.com/showpost [...] ostcount=8

Anonymous 03/18/2011 11:29 PM
Hide
-3+

Great Idea if AMD is going to pay developers for the huge additional cost the are going to have. The benefits of DirectX are greater then the disadvantaged.

nforce4max 03/18/2011 11:39 PM
Hide
-2+

Actually coding for the game engines and visual api for a complete product is a lot more difficult than people think. Developers are looking for ways that won't put a cap on what they want to do but over all they should focus on game play experience and script rather than just visuals as many have only done over the past decade. Remember the 90s ware one didn't know just how far things can be pushed across the board?

Anomalyx 03/18/2011 11:39 PM
Hide
-3+

Stryter :
Why on earth would you want to program graphics at a low-level. It would take forever to create even a small number of visuals. That's why we have high-level languages in the first place. The only reason I can see working with low-level code is for performance purposes.


So because you can't program graphics at a low level means professionals shouldn't either? Plus, you answered your own question. Working with graphics on that low of level would give massive performance improvements.

We aren't talking about chucking the API altogether... just allowing developers the choice not to use it. Forcing them to use the API is rather... Apple-esque.

NightLight 03/18/2011 11:47 PM
Hide
-2+

I guess the part of "all games looking alike" has some truth to it, when thinking about shooters like moh, cod etc... they have a point. But the costs of making a video game are high enough as it is. If every game developer is gonna make his game from the ground up, it's gonna take forever. For one, I would like to see diversification myself, but I think it is nog longer possible in this current economy.

Anonymous 03/18/2011 11:49 PM
Hide
-4+

Is that the reason why everybody is still coding in assembler?

Jokes aside isn't that what Compilers are for? Turning high level code into optimized low level code. Preferably as low as possible.

carlhenry 03/18/2011 11:53 PM
Hide
-3+

Anomalyx :
So because you can't program graphics at a low level means professionals shouldn't either? Plus, you answered your own question. Working with graphics on that low of level would give massive performance improvements. We aren't talking about chucking the API altogether... just allowing developers the choice not to use it. Forcing them to use the API is rather... Apple-esque.


what? he didn't say somebody FORCES to use the said API. he said, it would take FOREVER (sorta...) to program at low level. he also didn't say you can't do it either. he was pointing out that the guy here is blabbering the obvious. low level > high level langauges -- BUT reality check people. it would be absurd to program a massive game with low level. if blizzard uses this, it would take at least 50 years to develop starcraft 3. by then, the "visual innovation" you came up with would look like crap with direct xXX (twenty).

carlhenry 03/18/2011 11:54 PM
Hide
-2+

^ no pun intended :D

Anonymous 03/19/2011 12:00 PM
Hide
-2+

I actually think it's kind of ironic that AMD has someone saying this, as low-level (likely non platform-agnostic) graphics programming would end up hurting AMD since developers these days seem to favor nVidia.

I think many of the developers asking for the direct control have been spending too much time with consoles (where everyone has the same GPU). The logistical nightmare of supporting so many different GPUs on the market would make game development costs and times skyrocket to get the performance they want with this low-level optimization with different GPUs. Even if you limit the GPUs, optimizing heavily for (for example) Radeon 5870, 6970, GeForce 485 and 580 will be FAR more difficult than just doing Xenos in the X360. Not to mention throwing in Crossfire/SLI and GPUs that launch after the game...

ProDigit10 03/19/2011 12:21 PM
Hide
-1+

What if they create smaller apis that run parallel with each other, one like DX that keeps the system safe, and another that is in direct contact with the graphics card drivers? (kind of like, the graphics card drivers will determine how many shaders will and can be used on a system, and what effects go where.

It is true that even a small and portable psp go has great graphics for it's size and power consumption, but a pc has the possibility to run many of those games at much much higher resolutions (esp when using tri- or penta screen setup).

Marcus52 03/19/2011 12:26 PM
Hide
-3+

DirectX was originally developed to essentially by-pass Windows because Windows was unsuitable for gaming. Unfortunately Alex St. John wasn't a good politician and didn't stay with Microsoft long and DirectX began to lose it's focus as soon as he walked out the door. It probably never was what he really wanted it to be, but St. John turned Windows around for gaming, making an operating system that was poor for gaming into one that was great for gaming. DirectX even came to surpass OpenGL, and while devs might bleat about DX11, it's the best API suite there is today.

Microsoft has ignored Alex St. John's methods and message, what made DX a standard for game developers and what made them happy to use it. They've made Windows more a part of how it works, not less, and that's a bad thing.

Here's an Alex St. John interview that I think pretty much sums things up, from a few years ago:

http://rampantgames.com/blog/2007/ [...] -alex.html

All that being said though, what is holding game developers back is the developers themselves, not any API. That's ridiculous. DX is just a tool to make life easier for you, it's not a limitation. Step out on the wild side, my friends, and expand what can be done instead of gripe about what can't be.

;)



pelov 03/19/2011 12:31 PM
Hide
-4+

OpenCL OpenGL please? :)

Anonymous 03/19/2011 12:35 PM
Hide
-0+

ATI if your just complaining then shut up. or do something about it and create your own API. otherwise you have no right to complain in my eyes.

usersname 03/19/2011 12:38 PM
Hide
--3+

It's back to forever crashing PC's or dumbed down console game play and implementation.

Just get rid of DirectX and go with OpenGL/CL.

Being less beholden to MS and DirectX will encourage innovation because all MS does is stifle it.

Thunderfox 03/19/2011 12:41 PM
Hide
-2+

This argument is self defeating. If a PC graphics card is 10x more powerful than a console, then the only benefit of this is if you can get greater than a 10x performance increase from doing it.

The gap between consoles and modern video cards is narrower already than it should be because devs don't want to (or can't afford to) take the time to optimize a game for the superior capabilities of the PC, so how on earth is it supposed to benefit anyone if we split the PC market into multiple segments, each of which they would have to optimize for?

They'd be better off developing for the PC first and then dumbing it down to work on a console. The the low level optimization that is possible on a console could then be used to squeeze the most performance possible out of the ported engine.

alextheblue 03/19/2011 12:52 PM
Hide
-6+

wiyosaya :
DirectX is an M$ specific api. How could it be anything other than bloatware?


Actually DirectX beats the hell out of its nearest competitor, OpenGL. Even John Carmack, an OpenGL DIEHARD (who is still using OGL), has admitted that DirectX is better now.

Anyway, the only way this would work is if their low-level render path was only ONE of multiple render paths. In other words, have a low-level path or two, and then also have a standard (but slower) DX 11 or OGL render path. If you did this, then you could run the game on future hardware without problems.

If you DIDN'T do this, then there's no guarantee that your low-level render paths will work properly on completely new GPU architectures a few years down the road. One of the advantages of higher level APIs is that your underlying hardware can completely change, and as long as the drivers and hardware can work together to be compliant with the APIs, then it doesn't matter what is under the hood.

Not to mention the fact that DX11 is pretty well threaded, which really helps reduce bottlenecking. I imagine that they'll only push this even further in the next version.

rmmil978 03/19/2011 12:52 PM
Hide
-2+

Yeah his argument makes no sense. He basically says : DirectX is making it so PC games can't take advantage of the true power of modern discreet GPU's...of course, getting rid of DirectX would result in games that A) Made PC's constantly crash or B) Cost WAY MORE to develop, making them not profitable at all. Basically that means getting rid of DirectX is impossible. So...is he just whining?

sgtmattbaker 03/19/2011 12:55 PM
Hide
-3+

I dont know a whole lot about professional game development, but I do know that when you code something at a low level it takes longer and doesn't really lend itself to portability. The way I see it (from a perspective based on limited knowledge) is that you would have to optimize your game for tons of different hardware configurations, which is a big deal for the PC. With consoles there is a standardized platform so those issues aren't nearly as troublesome. Also, if you code at a lower level without an API aren't you going to have to implement graphical effects like shading almost from scratch? It just seems that this guy is talking about what is theoretically possible, not what is realistic.

It doesn't even make sense for this AMD fellow to be talking about the limitations of the DirectX API unless he's talking about the Xbox 360, because it doesn't seem like too many companies even care about the PC game market that much; for many companies it seems like a PC version of a game is just an afterthought. How many companies even make dedicated PC games anymore? Almost anything anymore is a console port, as evidenced by many PC games like Mass Effect 2 not even supporting the latest DirectX version (DX9, two versions behind). Also, some games that are ported to the PC don't feel right. Either the controls are kind of off (Dead Space 1 was almost totally unplayable on the PC without a game controller), the game mechanics are designed for a console or there is some other problem.

I can't imagine many companies taking the extra time to code a PC game at a lower level than the DirectX API when they won't even do more than the most basic PC version. It seems like the first step to improving graphics on PC versions of games is to actually support the latest DirectX version. Once game developers start porting console games to the PC with advanced DirectX 11 features available then they can complain about the API limiting them; it makes no sense for developers to complain when they aren't even using the latest API.

This article would make more sense if he was talking about console development, because those platforms have standardized hardware. Even then, the Playstation and the Wii use OpenGL; only the Xbox uses DirectX (DirectX9 to be precise). So the only way this article makes sense to me is if it is talking about the Xbox (it is clearly talking about the PC).

sgtmattbaker 03/19/2011 1:04 AM
Hide
-2+

Thunderfox: yes, what you're saying makes more sense. Make the game for the PC first, then port it to the consoles. I think this is what Crytek has done with Crysis 2. As I understand it, they make a game for the PC and their CryEngine 3 development platform makes Xbox 360 and PS3 optimized versions.
PC to console porting still doesn't solve tbe problem of making sure games' game mechanics and design fit the platform they are on. How many times have you played a console port or a PC port only to have it not "feel right" and/or be as fun as its primary intended platform?

atikkur 03/19/2011 1:13 AM
Hide
-1+

i you dont like it, then use something else or just creating it new. if windows os is the problem, then why not to make something cool.. like Gaming OS, with its own apis to take all neccesaries from the latest hardware (cpu/gpu). result is.. the pc that behaves like console.. with pure 10x more cool performances. dont just talk, just do it. we are waiting.

pelov 03/19/2011 1:22 AM
Hide
-2+

If graphics are limited by the API, then wouldn't it make sense to just an open source API as a standard that gets slowly pushed up? OpenGL/CL work quite well on the PC platform. If they're pushed up to compete with dx11, or whatever the current version of MS's DX they release in the future, you can have a stable API that works well with generally modern hardware but you still have the source code to improve upon it.

for instance, if you'd like to have the most incredible graphics ever designed you can just improve upon the already established code and release your product. Then make the choice of whether to release that and make it public or keep it to yourself. Ultimately, OpenGL/CL would still make steps forward and keep pushing the envelope, but at least this way you'd be free to take it upon yourself to push it even further than the industry standard.

atikkur 03/19/2011 2:07 AM
Hide
-0+

the idea of open standard (opengl) is wide compability between platforms (os). so it will have more overheads than directx i think.

Benihana 03/19/2011 2:32 AM
Hide
-1+

I regularly soil my pants at the graphics developers can push out with DirectX. I hope AMD doesn't do anything productive, otherwise I won't have any clean pants left.

jimmysmitty 03/19/2011 2:46 AM
Hide
-0+

bystander :
Reading over the article, it seems that the API has more benefits than negatives. Especially for the non elite developers.



Strangley yes. OpenGL is nice but its lagging in a lot of features that DX11 has so thats why I can't understand this.

And compared to DX9, there are some amazing effects you can do with DX11 (if you utilize SM5.0 that is).

Maybe he just hates MS. Truth is that whats really holding back gaming is consoles. Hate to say it but devs don't try as hard because consoles just lag in hardware. They can't push boundaries with 5 year old hardware. Look at the Unreal 3.975 engine. Thats mind blowing stuff that current PC hardware can handle.

WheelsOfConfusion 03/19/2011 4:11 AM
Hide
-1+

jimmysmitty :
Strangley yes. OpenGL is nice but its lagging in a lot of features that DX11 has so thats why I can't understand this.


OGL 4.0 was supposed to bring it up to feature parity with DX11, and I think they're at 4.1 now, which has some dev-friendly features thrown in. It also has the benefit of being cross-platform.

znegval 03/19/2011 4:19 AM
Hide
-1+

This "low level programming would take forever" thing is bullcrap. You know what drives humans towards difficult goals? Profit and competition. And there's lots of it in the gaming industry. Game makers could simply continue building new games using DirectX while keeping a team of engineers working on their own API (who said they would do it all in assembly forever?) for some years. Only problem would be compatibility as stated in the article.


Ads

Best offers

Newsletters


OK
Ads