Dukungan multiplane overlay

Artikel ini menjelaskan fitur overlay multiplane (MPO) yang diperkenalkan di Windows 8.1 (WDDM 1.3). Ini mencantumkan fungsi yang disediakan oleh sistem dan diimplementasikan oleh driver untuk mendukung fitur ini dalam driver tampilan dalam mode pengguna (UMD) dan driver miniport tampilan dalam mode kernel (KMD) di WDDM 1.3 dan yang lebih baru. Ini juga mencantumkan struktur dan enumerasi yang digunakan dengan MPOs.

Dukungan MPO memungkinkan perangkat keras grafis untuk menyusun beberapa lapisan konten ke dalam satu gambar yang kemudian dapat ditampilkan di layar. Ini pada dasarnya adalah metode yang dipercepat oleh perangkat keras untuk pengomposisian lapisan konten yang berbeda tanpa melibatkan CPU atau menggunakan sumber daya sistem lain untuk melakukan pencampuran dalam perangkat lunak. Pesawat bisa berupa video, desktop, jendela aplikasi, dan sebagainya. Perangkat keras kemudian dapat mengambil lapisan ini dan menggabungkannya menjadi satu gambar yang dikirim ke layar.

Fungsi MPO yang dipanggil oleh driver tampilan mode pengguna

Tabel berikut mencantumkan fungsi-fungsi MPO mode pengguna yang diimplementasikan oleh sistem operasi dan yang dapat dipanggil oleh driver tampilan mode pengguna (UMD).

Fungsi Deskripsi
D3D: pfnPresentMultiPlaneOverlayCb Menyalin konten dari alokasi MPO sumber ke alokasi tujuan.
DXGI: pfnPresentMultiPlaneOverlayCb Menyalin konten dari alokasi MPO sumber ke alokasi tujuan.

Fungsi MPO yang diimplementasikan oleh UMD

Bagian ini berisi fungsi yang harus diterapkan WDDM 1.3 dan UMD yang lebih baru untuk mendukung MPO.

Tabel berikut mencantumkan fungsi yang harus diterapkan UMD untuk mendukung MPO.

Fungsi Deskripsi
pfnCheckMultiPlaneOverlaySupport (D3D) Dipanggil oleh runtime D3D untuk memeriksa detail tentang dukungan perangkat keras untuk MPO.
pfnCheckMultiPlaneOverlaySupport (DXGI) Dipanggil oleh runtime DirectX Graphics Infrastructure (DXGI) untuk memeriksa detail dukungan perangkat keras terhadap MPO.
pfnPresentMultiplaneOverlay (D3D) Dipanggil oleh runtime D3D untuk memberi tahu UMD bahwa aplikasi telah menyelesaikan proses rendering dan meminta UMD untuk menampilkan permukaan sumber. Driver harus menampilkan permukaan ini dengan menyalin, membalik, atau melakukan operasi pengisian warna.
pfnPresentMultiplaneOverlay (DXGI) Dipanggil oleh runtime DXGI untuk memberi tahu UMD bahwa aplikasi tersebut telah menyelesaikan proses render-nya dan sehingga UMD diminta untuk menampilkan permukaan sumber tersebut. UMD harus menampilkan permukaan dengan menyalin, membalik, atau melakukan operasi pengisian warna.

Tabel berikut mencantumkan fungsi DXGI DDI yang dapat diterapkan UMD secara opsional.

Fungsi Deskripsi
pfnGetMultiPlaneOverlayCaps Dipanggil oleh runtime DXGI untuk meminta agar UMD mendapatkan fitur dasar bidang overlay.
pfnGetMultiplaneOverlayGroupCaps Dihubungi oleh runtime DXGI untuk meminta agar UMD mendapatkan sekelompok kemampuan lapisan overlay.

Struktur dan enumerasi mode pengguna MPO

Bagian ini mencantumkan struktur dan enumerasi mode pengguna yang digunakan dengan MPO DDI.

Struct/Enum Deskripsi
D3DDDI_MULTIPLANE_ALLOCATION_INFO Menentukan info tentang alokasi MPO.
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES Digunakan oleh UMD untuk menentukan atribut bidang overlay.
D3DDDI_MULTIPLANE_OVERLAY_BLEND Mengidentifikasi operasi campuran yang akan dilakukan pada bidang overlay.
D3DDDI_MULTIPLANE_OVERLAY_CAPS Digunakan oleh UMD untuk menentukan kemampuan dari lapisan overlay.
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS Mengidentifikasi kemampuan overlay.
D3DDDI_MULTIPLANE_OVERLAY_FLAGS Mengidentifikasi operasi balik yang akan dilakukan pada bidang overlay.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS Digunakan oleh UMD untuk menentukan sekelompok kemampuan bidang overlay.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT Merincikan info tentang grup kemampuan MPO.
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY Mengidentifikasi proses pemfilteran yang harus dilakukan perangkat keras saat meregangkan atau menyusutkan data MPO.
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Mengidentifikasi format bingkai video bidang overlay. Hanya nilai D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE yang didukung.
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS Mengidentifikasi rentang YUV dan informasi konversi yang menguraikan MPO.
D3DDDI_PRESENT_MULTIPLANE_OVERLAY Menentukan bidang overlay yang akan ditampilkan.
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT Digunakan dalam panggilan ke fungsi pfnCheckMultiPlaneOverlaySupport (D3D) untuk memeriksa detail dukungan perangkat keras untuk MPO.
D3DDDIARG_PRESENTMULTIPLANEOVERLAY Menentukan sumber daya MPO yang akan ditampilkan.
D3DDDICB_PRESENTMULTIPLANEOVERLAY Menjelaskan alokasi MPO yang kontennya disalin ke dan dari.

