John Carmack heeft op Slashdot een interessante posting geplaatst omtrent de status van videokaart API’s nu en in de toekomst. Probleem nu is dat videokaart fabrikanten allemaal hard bezig zijn met het ontwerpen van nieuwe features en deze dan toegankelijk maken aan de programmeur via OpenGL extenties, of een nieuwe DirectX release. Dit systeem werkt, maar het zorgt er ook voor dat de moderne API’s en videokaarten een complexe zooi zijn. Carmack verwacht dat dit binnen enkele jaren zal veranderen, en een nieuw soort API het licht zal zien :
We are rapidly approaching a real golden age for graphics programming. Currently, cards and API's are a complex mess of hundreds of states and function calls, but the next two years will see the addition of the final primitive functionality needed to allow arbitrarily complex operations with graceful performance degradation.
At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C. Just like any CPU can compile any C program (with various levels of efficiency), any graphics card past this point will be able to run any shader. Some hardware vendors are a bit concerned about this, because bullet point features that you have that the other guy doesn't are a major marketing feature, but the direction is a technical inevitability. They will just have to compete on price and performance. Oh, darn.
It's a Turing machine point. Even if OpenGL 2.0 and DX10 don't adopt the same shader description language, they will be functionally equivalent, and could be automatically translated.
There is lots of other goop like texture specification and context management that will still be different between API, but the core day-to-day work of a graphics programmer will be basically above the disputes.