Generally speaking modern GPU's are only exposing programmability at a couple of very specific points in the pipeline i.e. VS and PS. The number of programmable "spots" will increase in the future but it is likely that large part of the pipe will always remain fixed function e.g. depth, stencil testing, texture addressing and filtering etc. This is unlikely to change (any time soon) as programmable units that are capable of coming even close to the performance levels seen today would be massive. You may of course get the option to do these functions programmatically (e.g. ps2.0 up can do a large part of address gen and filter functions, albeit slowly).
Basically the internals of a modern GPU still look very different to a CPU, you might see some blocks bearing similar functionality but how it all fits together is very different. This means that data flow tends to be constrained in ways that a CPU could never consider, e.g. as described in ET's post.
So although they are growing closer, they are still worlds apart, and will remain so for sometime to come.
John.
Basically the internals of a modern GPU still look very different to a CPU, you might see some blocks bearing similar functionality but how it all fits together is very different. This means that data flow tends to be constrained in ways that a CPU could never consider, e.g. as described in ET's post.
So although they are growing closer, they are still worlds apart, and will remain so for sometime to come.
John.