a bit late, but if you have problems with textures and directx, it could be wrong assignment of the fvf. example:
fvf := Tex0 and pos would not work, as pos comes before Tex0 (in bit sequence)
try this for example
fvf := Pos and Tex0 (also in your shader, had the same problem, once)