PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB コールバック関数 (d3dumddi.h)

pfnUpdateGpuVirtualAddressCb は、タイル リソースのコンテキストで使用される特別な操作です。 これにより、ユーザー モード ドライバーは、ページ テーブルの更新の 1 つのバッチで、プロセスの仮想アドレス空間に適用するマッピング操作の数を指定できます。

すべての操作 (コピー操作のソース アドレスを除く) のグラフィックス処理装置 (GPU) 仮想アドレスの範囲は、 pfnReserveGpuVirtualAddressCb を呼び出すことによって取得された 1 つの仮想アドレス範囲に属している必要があります。 同様に、コピー操作のすべてのソースの仮想アドレス範囲は、 pfnReserveGpuVirtualAddressCb を呼び出すことによって取得された単一の仮想アドレス範囲に属している必要があります。

ページ テーブルの更新は、指定されたレンダリング コンテキスト専用のページング コンテキストで実行され、関連付けられたレンダリング コンテキストが、指定された監視対象のフェンス オブジェクトに対して FenceValue を通知した後にのみ GPU で実行されます。 ページ テーブルの更新が完了すると、ページング コンテキストは監視対象のフェンス オブジェクトを FenceValue+1 に通知し、レンダリング コンテキストがページ テーブルの更新と緊密に連動できるようにします。

構文

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
  HANDLE hDevice,
  const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル。

unnamedParam2

pData [in]

実行する操作を記述する D3DDDICB_UPDATEGPUVIRTUALADDRESS 構造体へのポインター。

戻り値

このコールバック関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

更新操作の仮想アドレス範囲は交差できます。 操作は、送信された順序で適用されます。

1 つの pfnUpdateVirtualAddressCb 呼び出しでは、次のようにします。

  • マッピング操作のすべての仮想アドレス範囲とコピー操作の宛先範囲は、同じ予約済み (ゼロ) 範囲に属している必要があります。
  • コピー操作のソース仮想アドレス範囲は、別の予約済み (ゼロ) の範囲から使用できます。
  • すべてのコピー操作のソース仮想アドレス範囲は、同じ予約済み (ゼロ) 範囲に属している必要があります。
ユーザー モード ドライバーは、多数 の pfnUpdateGpuVirtualAddressCb 呼び出しを送信でき、操作はレンダリング フェンスの背後でキューに入れられます。 キューに登録された更新操作の数が 128 を超えると、前の操作がビデオ メモリ マネージャーによって処理されるまで、呼び出し元のスレッドがブロックされます。

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb