共用方式為


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

另請參閱

D3DDDI_NATIVEFENCE_TYPE

D3DKMDT_STANDARDALLOCATION_TYPE

DXGK_ALLOCATIONINFO

DXGKARG_FENCESTORAGEFLAGS

DXGKARG_FENCESTORAGEVALUETYPE

DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA

DxgkDdiGetStandardAllocation