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 沒有設定初始值的方法。
共用配置一律放在系統記憶體中。
如需詳細資訊,請參閱
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 11 版本 24H2 (WDDM 3.2) |
標頭 | d3dkmddi.h |
另請參閱
D3DKMDT_STANDARDALLOCATION_TYPE