다음을 통해 공유


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가 표준 할당 유형의 D3DKMDT_STANDARDALLOCATION_FENCESTORAGE사용하여 커널 모드 드라이버의 DxgkDdiGetStandardAllocation 함수를 호출하는 경우 드라이버는 펜스 스토리지를 D3DKMDT_FENCESTORAGESURFACEDATA배치해야 하는 메모리 세그먼트를 반환해야 합니다.

입력 필드에 따라 드라이버는 AllocationInfo다음 할당 정보를 입력해야 합니다.

  • SupportedWriteSegmentSet
  • EvictionSegmentSet
  • PreferredSegment

드라이버는 개인 데이터에 대한 포인터를 무시해야 합니다. 드라이버는 포인터가 NULL인지 확인하지 않아야 하며 크기를 설정하여 프라이빗 데이터를 요청해서는 안 됩니다.

네이티브 펜스의 모니터링된 값은 CPU 포인터를 사용하여 업데이트되므로 CPU 표시 메모리 세그먼트에 배치해야 합니다.

D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU 형식이 있는 네이티브 펜스 개체를 만든 후 사용자 모드 드라이버는 GPU 가상 주소를 사용하여 DMA 패킷을 제출하여 항상 초기 값을 설정해야 합니다. 현재 값은 CPU가 보이지 않는 로컬 메모리 세그먼트에 있을 수 있는 4K 메모리 페이지에 압축됩니다. 따라서 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