On the ATI/AMD side we only started serious code sharing relatively recently -- the Sep 2007 driver was the first time that real benefits were visible although work started a couple of years before that. Remember that we focused on open source drivers for Linux until ~2002 when we started working with proprietary drivers as a consequence of bringing FireGL into ATI, and that by 2007 we had re-started the open source support efforts.
Before looking for a single big reason why the open source drivers are slow relative to proprietary it's probably worth taking a fresh look at Michael's last benchmark report :
The delta between open and closed drivers has dropped to what can be explained by "a few hundred developer years of optimization" on the pre-6xx side. Drivers for the 6xx and higher generations are moving towards the same point, although they'll probably need a shader compiler revamp before they get there. The 3xx-5xx driver stacks had a fairly sophisticated shader compiler, while the shader compiler for 6xx and higher is not at the same level yet.
The secret to driver performance is not that different from the secret to a good English lawn - "just seed and roll for 150 years" ;)
Thanks i missed to read that article before.
I hope that at least with the new Amd Apu that situation change given that proprietary Amd driver (apart bugs) aren't available forever and perhaps the change on the Gpu on Apu could be more limited(1) and this should make more easy and fast a code optimization even on open source driver.
Put aside the remain problem of support of new standard, another issue given that involve other project.
(1) For example on the Intel Ivy Bridge will be support for new standard but the hardware architecture probably will don't change much, if the same thing will happen for the future Apu from Amd ...
Perhaps isn't a good wish, given that a lower hardware innovation reduces even the possible maximum performance, but if this could help the open source driver to be ready faster and with good performance, i'm more then happy the same.
How about ripping the shader compiler from fglrx then?
Originally Posted by bridgman
And I mean ripping: it doesn't need to work, just let the open source devs look at it and make it work...
trying to think out of the box...