つーか、シェーダーはGLもDirectXも関係ないんじゃないの?
DirectX標準の関数で記述するもんでもないし、どうせAssembly言語使って直接ハードウェア叩くんだし