보존 예산 처리
WDDM(Windows 디스플레이 드라이버 모델) v2에서 프로세스에는 상주할 수 있는 메모리 양에 대한 예산이 할당됩니다. 이 예산은 시간이 지남에 따라 변경될 수 있지만 일반적으로 시스템이 메모리 압력을 받고 있을 때만 적용됩니다. Microsoft Direct3D 12 이전에는 사용자 모드 드라이버에서 트리밍 알림 및 STATUS_NO_MEMORY 있는 MakeResident 오류 형식으로 예산을 처리합니다. TrimToBudget 알림, 제거 및 실패한 MakeResident 호출은 모두 새 예산에 맞게 트리밍해야 하는 양을 나타내는 정수 NumBytesToTrim 값 형식으로 최신 예산을 반환합니다.
Direct3D 12 애플리케이션의 경우 예산은 애플리케이션에서 완전히 처리됩니다. 예산의 크기는 애플리케이션에 크기 자체를 알릴 수 있는 신호로 의미합니다. 애플리케이션은 예산 크기를 힌트로 사용하여 상주할 리소스 수, 유지할 리소스의 해상도 및 품질을 결정할 수 있습니다.
이러한 예산을 제대로 관리하려면 커널이 예산에 참여해야 하는 메모리를 알고 있어야 합니다. 커널 모드 드라이버가 예산 논리에 포함하려는 세그먼트에 설정해야 하는 DXGK_SEGMENTFLAGS2 구조에 새 ApplicationTarget 비트가 있습니다. 예를 들어 애플리케이션 사용에 적합한 VRAM 세그먼트 1개와 특수 용도 리소스에 자동으로 사용되는 VRAM 세그먼트 1개와 함께 GPU(불연속 그래픽 처리 장치)에서 드라이버는 기본 VRAM 세그먼트만 ApplicationTarget으로 표시할 수 있습니다. 통합 GPU의 경우 기본 조리개 세그먼트는 일반적으로 표시된 세그먼트입니다. ApplicationTarget으로 표시할 수 있는 세그먼트 수에는 제한이 없습니다. 커널은 이러한 항목을 함께 집계하고 통합된 크기로 애플리케이션을 표시합니다.