I'm going to talk in terms of fragments shaders here, but I think (as do others here who've stated as much) that fragment shaders and vertex shaders will be unified in the not too distant future so most of this applies to vertex shaders as well.
It seems from my browsing of some threads here that quite a few people believe fragment shaders are headed more and more towards being a general cpu type architecture. From my experience I don't fully agree with that sort of theory. Don't get me wrong, I think gpus will continue to more programmable and handle longer programs faster, but that doesn't necessarily mean becoming like a cpu. For instance modern general-purpose cpus are very efficient at branching and sparse accesses. I don't believe gpus will/should focus on those areas. Handling these cases fast would require a tremendous effort by gpu manufactures. While these examples might be useful for some fringe cases in graphics, for most graphics algorithms you don't want branching since it often leads to aliasing of your surfaces.
What I would like to see are larger programs being allowed, I've at times felt limited by the 9700s 64 instruction limit unless I'm willing to complicate things by breaking my shader into multiple passes. I'd also like to see faster fragment shaders because currently if I want to use 100 instruction programs on more than a few small select objects in my scene things become unbearably slow. So now that I've stated what I do want, what I don’t care about right now is more functionality. Looking at d3d and it's ps2.0 vs ps3.0 is there any thing I'd really like there? Sure guess the derivatives would be nice, but those first 2 things I mentioned are much more important to me. I know that most people have only seen the very tip of the iceberg of what current fragment shaders can do. And I hope that current hardware makers make what we have faster so it's more usable before they focus on new features.
Of course this is just one man's opinion, and I'm curious to hear what others think. I'd be really interested if someone who knows fragment shaders disagrees and thinks that we need more features before focusing on speed, and what those features should be.
It seems from my browsing of some threads here that quite a few people believe fragment shaders are headed more and more towards being a general cpu type architecture. From my experience I don't fully agree with that sort of theory. Don't get me wrong, I think gpus will continue to more programmable and handle longer programs faster, but that doesn't necessarily mean becoming like a cpu. For instance modern general-purpose cpus are very efficient at branching and sparse accesses. I don't believe gpus will/should focus on those areas. Handling these cases fast would require a tremendous effort by gpu manufactures. While these examples might be useful for some fringe cases in graphics, for most graphics algorithms you don't want branching since it often leads to aliasing of your surfaces.
What I would like to see are larger programs being allowed, I've at times felt limited by the 9700s 64 instruction limit unless I'm willing to complicate things by breaking my shader into multiple passes. I'd also like to see faster fragment shaders because currently if I want to use 100 instruction programs on more than a few small select objects in my scene things become unbearably slow. So now that I've stated what I do want, what I don’t care about right now is more functionality. Looking at d3d and it's ps2.0 vs ps3.0 is there any thing I'd really like there? Sure guess the derivatives would be nice, but those first 2 things I mentioned are much more important to me. I know that most people have only seen the very tip of the iceberg of what current fragment shaders can do. And I hope that current hardware makers make what we have faster so it's more usable before they focus on new features.
Of course this is just one man's opinion, and I'm curious to hear what others think. I'd be really interested if someone who knows fragment shaders disagrees and thinks that we need more features before focusing on speed, and what those features should be.