다음을 통해 공유


이전 WDDM 2.X 버전에 추가된 기능

이 페이지에서는 Windows 10용 이전 버전의 WDDM 2.X에 추가된 디스플레이 및 그래픽 드라이버의 기능을 설명합니다. 최신 WDDM 2.X 버전에 대해 추가된 기능을 보려면 Windows 10 디스플레이 및 그래픽 드라이버의 새로운 기능을 참조 하세요.

WDDM 2.6

슈퍼 젖은 잉크

슈퍼 습식 잉크 는 프런트 버퍼 렌더링을 중심으로 회전하는 기능입니다. IHV 드라이버는 하드웨어에서 지원되지 않는 형식 또는 모드의 "표시 가능한" 텍스처 생성을 지원할 수 있습니다. 앱이 요청한 텍스처를 표시할 수 있는 형식/레이아웃이 있는 "그림자" 텍스처와 함께 할당한 다음 현재 둘 간에 복사하여 이 작업을 수행할 수 있습니다. 이 "그림자"는 우리가 생각하는 정상적인 방식으로 질감일 필요는 없지만 압축 데이터일 수 있습니다. 또한 존재할 필요는 없지만 대신 최적화가 될 수 있습니다.

런타임은 표시 가능한 표면의 이러한 측면을 이해하도록 발전합니다.

  • 특정 VidPnSource/평면에 표시할 그림자가 있어야 하는지 여부입니다.

  • 그림자가 존재하는 것이 더 적합한지 여부입니다.

  • 응용 프로그램 화면에서 그림자 표면으로 콘텐츠를 전송하는 경우 런타임은 Present 내에서 암시적이 아니라 이 작업에 대해 명시적입니다.

  • 모드 설정을 요청하거나 원래 표면과 그림자 표면 간에 동적으로 대칭 이동하도록 요청하는 방법입니다.

스캔 아웃은 VBlank 직후에 시작될 수 있으며, 이미지의 위쪽에서 아래쪽으로 세로로 스캔하고, 다음 VBlank 직전에 완료됩니다. 픽셀 클록의 타이밍과 텍스처의 데이터 레이아웃에 따라 항상 그렇지는 않습니다. 실제로 사용할 수 있는 압축이 있는 경우 특히 그렇습니다.

가능한 경우 프런트 버퍼 렌더링을 사용하도록 설정하기 위해 검색 전에 발생하는 변환을 구분하고 이해하기 위해 새 DDI가 추가되었습니다. D3DWDDM2_6DDI_SCANOUT_FLAGSPFND3DWDDM2_6DDI_PREPARE_SCANOUT_TRANSFORMATION 참조하세요.

가변 속도 음영

가변 속도 음영 또는 거친 픽셀 음영은 렌더링된 이미지에서 다양한 속도로 렌더링 성능/전원을 할당할 수 있도록 하는 메커니즘입니다.

이전 모델에서 MSAA(다중 샘플 앤티앨리어싱)를 사용하여 기하학적 별칭을 줄이기 위해 다음을 수행합니다.

  • 대상이 할당될 때 기하학적 별칭을 줄이는 양을 미리 알려야 합니다.
  • 대상이 할당되면 기하학적 별칭을 줄이는 양을 변경할 수 없습니다.

WDDM 2.6에서 새 모델은 거친 음영이라는 새로운 개념을 추가하여 MSAA를 반대의 거친 픽셀 방향으로 확장합니다. 여기서 음영은 픽셀보다 거친 주파수에서 수행할 수 있습니다. 픽셀 그룹은 단일 단위로 음영 처리될 수 있으며 결과는 그룹의 모든 샘플에 브로드캐스트됩니다.

거친 음영 API를 사용하면 앱이 음영 처리된 그룹에 속하는 픽셀 수를 지정할 수 있습니다. 렌더링 대상이 할당된 후 거친 픽셀 크기가 달라질 수 있습니다. 따라서 화면의 다른 부분이나 다른 그리기 패스는 코스 음영 속도가 다를 수 있습니다.

다중 계층 구현은 두 개의 사용자 쿼리 가능 대문자로 사용할 수 있습니다. 계층 1 및 2의 경우 단일 샘플링 및 MSAA 리소스 모두에 대해 거친 음영을 사용할 수 있습니다. MSAA 리소스의 경우 평상시처럼 거친 픽셀당 또는 샘플당 음영을 수행할 수 있습니다. 그러나 계층 1과 2에서 MSAA 리소스의 경우 거친 샘플링을 사용하여 픽셀당 및 샘플당 빈도로 음영 처리할 수 없습니다.

계층 1:

  • 음영 속도는 그리기 단위로만 지정할 수 있습니다. 그보다 더 세분화된 것은 없습니다.

  • 음영 속도는 렌더링 대상 내에 있는 위치와 독립적으로 그려지는 항목에 균일하게 적용됩니다.

