1
データを頂点シェーダに送るときの方がdirectXが速い。float4 vs 4 float in directX
struct VertexInputType
{
float2 pos : POSITION;
float distance : DISTANCE;
float size : SIZE;
}
対
struct VertexInputType
{
float4 data : DATA; // x,y - POSITION, z - distance, w - size
}
野生の推測では、それは128ビットのレジスタにパックするため、最初の1が高速であると言うことだろう。しかし、私は良い答えがあると思っています。
定数バッファ(https://msdn.microsoft.com/en-us/library/windows/desktop/bb509632(v=vs.85).aspx)のパッキング規則から、それらは両方とも等しくパックされていますfloat4-registerなので、違いはないと思いますが、2番目の方がはるかに読みやすくメンテナンス可能です:) – Gnietschow
これは入力アセンブラですので、パッキングルールは適用されません – catflier