The slots are there for communication from vertex shader to pixel shader: that's the way you pass info between them.
You need to get this "waste" mentality out of your head. It's not a "waste" if you're using them for a purpose. You need to pass the info, the slots are for passing the info, so just use (not "waste", "use") the slots.
Re: I will try it out, the thing is there should be a way of having a vertex stream linked data as for the vertex shader is, for the pixel shader also too, it should be shared memory at the same cost because it is just the same info. Thank you.
Can't you just pass the result of that (i.e. the "lastPosition") to the pixel shader? That's a lot less data than the matrix, skinning info, etc...
Re: Yes, thats what I am doing right now, but there are many faces to be culled that will :
1. Adquire the last world matrix by skinning+instancing
2. Adquire then the worldviewmatrix to adquire the last position.
Well the other way to get data into a pixel shader is via the textures :-). So, thinking outside the box here, you can put the data you need in a texture. Obviously this data can't come from the vertex shader, it must have been written to in a previous draw call. But your vertex shader could possibly pass a texture coordinate to the pixel shader that tells it which part of the texture to sample from to get more data. That's a pretty complicated proposition though.
Re: That is the only solution I reached to the skinning is done by textures so i will try passing the indexes to the pixel shader, I referred to that as a waste because I dont understand why it cant be just streamed in as I did with the vertex shader as BLENDINDICES+BLENDWEIGHT... isnt really possible?
I thank you so much for all the people who answered this post, I am at the same point now, but at least I dont feel so that alone .