계층 2:

  • 음영 속도는 계층 1에서와 같이 그리기 단위로 지정할 수 있습니다. 그리기 기준 및 다음의 조합으로 지정할 수도 있습니다.

    • 꼭짓점당 의미 체계 및
    • 화면 영역 이미지
  • 3개 소스의 음영 속도는 조합기 집합을 사용하여 결합됩니다.

  • 화면 공간 이미지 타일 크기는 16x16 이하입니다. 앱에서 요청한 음영 속도는 정확하게 전달되도록 보장됩니다(임시 및 기타 재구성 필터의 정밀도를 위해).

  • SV_ShadingRate PS 입력이 지원됩니다. 여기서 기본 속도라고도 하는 도발별 꼭짓점 속도는 하나의 뷰포트가 사용되고 SV_ViewportIndex 기록되지 않은 경우에만 유효합니다.

  • SupportsPerVertexShadingRateWithMultipleViewports 상한이 true로 표시된 경우 기본 단위 속도라고도 하는 도발별 꼭짓점 속도를 둘 이상의 뷰포트에서 사용할 수 있습니다. 또한 이 경우 SV_ViewportIndex 쓸 때 사용할 수 있습니다.

PFND3D12DDI_RS_SET_SHADING_RATE_0062D3D12DDI_SHADING_RATE_0062 참조하세요.

진단 정보 수집

진단 정보를 수집하면 OS가 렌더링 및 디스플레이 함수로 구성된 그래픽 어댑터용 드라이버에서 개인 데이터를 수집할 수 있습니다. 이 새로운 기능은 WDDM 2.6의 요구 사항입니다.

새 DDI는 드라이버가 로드될 때마다 OS에서 정보를 수집할 수 있도록 허용해야 합니다. 현재 OS는 미니포트에서 구현한 DxgkDdiCollectDebugInfo 함수를 사용하여 TDR(시간 제한 검색 및 복구) 관련 사례에 대한 드라이버 프라이빗 데이터를 쿼리합니다. 새 DDI는 다양한 이유로 데이터를 수집하는 데 사용됩니다. OS는 요청되는 정보의 유형을 제공하는 진단이 필요할 때 이 DDI를 호출합니다. 드라이버는 문제를 조사하고 OS에 제출하는 데 중요한 모든 개인 정보를 수집해야 합니다. DxgkDdiCollectDebugInfo는 결국 사용되지 않으며 DxgkDdiCollectDiagnosticInfo로 대체됩니다.

DXGKDDI_COLLECTDIAGNOSTICINFO 참조하세요.

백그라운드 처리

백그라운드 처리를 사용하면 사용자 모드 드라이버가 원하는 스레딩 동작을 표현하고 런타임에서 제어/모니터링할 수 있습니다. 사용자 모드 드라이버는 백그라운드 스레드를 스핀업하고 가능한 한 낮은 우선 순위로 스레드를 할당하고 NT 스케줄러를 사용하여 이러한 스레드가 일반적으로 성공으로 중요한 경로 스레드를 방해하지 않도록 합니다.

API를 사용하면 앱이 워크로드에 적합한 백그라운드 처리 양과 해당 작업을 수행할 시기를 조정할 수 있습니다.

PFND3D12DDI_QUEUEPROCESSINGWORK_CB_0062 참조하세요.

드라이버 핫 업데이트

드라이버 핫 업데이트는 OS 구성 요소를 업데이트해야 할 때 서버 가동 중지 시간을 최대한 줄입니다.

드라이버 핫 패치는 커널 모드 드라이버에 보안 패치를 적용하는 데 사용됩니다. 이 경우 드라이버에 어댑터 메모리를 저장하라는 메시지가 표시되고, 어댑터가 중지되고, 드라이버가 언로드되고, 새 드라이버가 로드되고, 어댑터가 다시 시작됩니다.

DXGKDDI_SAVEMEMORYFORHOTUPDATEDXGKDDI_RESTOREMEMORYFORHOTUPDATE 참조하세요.

WDDM 2.5

추적된 워크로드

추적된 워크로드는 더 빠른 프로세서 실행과 낮은 전력 소비 간의 절편을 보다 세세하게 제어할 수 있는 실험적 기능이며, 추후 공지가 있을 때까지 사용할 수 없습니다. 구현이 Windows 10 버전 2003에서 제거되었습니다. 보안 수정의 일부로 이전 OS 버전에서 더 이상 사용되지 않습니다.

콘텐츠 변경

항목 날짜 설명
HMD 및 특수 디스플레이용 EDID 확장(VSDB) 2018년 12월 3일 디스플레이 제조업체 사양
DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys) 12/04/2018 Windows 운영 체제가 Microsoft DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys)을 통해 구현하는 커널 모드 인터페이스입니다.
WDDM 2.1 기능 01/10/2019 WDDM 2.1의 새로운 기능과 업데이트된 기능에 대해 설명합니다.

광선 추적

