I have a general question: For a game or application to use a modern graphic board, does it have to be written specifically against the GPU? Or could a quite old, but graphic intensive application/game make use of a new graphic board?
And if applications must be written in a special way to use a GPU, is there a difference between ATI and nVidea from the programmers view?
Modern compilers tend to do a good job with GPU's because the compiler's have gotten better and better at multi-CPU programing over the pass two decades. GPU can be used to do other calculations that just drawing and redrawing screens. They are extremely oriented towards floating point computations which makes them better than a normal CPU at something and worse at others. The problems tends to be that most most manufactures don't let you bypass their drivers and run code on the GPU it's self.
DxDiag from DirectX 6.1 (4.06.02.0436) running on
Windows 95 and DirectX 1.0
In late 1994 Microsoft was on the verge of releasing its next operating system, Windows 95. The main factor that would determine the value consumers would place on their new operating system very much rested on what programs would be able to run on it. Three Microsoft employees – Craig Eisler, Alex St. John, and Eric Engstrom – were concerned because programmers tended to see Microsoft's previous operating system, MS-DOS, as a better platform for game programming, meaning few games would be developed for Windows 95 and the operating system would not be as much of a success.
DOS allowed direct access to video cards, keyboards, mice, sound devices, and all other parts of the system, while Windows 95, with its protected memory model, restricted access to all of these, working on a much more standardized model. Microsoft needed a way that would let programmers get what they wanted, and they needed it quickly; the operating system was only months away from being released. Eisler (development lead), St. John, and Engstrom (program manager) worked together to fix this problem, with a solution that they eventually named DirectX.
The first version of DirectX was released in September 1995 as the Windows Games SDK. It was the Win32 replacement for the DCI and WinG APIs for Windows 3.1. Simply put, DirectX allowed all versions of Microsoft Windows, starting with Windows 95, to incorporate high-performance multimedia. Eisler wrote about the frenzy to build DirectX 1 through 5 in his blog.