다중 평면 오버레이 지원
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가 구현해야 하는 함수가 포함되어 있습니다.
UMD는 어댑터별 CreateDevice(D3D10) 함수가 호출될 때 DXGI1_3_DDI_BASE_FUNCTIONS 구조체의 멤버를 통해 DXGI MPO 함수에 대한 포인터를 제공합니다. 자세한 내용은 DXGI DDI 지원을 참조하세요.
UMD는 드라이버의 CreateDevice 함수 호출에서 D3DDDI_DEVICEFUNCS 구조체의 멤버를 통해 Direct3D MPO 함수에 대한 포인터를 제공합니다.
다음 표에서는 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_CAPS 값은 MPO에 대한 UMD 지원을 나타냅니다.