次の方法で共有


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

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

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

備考

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

pfnUpdateVirtualAddressCb 呼び出しを 1 つの で次に示します。

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

必要条件

要件 価値
サポートされる最小クライアント Windows 10
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb