ID3D11DeviceContext::Flush
コマンド バッファー内のキューイングされているコマンドを GPU に送信します。
void
Flush(
);
パラメータ
なし。
戻り値
返されるものはありません。
解説
大半のアプリケーションでは、このメソッドの呼び出しは不要です。必要がないときにこのメソッドを呼び出すと、パフォーマンスが低下します。Flush を呼び出すたびに大量のオーバーヘッドが発生するからです。
Direct3D のステート設定、プレゼント、描画のコマンドがアプリケーションによって呼び出されると、これらのコマンドは内部コマンド バッファーのキューに格納されます。Flush はこれらのコマンドを GPU に送信して処理されるようにします。通常これらのコマンドは、コマンド バッファーが満杯の場合や、リソースのマッピング時など、Direct3D によって必要だと判定された場合に自動的に GPU に送信されます。Flush は、コマンドを手動で送信します。
アプリケーションが共有リソースを扱う場合、または CPU に任意の待機時間を設定する場合 (Sleep の呼び出し時など) は、Flush を使用する必要があります。
D3D11 はオブジェクトの破棄を後回しにするので、アプリケーションではオブジェクトが直ちに破棄されると見なすことはできません。Flush を呼び出すことで、破棄が後回しにされているオブジェクトがすべて破棄されます。アプリケーションでオブジェクトの同期破棄が必要な場合、そのオブジェクトの参照をすべて解放し、ID3D11DeviceContext::ClearState、Flush を順番に呼び出す必要があります。
要件
ヘッダー: D3D11.h 宣言
ライブラリ: D3D11.lib 内容