Fungsi yang diimplementasikan oleh driver mode kernel MPO

Tabel berikut mencantumkan fungsi MPO yang diimplementasikan oleh driver miniport tampilan mode kernel (KMD).

Fungsi Deskripsi
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT Dipanggil oleh subsistem kernel grafis DirectX untuk memeriksa detail dukungan perangkat keras untuk MPO.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 Fungsi berikut dipanggil untuk menentukan apakah konfigurasi lapisan multi-bidang tertentu didukung.
DXGKDDI_GETMULTIPLANEOVERLAYCAPS Dipanggil untuk mengakses kapabilitas MPO. Dukungan untuk DDI ini diperlukan untuk setiap WDDM 2.2 KMD yang ingin mendukung beberapa lapisan.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT Dipanggil setelah konfigurasi lapisan multi-bidang baru berfungsi, memungkinkan KMD mengoptimalkan kondisi perangkat keras. Opsional untuk KMD WDDM 1.3 atau yang lebih baru yang mendukung penampang multi-bidang.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 Dipanggil untuk mengubah konfigurasi overlay yang ditampilkan.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 dipanggil untuk menentukan apakah konfigurasi overlay multi-bidang tertentu didukung.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Mengatur alamat beberapa permukaan yang terkait dengan sumber sajian video tertentu. Permukaan ini adalah bagian dari swapchain Desktop Window Manager (DWM). Fungsi ini digunakan untuk menyajikan beberapa permukaan (termasuk swapchain DWM) ke layar.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 dipanggil untuk mengubah konfigurasi overlay yang ditampilkan.

Struktur MPO mode kernel

Tabel berikut mencantumkan struktur yang digunakan KMD.

Struktur Deskripsi
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE Menentukan atribut dukungan yang disediakan perangkat keras untuk MPO.
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO Menentukan batasan pada dukungan perangkat keras MPO.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES Digunakan oleh KMD untuk menentukan atribut bidang overlay.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 digunakan oleh KMD untuk menentukan atribut bidang overlay.
DXGK_MULTIPLANE_OVERLAY_BLEND Mengidentifikasi operasi campuran yang akan dilakukan pada bidang overlay.
DXGK_MULTIPLANE_OVERLAY_FLAGS Mengidentifikasi operasi balik yang akan dilakukan pada bidang overlay.
DXGK_MULTIPLANE_OVERLAY_PLANE Menentukan bidang overlay untuk ditampilkan dalam panggilan ke fungsi DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 digunakan dengan fungsi DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 untuk menentukan bidang overlay yang akan ditampilkan.
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE menjelaskan atribut bidang overlay multi-bidang, alokasi, dan video yang menyajikan nomor identifikasi sumber jaringan.
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO Menentukan bidang overlay yang akan ditampilkan selama interval VSync.
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS Mengidentifikasi rentang YUV dan informasi konversi yang menguraikan MPO.
DXGK_PRESENTMULTIPLANEOVERLAYINFO Menentukan info tentang input VidPN dan bidang overlay yang akan ditampilkan.
DXGK_PRESENTMULTIPLANEOVERLAYLIST Menentukan bidang overlay untuk ditampilkan dalam panggilan ke fungsi DxgkDdiPresent.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT Digunakan dalam panggilan ke fungsi DxgkDdiCheckMultiPlaneOverlaySupport untuk memeriksa detail tentang dukungan perangkat keras untuk MPO.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 diteruskan ke fungsi DxgkDdiCheckMultiPlaneOverlaySupport2 untuk menentukan apakah konfigurasi overlay multi-bidang tertentu didukung.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Berisi argumen untuk fungsi DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 diteruskan ke fungsi DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 untuk mengubah konfigurasi overlay yang sedang ditampilkan.

Enumerasi mode kernel MPO

Tabel berikut mencantumkan enumerasi yang digunakan oleh KMD.

Enumerasi Deskripsi
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE Mengidentifikasi mode flip stereo bidang overlay. Hanya nilai DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE yang didukung.
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT Mengidentifikasi format presentasi stereo bidang overlay. Hanya nilai DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO yang didukung.
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY Mengidentifikasi proses pemfilteran yang harus dilakukan perangkat keras saat meregangkan atau menyusutkan data MPO.
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Mengidentifikasi format bingkai video bidang overlay. Hanya nilai DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE yang didukung.

Nilai D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS dalam D3DDDICAPS_TYPE menunjukkan dukungan UMD untuk MPO.