It's funny,' says AMD's worldwide developer relations manager of its GPU division, Richard Huddy. 'We often have at least ten times as much horsepower as an Xbox 360 or a PS3 in a high-end graphics card, yet it's very clear that the games don't look ten times as good. To a significant extent, that's because, one way or another, for good reasons and bad - mostly good, DirectX is getting in the way.' Huddy says that one of the most common requests he gets from game developers is: 'Make the API go away.'



'I certainly hear this in my conversations with games developers,' he says, '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.'

It can vary from almost nothing at all to a huge overhead,' says Huddy. 'If you're just rendering a screen full of pixels which are not terribly complicated, then typically a PC will do just as good a job as a console. These days we have so much horsepower on PCs that on high-resolutions you see some pretty extraordinary-looking PC games, but one of the things that you don't see in PC gaming inside the software architecture is the kind of stuff that we see on consoles all the time.



On consoles, you can draw maybe 10,000 or 20,000 chunks of geometry in a frame, and you can do that at 30-60fps. On a PC, you can't typically draw more than 2-3,000 without getting into trouble with performance, and that's quite surprising - the PC can actually show you only a tenth of the performance if you need a separate batch for each draw call.

Glueck also points out that 'some years ago, all CPU performance critical tasks were done by the programmer, from low-level assembly optimisations to high-level thread and memory management. Now that the "compute world" merges CPUs and GPUs, you waste a lot of time, by using higher level API-layers such as OpenCL, CUDA or Direct Compute, to execute less smart algorithms on GPUs, because they still run faster than on CPUs.



'Having direct access to hardware would mean no drivers magically translating your byte code once again, and also having low-level memory management available, which you have to some degree with CUDA, and also your own thread scheduler would be really enjoyable. It definitely makes sense to have a standardised, vendor-independent API as an abstraction layer over the hardware, but we would also prefer this API to be really thin and allow more low-level access to the hardware. This will not only improve performance, but it will also allow better use of the available hardware features.'

If there’s one thing PC gamers truly despise, it’s console-led game development that results in shoddy performance. PC ports have an ugly tendency towards glitchiness thanks to development that favors the Xbox 360 and PlayStation 3, despite the overwhelming superiority of computer GPUs. With consoles now five years out of date, have you ever wondered why PC games don’t look vastly superior to their console counterparts? Sure, they’ll run at higher resolutions with more detailed textures, but the difference isn’t as extreme as we might expect. AMD has an opinion on the subject , and points a condemning finger straight at APIs. The thing they say is really holding game development back on the PC front? DirectX.In many ways, though, the benefits of APIs outweigh the disadvantages. Without APIs, devs would have to write all the low-level hardware code themselves, making sure their games worked on an enormous range of PC hardware. Additionally, saying PC games “don’t look ten times as good” as console games seems to be bordering on a logical fallacy. Ten times the raw processing power doesn’t necessarily indicate that the game should look ten times as amazing. As we draw closer to photorealistic graphics, generational improvements will become more subtle than ever.But bypassing an API on a PC still presents a far greater challenge than it would on a console. If a game works on one PlayStation 3, it’ll work on them all. As Huddy admits, programming directly to the hardware isn’t for all PC developers, but it might be a nice option for some, allowing them to bypass the overhead of APIs.Crytek’s R&D Director Michael Gluek seems to have the right idea:Getting rid of APIs doesn’t make sense at this point--they’re too important for making developers’ lives easier and ensuring hardware compatibility. But making tools like DirectX thinner and lighter, giving game devs more power to work with? That’s change we can get behind, assuming the change really is needed. Basically, what we're saying is this: give us more Battlefield 3