사용자 모드 드라이버 로깅
이 문서에서는 WDDM의 사용자 모드 드라이버 로깅에 대한 개요를 제공합니다.
WDDM 드라이버는 비디오 메모리의 실행 가능한 분석을 위해 Direct3D 리소스와 비디오 메모리 할당 간의 관계를 노출해야 합니다. Windows 8부터 이 기능은 UMD(사용자 모드 드라이버) 로깅 인터페이스를 추가하여 가능합니다. 이 정보를 ETW(Windows용 이벤트 추적) 추적에 추가하면 API 관점에서 비디오 메모리 할당을 볼 수 있습니다.
요구 사항:
- 최소 WDDM 버전: 1.2
- 최소 Windows 버전: 8
- 드라이버 구현 - 전체 그래픽 및 렌더링 전용: 필수
- WHLK 요구 사항 및 테스트: Device.Graphics-UMDLogging
개발자의 경우 UMD 로깅은 내부 조각화 또는 표면을 빠르게 삭제하는 효과와 같은 메모리 비용을 명확히 할 수 있습니다. 이를 통해 Microsoft는 성능 문제 분석을 위한 추적을 제공하는 고객 및 파트너와 더 잘 협력할 수 있습니다. 특히 이 기능은 메모리 관련 성능 문제를 조사하는 일반적인 차단 지점을 극복하는 데 도움이 될 수 있습니다. 애플리케이션이 작업 집합을 너무 많이 사용하고 있지만 문제를 일으키는 API 리소스 또는 호출을 확인할 수는 없습니다.
드라이버는 UMD ETW 인터페이스를 구현하여 Direct3D 리소스와 비디오 메모리 할당 간의 관계를 노출해야 합니다. 로깅 이벤트 외에도 드라이버는 언제든지 리소스와 할당 간의 모든 기존 매핑을 보고할 수 있어야 합니다.
UMD 드라이버 할당 로깅 DDI
UMD 할당 로깅 DDI는 ETW 커널 수준 추적 기능에서 DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys)의 커널 할당과 연결된 API 리소스를 보여 주는 이벤트를 제공합니다.
DDI를 사용하여 다음을 수행할 수 있습니다.
- 내부 메모리 조각화 또는 표면이 빠르게 삭제되는 효과를 검색합니다.
- 성능 문제를 식별하는 데 도움이 되도록 Microsoft에 더 나은 추적 정보를 제공합니다.
- 앱의 리소스 또는 API 호출로 인해 작업 중인 메모리 집합이 너무 큰 경우를 확인하는 데 도움이 됩니다.
umdprovider.h 헤더의 이러한 함수, 열거형 및 구조를 사용하여 UMD에서 이벤트를 기록합니다.
- UMDEtwLogMapAllocation 함수
- UMDEtwLogUnmapAllocation 함수
- UMDEtwRegister 함수
- UMDEtwUnregister 함수
- UMDETW_ALLOCATION_SEMANTIC 열거형
- UMDETW_ALLOCATION_USAGE 구조체
umdetw.h 헤더도 참조하세요.
하드웨어 인증 요구 사항
하드웨어 디바이스가 이 기능을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 Device.Graphics의 WHLK 설명서를 참조하세요.
Windows 8에 추가된 기능에 대한 검토는 WDDM 1.2 기능을 참조하세요.