IDirect3DDevice9Ex::CheckResourceResidency メソッド (d3d9.h)
リソースの配列をチェックして、システムがリソースに GPU アクセス可能にする必要があるため、描画時に大きな停止が発生する可能性があるかどうかを判断します。
構文
HRESULT CheckResourceResidency(
[in] IDirect3DResource9 **pResourceArray,
[in] UINT32 NumResources
);
パラメーター
[in] pResourceArray
種類: IDirect3DResource9**
チェックするリソースを示す IDirect3DResource9 ポインターの配列。
[in] NumResources
型: UINT32
pResourceArray パラメーターに渡されるリソースの数を示す最大 65535 の値。
戻り値
型: HRESULT
すべてのリソースが GPU からアクセス可能なメモリ内にある場合、 メソッドは S_OKを返します。 システムはリソースを昇格させるために再マップ操作を実行する必要がある場合がありますが、データをコピーする必要はありません。
リソースを構成する割り当てがディスク上にあり、少なくとも 1 つの割り当てが GPU アクセス可能なメモリにない場合、メソッドは S_RESIDENT_IN_SHARED_MEMORYを返します。 システムは、リソースを昇格させるためにコピーを実行する必要がある場合があります。
リソースを構成する少なくとも 1 つの割り当てがディスク上にある場合、このメソッドはS_NOT_RESIDENTを返します。 システムは、リソースを昇格させるためにコピーを実行する必要がある場合があります。
解説
この API は、アプリケーションでリソースが使用されるまでにリソースが降格された可能性があるため、常駐に関する合理的な推測に過しません。
想定される使用パターンは次のとおりです。 アプリケーションがリソースのセットが常駐していないと判断した場合、アプリケーションは下位 LOD バージョンのリソースを置き換え、レンダリングを続行します。 ビデオ メモリ マネージャー API には、これらの低 LOD リソースが GPU アクセス可能なメモリに常駐し続ける可能性が高いとアプリケーションが表現できるようにする機能が用意されています。 これらの下位 LOD バージョンを作成、入力、破棄する場合は、アプリの責任です。
また、常駐チェックがリソースが GPU アクセス可能なメモリに常駐しないことを示している場合は、アプリケーションで上位 LOD バージョンの昇格を開始する必要があります。 プロセスごとのロックはカーネル モードで存在するため、パフォーマンスの高い実装では、リソースを昇格させる唯一のジョブである別のプロセスが生成されます。 アプリケーションは、共有リソース共有サーフェス API を使用して 2 つのプロセス間で リソース ID を通信し、 SetPriority を使用してそれらを昇格させます。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9.h |
Library | D3D9.lib |