The reason Nvidia works better s that their opengl drivers are better both in terms of performance, stability and rendering bugs. E.g. fglrx still isn't that stable and has rendering issues with fbo's/glsl and other modern gl features. Most open source drivers lack good glsl support and other features which are needed for sm3.0.