Vývojář Red Hatu Martin Stránský na svém blogu informoval o tom, že Firefox 77 pro Fedoru obsahuje patche, které konečně přináší podporu pro VA-API, tedy hardwarovou akceleraci videa. Podpora pro VA-API momentálně funguje pouze na Waylandu a Martin neplánuje pracovat na podpoře pro X11, ale iniciativě z komunity se meze nekladou, takže se této podpory můžou časem dočkat i uživatelé, kteří používají Firefox na X11.

Jak podporu ve Fedoře povolit?

Pokud používáte GNOME na Waylandu ve Fedora Workstation, běží vám Firefox už nativně na Waylandu. Jen se ujistěte, že máte nainstalovaný nejnovější Firefox 77 pro Fedoru 31/32. Dále potřebujete balíčky s VA-API a ffmpeg (valib). Ty najdete v repozitáři RPMFusion. Nastavte si jej a nainstalujte balíčky ffmpeg, libva a libva-utils.

Grafické karty od Intelu

Existují dva ovladače pro karty od Intelu: libva-intel-driver (poskytuje i965_drv_video.so) a libva-intel-hybrid-driver (iHD_drv_video.so). Akcelerace ve Firefoxu funguje pouze s libva-intel-driver. libva-intel-hybrid-driver je rozbitý kvůli problémům se sandboxingem.

Grafické karty od AMD

Open-source ovladače od AMD dekódují video pomocí knihovny radensi_drv_video.so, kterou poskytuje balíček mesa-dri-drivers, který by měl být ve Fedora Workstation předinstalovaný.

Grafické karty od Nvidie

Martin nemá žádnou grafickou kartu od Nvidie, takže s tím, jak to funguje s jejich ovladači, nemá zkušenosti a odkazuje na stránku o VA-API na wiki Fedora Projectu.

Zkontrolujte podporu VA-API

Když máte všechno nainstalované, spusťte nástroj vainfo v terminálu a zkontrolujte, které multimediální formáty vaše grafická karta podporuje.

libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.7.0.pre1)
vainfo: Driver version: Mesa Gallium driver 20.0.7 for Radeon RX 570 Series (POLARIS10, DRM 3.36.0, 5.6.15-300.fc32.x86_64, LLVM 10.0.0)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc

Jak můžete vidět na výpisu výše, grafická karta AMD Radeon RX 570 podporuje formáty MPEG2, VC1, H.264, H.265 (HEVC) a JPEG.

Nastavte si Firefox

V about:config nastavte gfx.webrender.enabled a widget.wayland-dmabuf-vaapi.enabled. Restartujte prohlížeč a v about:support zkontrolujte, že je WebRender povolený:

A že Window Protocol je Wayland/drm:

Nyní byste měli dekódovat videa pomocí grafické karty a pozorovat při přehrávání podporovaného multimediálního formátu menší vytížení procesoru.