XNA では、グラフィックス ドライバーは、指定したバッファーのプロパティに基づいて、頂点バッファーとインデックス バッファーを配置するのに最適なメモリを決定します。バッファが格納される場所に影響を与えることができる選択には、次のものがあります。
「ゲームが頻繁に頂点バッファーを変更する状況では、バッファーをインスタンス化するか、VertexBuffer クラスではなく DynamicVertexBuffer から派生させることをお勧めします。」
WriteOnly "アプリケーションが頂点バッファーにのみ書き込みを行うことを示します。指定されている場合、ドライバーは効率的な書き込みとレンダリングのために最適なメモリ位置を選択します。書き込み専用の頂点バッファーから読み取ろうとすると失敗します。"
概要
バッファがどのように使用されるかについての情報があれば、グラフィックス ドライバは通常、バッファをどこに配置するかについて、ユーザよりも適切な決定を下すことができます。これは、各タイプのメモリの使用可能量と、その特定のシステムのメモリのパフォーマンス特性を認識しているためです。
注: xbox で動的な頂点とインデックス データを使用する XNA 3.1 以下の場合、DynamicVertexBuffer または DynamicIndexBuffer を使用するよりも、データをマネージド配列に格納して DrawUserPrimitives を使用する方が高速でした。
動的バッファーを使用することになった場合は、SetData を使用するときにパイプラインを停止させないように注意する必要があります。詳細については、 http://blogs.msdn.com/b/shawnhar/archive/2008/04/15/stalls-part-two-beware-of-setdata.aspxを参照してください。