Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается функция многопланового наложения (MPO), представленная в Windows 8.1 (WDDM 1.3). В нем перечислены системные и реализованные драйвером функции, используемые для поддержки этой функции в драйвере отображения в пользовательском режиме (UMD) и драйвере мини-порта в режиме ядра (KMD) в WDDM 1.3 и более поздних версиях. В нем также перечислены структуры и перечисления, используемые с MPOS.
Поддержка MPO позволяет графическому оборудованию создавать несколько слоев содержимого в одном изображении, которое затем может отображаться на экране. Это по сути аппаратно-ускоренный метод компоновки различных плоскостей содержимого без необходимости задействовать ЦПУ или использовать другие системные ресурсы для выполнения смешивания в программном обеспечении. Плоскость может быть, например, видео, рабочим столом, окном приложения и т. д. Затем оборудование может принимать эти самолеты и объединять их в один образ, который отправляется на дисплей.
Функции MPO, вызываемые драйверами отображения в пользовательском режиме
В следующей таблице перечислены функции MPO в пользовательском режиме, реализующие операционную систему и которые могут вызывать драйверы отображения в пользовательском режиме (UMD).
Функция | Описание |
---|---|
D3D: pfnPresentMultiPlaneOverlayCb | Копирует содержимое из исходной области памяти MPO в целевую область памяти. |
DXGI: pfnPresentMultiPlaneOverlayCb | Копирует содержимое из исходного распределения MPO в целевое распределение. |
Функции MPO, реализованные UMD
В этом разделе содержатся функции, которые WDDM 1.3 и более поздних версий UMD должны реализовать для поддержки MPOS.
Direct3D: UMD предоставляет указатели на функции D3D MPO через члены структуры D3DDDI_DEVICEFUNCS при вызове функции CreateDevice UMD.
DXGI: UMD предоставляет указатели на функции DXGI MPO через члены структуры DXGI1_3_DDI_BASE_FUNCTIONS, когда вызывается её функция для конкретного адаптера CreateDevice(D3D10). Дополнительные сведения см. в разделе "Поддержка DDI DXGI".
В следующей таблице перечислены функции, которые должен реализовать UMD для поддержки MPOS.
Функция | Описание |
---|---|
pfnCheckMultiPlaneOverlaySupport (D3D) | Вызывается средой D3D для проверки сведений о поддержке оборудования для MPOs. |
pfnCheckMultiPlaneOverlaySupport (DXGI) | Вызывается средой выполнения инфраструктуры графики DirectX (DXGI), чтобы проверить сведения о поддержке оборудования для MPOs. |
pfnPresentMultiplaneOverlay (D3D) | Вызывается средой выполнения D3D, чтобы уведомить UMD о том, что приложение завершило отрисовку, и запросить у UMD отображение исходной поверхности. Драйвер должен отобразить эту поверхность, скопировав, перевернуть или выполнить операцию заливки цвета. |
pfnPresentMultiplaneOverlay (DXGI) | Среда выполнения DXGI вызывает UMD, чтобы уведомить его о том, что приложение завершило отрисовку и запрашивает отображение исходной поверхности. UMD должен отображать поверхность путем копирования, переворачивания или выполнения операции заливки цвета. |
В следующей таблице перечислены функции DXGI DDI, которые может реализовать UMD.
Функция | Описание |
---|---|
pfnGetMultiPlaneOverlayCaps | Вызывается средой выполнения DXGI, чтобы запросить, чтобы UMD получил базовые возможности плоскости наложения. |
pfnGetMultiplaneOverlayGroupCaps | Вызывается средой выполнения DXGI, чтобы запросить, чтобы UMD получил группу возможностей плоскости наложения. |
Структуры и перечисления пользовательского режима MPO
В этом разделе перечислены структуры и перечисления пользовательского режима, используемые с DDIS MPO.
Struct/Enum | Описание |
---|---|
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 (качество растяжения многослойного наложения D3DDDI) | Определяет процессы фильтрации, которые оборудование должно выполнять при растягивание или сжатие данных MPO. |
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT | Определяет формат видеокадров плоскости наложения. Поддерживается только значение D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE. |
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Определяет диапазон и сведения о преобразовании YUV, описывающие MPO. |
D3DDDI_PRESENT_MULTIPLANE_OVERLAY | Указывает плоскость наложения для отображения. |
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT | Используется в вызове функции pfnCheckMultiPlaneOverlaySupport (D3D) для проверки сведений о поддержке оборудования для MPO. |
D3DDDIARG_PRESENTMULTIPLANEOVERLAY | Указывает ресурс MPO для отображения. |
D3DDDICB_PRESENTMULTIPLANEOVERLAY | Описывает выделение MPO, в которое копируется содержимое и из которого оно извлекается. |
Функции драйвера MPO, реализованные в режиме ядра
В следующей таблице перечислены функции MPO, которые реализует драйвер минипорта дисплея в режиме ядра (KMD).
Функция | Описание |
---|---|
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT | Вызывается подсистемой ядра графики DirectX для проверки сведений о поддержке оборудования для MPOS. |
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 | Следующая функция вызывается, чтобы определить, поддерживается ли определенная конфигурация многоуровневого наложения. |
DXGKDDI_GETMULTIPLANEOVERLAYCAPS | Вызывается для получения возможностей MPO. Поддержка этого DDI необходима для любого KMD версии WDDM 2.2, который должен поддерживать несколько плоскостей. |
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 | Указывает атрибуты поддержки, которые предоставляет оборудование для MPOS. |
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 используется с функцией DxgkDdiSetPnSourceAddressWithMultiPlaneOverlay2, чтобы указать плоскость наложения для отображения. |
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE | DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE описывает атрибуты плоскости многоуровневого наложения, выделение и видео, которые представляют идентификационный номер источника сети. |
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO | Указывает плоскость наложения, отображаемую во время интервала VSync. |
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Определяет диапазон YUV и информацию о преобразовании, описывающие MPO. |
DXGK_PRESENTMULTIPLANEOVERLAYINFO | Указывает сведения о входных данных VidPN и плоскости наложения для отображения. |
DXGK_PRESENTMULTIPLANEOVERLAYLIST | Указывает плоскость наложения для отображения в вызове функции DxgkDdiPresent. |
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT | Используется в вызове функции DxgkDdiCheckMultiPlaneOverlaySupport для проверки сведений о поддержке оборудования для MPOS. |
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 указывает ПОДДЕРЖКУ UMD для MPOS.