Time complexity with respect to the length of fragment shader.

Hi,

Is there such a time complixity curve offically posted either by Nvidia or ATI?

According to MS docs in D3D’s pixel shaders, most instructions take 1 cycle. A few take 2.
It doesn’t say much more than that.

There are some issues when it comes to a specific GPU.
Some website (can’t find the link) says that for NV FX, you should have 2 tex instructions followed by 1 alu inst. MS says that they will (or already have) patched their HLSL to take this into account.
ATI doesn’t have this issue.

According to that same website, a few take 3 cycles, and I remember that their was 1 that takes 7.

I think Korval has the link to the site.

From what you said, can I conclude that the complexity is still linear?

yes, linear, if you don’t bother about what the fp actually does. because that mathers much more… and there, completely different rules for ati and nvidia apply.

Sorry, this is a little off-topic, because it´s not about “real” fragment-programs:

What about nVidias register combiners? I know that it is slower when i enable another combiner stage, but is there a speed-difference if i only multiply stuff or if i do a dot-product (or an addition, which always comes down to 2 multiplications and one addition)?

Thanks,
Jan.

About RC: on GeForce3 you can use two general combiners at no cost. With each combiner you add after it the performance drops two times.

a combiner is one instructions. no mather what you do in it… so no, there is no performance gain or loss what you do…

i thought it was like this:

1-2 gc => 100% perf
3-4 gc => 50% perf
5-6 gc => 25% perf…

hm no, that sounds too bad if i enable ALL 8

never had a gf3/gf4… only gf2…

a combiner is one instructions. no mather what you do in it… so no, there is no performance gain or loss what you do…

A combiner is one instruction on a < GeForce 3 card. On GeForce 3/4 cards, every 2 combiners is one additional cycle, with the first two (and the final) being free.