微軟在Mesa中為Direct3D 12 H.264視頻編碼/解碼提供VA-API
在過去幾個月時間裡,微軟做了很多有趣的開發和操作,包括為Windows Subsystem for Linux (WSL) 使用的開源Mesa,以及在Direct3D 12 上支持各種Khronos API,以便於在Windows 上缺少本地驅動程序時使用。
到目前為止,這項工作主要集中在OpenGL、OpenCL和Vulkan上,但微軟現在甚至在Mesa 內實現了對Direct3D 12 視頻API 的支持,並利用了Mesa 內的VA-API 狀態跟踪器支持。
簡單地說,這項最新的努力允許WSL GUI 應用程序(如媒體播放器),享受硬件視頻加速。在合併到Mesa 22.2 主線的代碼中,D3D12 視頻API 已經被實現,相關的VA-API 入口也被用於H.264 編碼/解碼。因此,支持視頻加速API(VA-API)的Linux視頻播放器/多媒體軟件在WSL(2)中運行時將”神奇地”能夠享受Direct3D 12視頻加速。
這對那些希望在Windows Subsystem for Linux 範圍內獲得更強大的GUI 軟件支持的用戶來說是一個相當大的勝利,並且進一步鞏固了VA-API 作為Linux 視頻API 的主導地位。
雖然在NVIDIA的NVDEC上有一個實驗性的、獨立的VA-API 實現,但VA-API 並不支持所有的GPU/驅動,所以對Direct3D 12 視頻的支持在技術上使其在Windows上比Linux本身更加強大。當然,至少在目前,它僅限於H.264編解碼器,但目前的這段代碼被設計為可擴展的,以支持更多的視頻編解碼器。
微軟的工程師們在這個D3D12 視頻支持和Gallium3D 視頻加速前端的變化上做了工作,並成功地用FFmpeg 編碼/解碼/轉碼、MPlayer-forked MPV 和vaah264 在啟用X11 窗口支持的WSL下測試了VA-API的使用。他們也有可能支持NVIDIA視頻解碼和Unix演示API(VDPAU),作為D3D12視頻之上的另一個支持的實現,一些Gallium3D VDPAU的變化也被作為這次合併的一部分,但最初的重點似乎是VA-API接口。