What should happen is that Nvidia and Radeon should make their cards compatible with Direct3D and OpenGL, so they run smoothly with the latest versions.
Programmers then decide which graphics standard they want to use and code for that.
It all works fine in theory !
However they have to test the game on some card...
Its strange how the different cards are supposed to support the same standards but work differently. I wouldnt mind if it was hardware related but it seems to be mainly drivers.