Glen.Able said:
somehow the points get drawn in the exact order they are in the VB?
yes, vb is an ordered stream sequence of verts
Glen.Able said:
So if some points overlap, you are still guaranteed the same output every time?
correct, if point P which is at vbuffer position7 and transformed by matrix M is repeated at position 50 in the same vbuffer and transformed by the same M, then yes it will have the same output; (that's why, for example, in OGL, if its internals can detect that some input is going to be the same output, it reuses the previous result instead of wasting time by running the same vshader on the same input)
Glen.Able said:
. the vertex shader fetches from a uv coord that's some function of the SV_VERTEXID, are they still in guaranteed order?
that's a good question actually… i don't know if u can use SVVERTEXID with VTFs (vertex texture fetches). Also, using SV_VERTEXID is not what guarantees order (this System Value only tells the IA stage to generate an ID for each vert). I don't know if vt fetches define a fetching order or if those fetches are ordered in the same way that are similar to the TIU (Texture Input Units) or Pixel Shader (texture fetches).
My guess would be that the fetching order here is guided by the texture coord generator (by the interpolator)…there's more to be said here…
Glen.Able said:
…I assume all bets are off?
-lol- well really it depends on various factors, if for example, you're really using the UAV for RW by multiple threads etc… then…
Glen.Able said:
Any thoughts on why one of these 3 techniques should be fastest?
(respectfully) i think that's not the right question to ask, they all have their use AND pros and cons. The worst u can do is to use anyone of them the “unrecommended” way, right?
Good questions !
A+ ?