[citation][nom]Tomfreak[/nom]driver bug fix still couldnt explain the performance gap diff between 7950 vs 7870 despite the latter got much lesser spec. Does that explains to me that the engineers behind the 7900 are retarded compare to 7800 series?[/citation]
No, but it does mean that you don't understand graphics performance scaling. The 7870 has higher clock frequencies. Higher frequencies scale far better than higher core counts. The memory bandwidth difference isn't very important (if the 680 can make do with a 256 bit GDDR5 interface and beat the 7970 that has a 384 bit GDDR5 interface, well then it seems that 256 is still enough). The 7870 actually doesn't have much lower specifications than the 7950 anyway. 1280 cores at 1GHz are almost as good as 1792 cores at 800MHz. The 7870 and 7970 both have 32 of the same ROPs.
The 7950 has an advantage in memory bandwidth, but not much else. In fact, the two have highly similar specifications, except for the memory bandwidth. That the 680 beats the 7970 in gaming performance despite it's 256 bit interface tellls me that a 384 bit interface isn't necessary right now, so the 7950's advantage here isn't too relevant anyway. The 7950 is probably better for GPGPU/compute work that makes more efficient usage of high core counts, but games don't, so the two cards are very similar. In fact, increasing the core count will increase performance almost half as linearly (it's probably closer to 2/3 than 1/2) as increasing the clock frequency.
This problem increases as core count increases. Basically, a 64 core GPU going to 128 cores will be closer to double the performance than a 640 core GPU going to 1280 cores. It would take a hardware change, not a driver/software change, to make the 7950 beat the 7870. This is also why a 7950 clocked at 925MHz and 1375MHz memory will be approximately equal to a 7970 in gaming performance and at 1GHz core and 1375MHz, meets or beats the 7970 slightly. Basically, the 7970 is a poor buy for anyone who is willing to overclock. It's like buying the FX-8150 for highly threaded work despite the fact that the 8120 overclocks to the exact same frequencies at the exact same voltages because there actually isn't much binning going on, just the same CPU sold with a higher multiplier at a higher price for people who are either ignorant of this and/or don't overclock.
The 7950 versus the 7870 is a little different because the core count difference is much greater, so it actually matters more. However, with the large clock frequency difference too, the core count difference is nullified. However, if the 7950 was overclocked to the 7870's stock clocks, it would beat it considerably; by about as much as the 7970 at reference clocks.
AMD should have had the 7970 reference GPU clock at 1125MHz, 7950 reference clock at 950MHz, and the 7870 could have remains at 1GHz. That would have let the 7970 and 7950 explore some of their huge clock frequency headroom and kept the cards all differentiated more properly by their performance. That way, the 7870 wouldn't have been as close to the 7950, but would still hang with the GTX 580 in performance.