새로운 Direct3D DDI는 하드웨어 가속 광선 추적을 지원하기 위해 Direct3D API와 병렬로 만들어졌습니다. 예제 DDI는 다음과 같습니다.

광선 추적에 대한 자세한 내용은 다음을 참조하세요.

동기화 표시

OS는 디스플레이를 사용하도록 설정하기 전에 드라이버가 OS에 디스플레이를 노출할 때 디스플레이 동기화 기능을 확인합니다. TypeIntegratedDisplay 자식 디바이스의 경우 어댑터 초기화 중에 Type DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2 DxgkDdiQueryAdapterInfo 호출을 통해 보고됩니다. WDDM 2.5부터 지원되는 TypeVideoOutput 자식 디바이스의 경우 기능이 대상 또는 연결된 모니터에 따라 변경될 수 있도록 DxgkDdiUpdateMonitorLinkInfo를 통해 핫 플러그 처리의 일부로 보고됩니다.

OS는 경로 DXGK_SET_TIMING_PATH_INFO 구조의 입력 필드에 있는 DxgkDdiSetTimingsFromVidPn 호출의 표시 동기화를 지정합니다.

WDDM 2.1

WDDM 2.1은 새로운 시나리오를 가능하게 하고 Windows 그래픽 하위 시스템에 대한 성능, 안정성, 업그레이드 복원력, 진단 개선 및 향후 시스템 발전 영역에서 상당한 개선을 제공합니다. WDDM 2.0 드라이버 모델은 D3D12의 필수 구성 요소입니다. WDDM 2.0 및 DirectX12는 Windows 10 이상에서만 사용할 수 있습니다.

다음은 WDDM 2.1에 대한 기능 추가 및 업데이트 목록입니다.

  • 메모리 관리에 소요되는 오버헤드 시간을 줄이고 부족한 그래픽 메모리를 보다 효율적으로 사용하여 그래픽 성능을 향상시켰습니다. 그래픽 성능 향상은 다음과 같습니다.

    • 리소스 제공 및 회수 - 백그라운드 모드에서 실행되는 애플리케이션의 메모리 공간을 줄이기 위한 개선 사항을 제공하고 회수합니다.
    • 2MB 페이지 테이블 항목 인코딩 지원 - WDDM 2.1에서는 VRAM에서 PTE(큰 페이지 테이블 항목) 인코딩을 사용할 수 있습니다. 이 변경은 이를 지원하는 시스템에서 성능을 향상시킵니다.
    • 64KB 메모리 페이지 지원 - 64KB 세분성을 사용하는 가상 메모리 할당은 WDDM 2.1에서도 지원됩니다. 이러한 변경은 특히 가상 메모리 페이지에 액세스하기 위한 오버헤드를 줄여 APU 및 SoC에 이점을 제공합니다.
  • 현재 일괄 처리로 하드웨어 기반 보호 콘텐츠 개선(PlayReady 3.0)

  • 드라이버 업그레이드 복원력을 향상시키기 위해 그래픽 드라이버용 드라이버 저장소 설치

  • DXIL, 새 셰이더 규격 언어

  • D3D12 성능 및 최적화 개선 사항

  • 개발자를 위한 향상된 진단 옵션

자세한 내용은 WDDM 2.1 기능을 참조 하세요.

WDDM 2.0

WDDM 2.0에는 메모리 관리 업데이트가 포함됩니다.

GPU 가상 메모리

  • 모든 실제 메모리는 GPU(그래픽 처리 장치) 메모리 관리자가 관리할 수 있는 가상 세그먼트로 추상화됩니다.
  • 각 프로세스는 자체 GPU 가상 주소 공간을 가져옵니다.
  • 스위즐링 범위에 대한 지원이 제거되었습니다.

자세한 내용은 WDDM 2.0의 GPU 가상 메모리를 참조하세요.

드라이버 상주

  • 비디오 메모리 관리자는 드라이버에 명령 버퍼를 제출하기 전에 할당이 메모리에 상주하도록 합니다. 이 기능을 용이하게 하기 위해 사용자 모드 DDI(사용자 모드 드라이버 드라이버 인터페이스)가 추가되었습니다(MakeResident, TrimResidency, Evict).
  • 할당 및 패치 위치 목록은 WDDM 2.0 모델에서 필요하지 않으므로 단계적으로 중단됩니다.
  • 이제 사용자 모드 드라이버는 할당 추적을 처리해야 합니다. 이를 사용하도록 설정하기 위해 여러 DDI가 추가되었습니다.
  • 드라이버에는 메모리 예산이 지정되며 메모리 압력 하에서 적응할 것으로 예상됩니다. 이렇게 하면 유니버설 Windows 드라이버가 애플리케이션 플랫폼에서 작동할 수 있습니다.
  • 프로세스 동기화 및 컨텍스트 모니터링을 위해 DDI가 추가되었습니다.

자세한 내용은 WDDM 2.0의 드라이버 상주를 참조 하세요.