D3DKMDT_FENCESTORAGESURFACEDATA構造体 (d3dkmddi.h)
D3DKMDT_FENCESTORAGESURFACEDATA 構造体は、フェンス ストレージを配置する必要があるメモリ セグメントを記述します。
構文
typedef struct _D3DKMDT_FENCESTORAGESURFACEDATA {
UINT PhysicalAdapterIndex;
DXGKARG_FENCESTORAGEVALUETYPE FenceStorageValueType;
D3DDDI_NATIVEFENCE_TYPE FenceStorageType;
UINT PrivateDriverDataSize;
BYTE *pPrivateDriverData;
DXGKARG_FENCESTORAGEFLAGS Flags;
UINT Reserved;
DXGK_ALLOCATIONINFO AllocationInfo;
} D3DKMDT_FENCESTORAGESURFACEDATA;
メンバーズ
PhysicalAdapterIndex
[in]フェンス ストレージが常駐する LDA 構成の物理アダプター インデックス。
FenceStorageValueType
[in]ネイティブ フェンス値の型を指定する DXGKARG_FENCESTORAGEVALUETYPE 値。
FenceStorageType
[in]ネイティブ フェンスの種類を指定する D3DDDI_NATIVEFENCE_TYPE 値。
PrivateDriverDataSize
[in]pPrivateDriverData が指
pPrivateDriverData
[in]プライベート ドライバー データへのポインター。 将来の使用のために予約されています。
Flags
[in]フェンス ストレージのフラグを指定する DXGKARG_FENCESTORAGEFLAGS 値。
Reserved
[in]将来の使用のために予約されています。
AllocationInfo
[out]ドライバーが割り当てプロパティを返す必要がある DXGK_ALLOCATIONINFO 構造体。
備考
OS がカーネル モード ドライバーの DxgkDdiGetStandardAllocation 関数を標準の割り当てタイプの D3DKMDT_STANDARDALLOCATION_FENCESTORAGEで呼び出す場合、ドライバーはフェンス ストレージを D3DKMDT_FENCESTORAGESURFACEDATAに配置するメモリ セグメントを返す必要があります。
入力フィールドに基づいて、ドライバーは、AllocationInfoに次の割り当て情報を入力する必要があります。
- SupportedWriteSegmentSet
- EvictionSegmentSet
- PreferredSegment
ドライバーは、プライベート データへのポインターを無視する必要があります。 ドライバーはポインターが NULL であることを確認しないでください。また、サイズを設定してプライベート データを要求しないでください。
ネイティブ フェンスの監視対象の値は、CPU ポインターを使用して更新されるため、CPU に表示されるメモリ セグメントに配置する必要があります。
D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU の種類を持つネイティブ フェンス オブジェクトを作成した後、ユーザー モード ドライバーは常に GPU 仮想アドレスを使用して DMA パケットを送信することによって初期値を設定する必要があります。 現在の値は 4K メモリ ページにパックされます。これは、CPU に表示されないローカル メモリ セグメント内に配置できます。 そのため、OS には初期値を設定する方法がありません。
共有割り当ては常にシステム メモリに配置されます。
詳細については、「ネイティブ GPU フェンス オブジェクト 」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 11 バージョン 24H2 (WDDM 3.2) |
ヘッダー | d3dkmddi.h |
関連項目
D3DKMDT_STANDARDALLOCATION_TYPE
DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA
DxgkDdiGetStandardAllocation の