다음을 통해 공유


다중 평면 오버레이 지원

이 문서에서는 WDDM 1.3(Windows 8.1)에 도입된 MPO(다중 평면 오버레이) 기능에 대해 설명합니다. WDDM 1.3 이상에서 UMD(사용자 모드 디스플레이 드라이버) 및 커널 모드 디스플레이 미니포트 드라이버(KMD)에서 이 기능을 지원하는 데 사용되는 시스템 제공 및 드라이버 구현 함수를 나열합니다. 또한 MPO와 함께 사용되는 구조 및 열거형을 나열합니다.

MPO 지원을 사용하면 그래픽 하드웨어가 여러 계층의 콘텐츠를 단일 이미지로 구성한 다음 화면에 표시할 수 있습니다. 기본적으로 CPU를 포함하거나 다른 시스템 리소스를 사용하여 소프트웨어에서 혼합을 수행할 필요 없이 다양한 콘텐츠 평면 을 구성하는 하드웨어 가속 방법입니다. 플레인은 비디오, 데스크탑, 애플리케이션 창 등이 될 수 있습니다. 그런 다음 하드웨어는 이러한 평면을 가져와 디스플레이로 전송되는 단일 이미지로 결합할 수 있습니다.

사용자 모드 표시 드라이버에서 호출되는 MPO 함수

다음 표에는 운영 체제에서 구현하는 사용자 모드 MPO 함수와 UMD(사용자 모드 표시 드라이버)가 호출할 수 있는 사용자 모드 MPO 함수가 나와 있습니다.

기능 설명
D3D: pfnPresentMultiPlaneOverlayCb 원본 MPO 할당에서 대상 할당으로 콘텐츠를 복사합니다.
DXGI: pfnPresentMultiPlaneOverlayCb 원본 MPO 할당에서 대상 할당으로 콘텐츠를 복사합니다.

UMD에서 구현하는 MPO 함수

이 섹션에는 MPO를 지원하기 위해 WDDM 1.3 이상 UMD가 구현해야 하는 함수가 포함되어 있습니다.

다음 표에서는 MPO를 지원하기 위해 UMD가 구현해야 하는 함수를 나열합니다.

기능 설명
pfnCheckMultiPlaneOverlaySupport(D3D) D3D 런타임에서 MPO에 대한 하드웨어 지원에 대한 세부 정보를 확인하기 위해 호출됩니다.
pfnCheckMultiPlaneOverlaySupport(DXGI) DXGI(DirectX Graphics Infrastructure) 런타임에서 호출되어 MPO에 대한 하드웨어 지원에 대한 세부 정보를 확인합니다.
pfnPresentMultiplaneOverlay(D3D) D3D 런타임에서 호출하여 애플리케이션이 렌더링을 완료했음을 UMD에 알리고 UMD가 원본 화면을 표시하도록 요청합니다. 드라이버는 이 표면을 표시하기 위해 복사, 대칭 이동 또는 색상 채우기 작업을 수행해야 합니다.
pfnPresentMultiplaneOverlay(DXGI) DXGI 런타임에서 호출하여 애플리케이션 렌더링이 완료되었음을 UMD에 알리고 UMD가 원본 화면을 표시하도록 요청합니다. UMD는 표면을 복사, 대칭 이동 또는 색 채우기 작업을 수행하여 표시해야 합니다.

다음 표에서는 UMD가 필요에 따라 구현할 수 있는 DXGI DDI 함수를 나열합니다.

기능 설명
pfnGetMultiPlaneOverlayCaps DXGI 런타임에서 UMD에 기본 오버레이 평면 기능을 가져올 것을 요청하기 위해 호출합니다.
pfnGetMultiplaneOverlayGroupCaps DXGI 런타임에서 UMD에 오버레이 평면 기능 그룹을 가져올 것을 요청하기 위해 호출합니다.

MPO 사용자 모드 구조 및 열거형

이 섹션에서는 MPO DDI와 함께 사용되는 사용자 모드 구조 및 열거형을 나열합니다.

구조체/열거형 설명
D3DDDI_MULTIPLANE_ALLOCATION_INFO MPO 할당에 대한 정보를 지정합니다.
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES UMD에서 오버레이 평면 특성을 지정하는 데 사용됩니다.
D3DDDI_MULTIPLANE_OVERLAY_BLEND 오버레이 평면에서 수행할 혼합 작업을 식별합니다.
D3DDDI_MULTIPLANE_OVERLAY_CAPS UMD에서 오버레이 평면 기능을 지정하는 데 사용됩니다.
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS 오버레이 기능을 식별합니다.
D3DDDI_MULTIPLANE_OVERLAY_FLAGS 오버레이 평면에서 수행할 대칭 이동 작업을 식별합니다.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS UMD에서 오버레이 평면 기능 그룹을 지정하는 데 사용됩니다.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT MPO 기능 그룹에 대한 정보를 지정합니다.
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY 하드웨어가 MPO 데이터를 확장하거나 축소할 때 수행해야 하는 필터링 프로세스를 식별합니다.
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT 오버레이 평면의 비디오 프레임 형식을 식별합니다. D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE 값만 지원됩니다.
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS MPO를 설명하는 YUV 범위 및 변환 정보를 식별합니다.
D3DDDI_PRESENT_MULTIPLANE_OVERLAY 표시할 오버레이 평면을 지정합니다.
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT PFNCheckMultiPlaneOverlaySupport(D3D) 함수를 호출하여 MPO에 대한 하드웨어 지원에 대한 세부 정보를 확인하는 데 사용됩니다.
D3DDDIARG_PRESENTMULTIPLANEOVERLAY 표시할 MPO 리소스를 지정합니다.
D3DDDICB_PRESENTMULTIPLANEOVERLAY 콘텐츠가 복사되는 MPO 할당에 대해 설명합니다.

