updated 06:30 am EDT, Sat March 19, 2011
Direct X API’s a barrier to performance
AMD worldwide developer relations manager of graphics Richard Huddy has blamed Microsoft's DirectX and its APIs for limiting the potential of GPUs in PCs. '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...DirectX is getting in the way.'
Current high-end PC GPUs can contain at least as many as 512 stream processors, which should significantly outperform the graphics capabilities of consoles like the XBOX 360 which only has 48 stream processors by comparison. Yet, the real-world graphics performance is not significantly better in PC games. Part of the reason for this is put down to the fact that a number of PC games are ports of console games.
However, according to Huddy, if developers were given low-level access to PC hardware without having to go through the APIs in DirectX, the performance potential of PC hardware could be unleashed. 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.'
However, Huddy view has gained support from Cryteck's R&D technical director Michael Glueck. '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.'
DirectX is also facing pressure with the move towards the adoption of OpenCL, which taps into the processing power offered by GPUs to enhance the overall performance of a PC. Greater adoption of OpenCL which makes GPUs more general purpose will reduce the need for programmers to rely on Direct X and its code layer to harness the power of GPUs.
However, whether Microsoft responds to the pressure to streamline DirectX from coders remains to be seen. DirectX offers stability, compatibility and ease of programming that could be lost if removed. If it does not respond, Microsoft could find that coders may ultimately be able to by-pass its framework all-together. [via bit-tech]