Sign in with
Sign up | Sign in

AMD: DirectX Holding Back Game Performance

By - Source: Bit-Tech | B 78 comments

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.

Discuss
Display all 78 comments.
This thread is closed for comments
Top Comments
  • 11 Hide
    bystander , March 18, 2011 9:05 PM
    Reading over the article, it seems that the API has more benefits than negatives. Especially for the non elite developers.
  • 10 Hide
    Stryter , March 18, 2011 9:25 PM
    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.
Other Comments
  • -7 Hide
    wiyosaya , March 18, 2011 8:55 PM
    DirectX is an M$ specific api. How could it be anything other than bloatware? :p 
  • -3 Hide
    plznote , March 18, 2011 8:56 PM
    lol wut?
    Didn't know that.
  • 11 Hide
    bystander , March 18, 2011 9:05 PM
    Reading over the article, it seems that the API has more benefits than negatives. Especially for the non elite developers.
  • 1 Hide
    Trialsking , March 18, 2011 9:09 PM
    But I thought the consoles were 10 times better than PC's. Thats what all the console fanboys tell me.
  • 10 Hide
    Stryter , March 18, 2011 9:25 PM
    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.
  • 2 Hide
    kcorp2003 , March 18, 2011 9:26 PM
    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.php?p=1535975&postcount=8
  • 3 Hide
    Anonymous , March 18, 2011 9:29 PM
    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.
  • 2 Hide
    nforce4max , March 18, 2011 9:39 PM
    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?
  • 3 Hide
    Anomalyx , March 18, 2011 9:39 PM
    StryterWhy 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.
  • 2 Hide
    NightLight , March 18, 2011 9:47 PM
    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.
  • 4 Hide
    Anonymous , March 18, 2011 9:49 PM
    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.
  • 3 Hide
    carlhenry , March 18, 2011 9:53 PM
    AnomalyxSo 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).
  • 2 Hide
    carlhenry , March 18, 2011 9:54 PM
    ^ no pun intended :D 
  • 2 Hide
    Anonymous , March 18, 2011 10:00 PM
    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...
  • 1 Hide
    ProDigit10 , March 18, 2011 10:21 PM
    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).
  • 3 Hide
    Marcus52 , March 18, 2011 10:26 PM
    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/03/interview-with-father-of-directx-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.

    ;) 



  • 4 Hide
    pelov , March 18, 2011 10:31 PM
    OpenCL OpenGL please? :) 
  • 0 Hide
    Anonymous , March 18, 2011 10:35 PM
    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.
  • -2 Hide
    Usersname , March 18, 2011 10:38 PM
    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.
  • 2 Hide
    Thunderfox , March 18, 2011 10:41 PM
    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.
Display more comments