1
ユニフォームの整列と宣言の順序は重要ですか?
「Practical Rendering&Computation with Direct3D 11(pages 325、326)」のセクション6.4 Constant Buffersで言及されています。 デフォルトでは、HLSLコンパイラーは定数が複数のfloat4レジスターにまたがらないように定数を調整しようとします。[...] HLSL定数バッファーのパッキングは、packoffsetキーワードを使用して手動で指定することもできます。 同じハードウェア機能にマップするため、OpenGLの同等のUniform Bufferオブジェクトにも同様のルールが適用されると思います。 バニラのユニフォームはどうですか?ユニフォームを宣言するときに適用されるルールは何ですか? uniform vec2 xy; // Can we expect the compiler to pack xy uniform vec2 zw; // into a same four component register? uniform vec2 rg; uniform float foo; // Will this prevent from packing rg and ba? …