MPO 커널 모드 드라이버 구현 함수

다음 표에는 커널 모드 디스플레이 미니포트 드라이버(KMD)가 구현하는 MPO 함수가 나와 있습니다.

기능 설명
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT DIRECTX 그래픽 커널 하위 시스템에 의해 호출되어 MPO에 대한 하드웨어 지원의 세부 정보를 확인합니다.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 다음 함수는 특정 다중 평면 오버레이 구성이 지원되는지 여부를 확인하기 위해 호출됩니다.
DXGKDDI_GETMULTIPLANEOVERLAYCAPS MPO 기능을 검색하기 위해 호출되었습니다. 이 DDI에 대한 지원은 여러 평면을 지원하려는 모든 WDDM 2.2 KMD에 필요합니다.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT 새 다중 평면 오버레이 구성이 적용된 후 호출되므로 KMD가 하드웨어 상태를 최적화할 수 있습니다. 다중 평면 오버레이를 지원하는 WDDM 1.3 이상 KMD의 경우 선택 사항입니다.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 표시되는 오버레이 구성을 변경하기 위해 호출됩니다.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2는 특정 다중 평면 오버레이 구성이 지원되는지 여부를 확인하기 위해 호출됩니다.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY 특정 비디오 현재 원본과 연결된 여러 표면의 주소를 설정합니다. 이러한 화면에는 DWM(데스크톱 창 관리자)의 스왑 체인이 포함됩니다. 이 함수는 여러 표면(DWM의 스왑 체인 포함)을 화면에 표시하는 데 사용됩니다.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2가 호출되어 표시되는 오버레이 구성을 변경합니다.

MPO 커널 모드 구조체

다음 표에서는 KMD에서 사용하는 구조를 나열합니다.

구조 설명
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE 하드웨어가 MPO에 제공하는 지원 특성을 지정합니다.
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO (멀티플레인 오버레이 지원 반환 정보 검사) MPO의 하드웨어 지원에 대한 제한을 지정합니다.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES KMD에서 오버레이 평면 특성을 지정하는 데 사용됩니다.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 KMD에서 오버레이 평면 특성을 지정하는 데 사용됩니다.
DXGK_MULTIPLANE_OVERLAY_BLEND 오버레이 평면에서 수행할 혼합 작업을 식별합니다.
DXGK_MULTIPLANE_OVERLAY_FLAGS 오버레이 평면에서 수행할 대칭 이동 작업을 식별합니다.
DXGK_MULTIPLANE_OVERLAY_PLANE DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 함수에 대한 호출에 표시할 오버레이 평면을 지정합니다.
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 함수와 함께 사용하여 표시할 오버레이 평면을 지정합니다.
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE 다중 평면 오버레이 평면 특성, 할당 및 비디오 제공 네트워크 원본 식별 번호를 설명합니다.
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO VSync 간격 동안 표시할 오버레이 평면을 지정합니다.
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS MPO를 설명하는 YUV 범위 및 변환 정보를 식별합니다.
DXGK_PRESENTMULTIPLANEOVERLAYINFO VidPN 입력 및 표시할 오버레이 평면에 대한 정보를 지정합니다.
DXGK_PRESENTMULTIPLANEOVERLAYLIST DxgkDdiPresent 함수 호출에 표시할 오버레이 평면을 지정합니다.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT DxgkDdiCheckMultiPlaneOverlaySupport 함수를 호출하여 MPO에 대한 하드웨어 지원에 대한 세부 정보를 확인하는 데 사용됩니다.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 함수에 전달되어 특정 다중 평면 오버레이 구성이 지원되는지 여부를 확인합니다.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 함수에 대한 인수를 포함합니다.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2는 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 함수에 전달되어 오버레이 구성을 변경하는 데 사용됩니다.

MPO 커널 모드 이넘레이션

다음 표에서는 KMD에서 사용하는 열거형을 나열합니다.

열거 설명
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE 오버레이 평면의 스테레오 대칭 이동 모드를 식별합니다. DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE 값만 지원됩니다.
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT 오버레이 평면의 스테레오 프레젠테이션 형식을 식별합니다. DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO 값만 지원됩니다.
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY 하드웨어가 MPO 데이터를 확장하거나 축소할 때 수행해야 하는 필터링 프로세스를 식별합니다.
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT 오버레이 평면의 비디오 프레임 형식을 식별합니다. DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE 값만 지원됩니다.

D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS 값은 D3DDDICAPS_TYPE에서 MPO에 대한 UMD 지원을 나타냅니다.