다음을 통해 공유


다중 평면 오버레이 지원

MPO(다중 평면 오버레이) 지원은 그래픽 하드웨어가 여러 콘텐츠 계층을 단일 이미지로 구성하여 화면에 표시할 수 있도록 하는 WDDM 기능입니다. 기본적으로 CPU를 포함하거나 다른 시스템 리소스를 사용하여 소프트웨어에서 혼합을 수행할 필요 없이 평면이 비디오, 데스크톱, 애플리케이션 창 등이 될 수 있는 다양한 콘텐츠 "평면"을 작성하는 하드웨어 가속 방법입니다.

MPO 기능은 Windows 8.1(WDDM 1.3)부터 사용할 수 있습니다. 이 문서에서는 드라이버에서 이 기능을 구현하는 방법을 설명합니다.

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

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

함수 설명
pfnPresentMultiPlaneOverlayCb(D3D) 원본 MPO 할당에서 대상 할당으로 콘텐츠를 복사합니다.
pfnPresentMultiPlaneOverlayCb(DXGI) 원본 MPO 할당에서 대상 할당으로 콘텐츠를 복사합니다.

UMD에서 구현하는 MPO 함수

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

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

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

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

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

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

MPO DDI(디바이스 드라이버 인터페이스)와 함께 사용되는 모든 사용자 모드 구조 및 열거형입니다.

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 드라이버에 필요합니다.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT 드라이버가 하드웨어 상태를 최적화할 수 있도록 새 다중 평면 오버레이 구성이 적용된 후 호출됩니다. 다중 평면 오버레이를 지원하는 WDDM 1.3 2.0 이상 드라이버의 경우 선택 사항입니다.
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_TYPE D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPSMPO에 대한 UMD 지원을 나타냅니다.