If DirectX is the problem, AMD, Nvidia and Microsoft should form a Team to develop a better DirectX
That was tried with DX10. nVidia didn't want to wait, and we got DX9c instead. Consoles use these chips, slightly modified, but you can almost literally blame the problem with performance disparity between platforms entirely on nV pushing out capable hardware too early.
The flip-side, of course, is that consoles are still doing as well as they are thanks to nV pushing forward-looking technology earlier.
Plain and simple, nV officially stated, Microsoft doesn't know hardware, so what Microsoft wanted to do with DX10 just wasn't the right way to do things.
..and here we sit. Exponential real-world hardware performance increases, usable performance increase down to outright mediocre.
nVidia has then gone on to exploit what Microsoft put forward in 10.1, and said screw you, Microsoft, once again, and that inititive failed yet again.
Now we have CUDA, and nVidia has effectively held back Microsoft from implementing what truly is the proper platform.
So, now, nvidia hold patents that prevent other makers from implementing the same sort of software-hardware integration using DX(CUDA API library), so DX has to go, so that nVidia no longer holds so much control.
the problem is that the replacement...it's gonna be filled with the same problems, no matter what.