This is false, at least for AMD hardware. The problem is that interpolating vertex attributes for each pixel is done by specialized hardware, and with that many vertex attributes that need to be interpolated you run
into a bottleneck there instead. High end hardware has no problem with this, but low end hardware can hit a huge bottleneck here. I compared these two shaders against each other:
Interpolated texture coordinates: http://www.java-gaming.org/?action=pastebin&id=582
Calculate coordinates per pixel: http://www.java-gaming.org/?action=pastebin&id=583
Using AMD’s ShaderAnalyzer I checked the (theoretical) performance of those two shaders. On newer high-end and mid-end cards the performance was the same since they’re bottlenecked by the texture fetches, but for all low-end and most older cards performance was much worse for the interpolated one.
[tr]
[td]Name
Radeon HD 2400
Radeon HD 2600
Radeon HD 2900
Radeon HD 3870
Radeon HD 4550
Radeon HD 4670
Radeon HD 4770
Radeon HD 4870
Radeon HD 4890
Radeon HD 5450
Radeon HD 5670
Radeon HD 5770
Radeon HD 5870
Radeon HD 6450
Radeon HD 6670
Radeon HD 6870
Radeon HD 6970
[/td]
[td]
Throughput(Bi) interpolated
200 MPixels\Sec
200 MPixels\Sec
791 MPixels\Sec
827 MPixels\Sec
300 MPixels\Sec
750 MPixels\Sec
1500 MPixels\Sec
1500 MPixels\Sec
1700 MPixels\Sec
179 MPixels\Sec
1033 MPixels\Sec
2267 MPixels\Sec
2267 MPixels\Sec
828 MPixels\Sec
2560 MPixels\Sec
1680 MPixels\Sec
2816 MPixels\Sec
[/td]
[td]Throughput(Bi) calculated
160 MPixels\Sec
213 MPixels\Sec
791 MPixels\Sec
827 MPixels\Sec
320 MPixels\Sec
800 MPixels\Sec
1600 MPixels\Sec
2000 MPixels\Sec
2267 MPixels\Sec
306 MPixels\Sec
1033 MPixels\Sec
2267 MPixels\Sec
2267 MPixels\Sec
1412 MPixels\Sec
2560 MPixels\Sec
1680 MPixels\Sec
2816 MPixels\Sec[/td]
[/tr]
With the exception of the HD2400, calculating texture coordinates is always equally fast or faster.