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 |
참고 항목
D3DKMDT_STANDARDALLOCATION_TYPE