Table of Contents
Important security settings
- Don't allow FF to automatically fill in forms with stored passwords signon.autofillForms = false
(This can now be found in Preferences as “Autofill logins and passwords”)
HW video decoding using VAAPI
Update 2022-02-05
As of now it seems that it is working with RDD enabled (tested with Firefox 96.0.3)
Only these two options need to be set on my AMD machine to enable it.
gfx.x11-egl.force-enabled true media.ffmpeg.vaapi.enabled true
If needed disable av1/av01 codec if there is no HW decode support (YouTube may use this with 1080p otherwise) This can of course affect media at other sites. Note that av1/av01 is NOT the same as avc1 AV1 Beta playlist
media.av1.enabled = false
vainfo from AMD Ryzen 7 5700G with Radeon Graphics
vainfo: VA-API version: 1.10 (libva 2.10.0) vainfo: Driver version: Mesa Gallium driver 20.3.5 for AMD RENOIR (DRM 3.40.0, 5.10.0-11-amd64, LLVM 11.0.1) 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 VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc
To check if HW decoding is active
On newer AMD
while true; do cat /sys/kernel/debug/dri/0/amdgpu_pm_info | grep ^VCN; sleep 1; done
On Intel - check for Video engine activity
intel_gpu_top
Old information
https://bugzilla.mozilla.org/show_bug.cgi?id=1683808 https://bugzilla.mozilla.org/show_bug.cgi?id=1610199
MOZ_X11_EGL=1 firefox # Not needed anymore as there is option gfx.x11-egl.force-enabled gfx.x11-egl.force-enabled = true media.ffmpeg.vaapi.enabled = true media.ffvpx.enabled = false gfx.webrender.enabled = true Possibly disable use of av1/av01 (YouTube uses this with 1080p otherwise) media.av1.enabled = false There are now also new settings for separate rendering process (RDD) Have not fully understood yet what needs to be set. MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox 2>&1 | grep 'VA-API' To get better log why VAAPI is disabled run Firefox with: MOZ_LOG="Dmabuf:5, PlatformDecoderModule:5"
Checking if HW decoder is active
AMD
Check if “uvd” is enabled. UVD stands for Unified Video Decoder
watch -n '0.1' cat '/sys/kernel/debug/dri/0/radeon_pm_info' or watch -n '0.1' cat '/sys/kernel/debug/dri/0/amdgpu_pm_info'
Known problems
Nextcloud talk
When a screen is shared from remote end only a black screen is shown.
Log output from:
MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox
[Child 145: Unnamed thread 0x7f899b1e8940]: D/PlatformDecoderModule Sandbox decoder rejects requested type [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Initialising VA-API FFmpeg decoder libva info: VA-API version 1.4.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so libva info: Found init function __vaDriverInit_1_4 libva info: va_openDriver() returns 0 [AVHWDeviceContext @ 0x7f899adbf440] Format 0x3231564e -> nv12. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x30313050 -> p010le. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x36313050 -> unknown. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x32315659 -> yuv420p. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x56595559 -> unknown. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x59565955 -> uyvy422. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x41524742 -> bgra. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x41424752 -> rgba. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x58524742 -> bgr0. [AVHWDeviceContext @ 0x7f899adbf440] Format 0x58424752 -> rgb0. [AVHWDeviceContext @ 0x7f899adbf440] VAAPI driver: Mesa Gallium driver 18.3.6 for AMD KAVERI (DRM 2.50.0, 4.19.0-12-amd64, LLVM 7.0.1). [AVHWDeviceContext @ 0x7f899adbf440] Driver not found in known nonstandard list, using standard behaviour. [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule VA-API FFmpeg init successful [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding. [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Requesting pixel format VAAPI_VLD [vp8 @ 0x7f899a96c800] Format vaapi_vld chosen by get_format(). [vp8 @ 0x7f899a96c800] Format vaapi_vld requires hwaccel initialisation. [vp8 @ 0x7f899a96c800] No support for codec vp8 profile -99. [vp8 @ 0x7f899a96c800] Failed setup for format vaapi_vld: hwaccel initialisation returned error. [vp8 @ 0x7f899a96c800] Format vaapi_vld not usable, retrying get_format() without it. [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding. [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule avcodec_send_packet error: -22 [Child 145: Unnamed thread 0x7f899b1e8940]: D/PlatformDecoderModule Sandbox decoder rejects requested type [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule Initialising VA-API FFmpeg decoder libva info: VA-API version 1.4.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so libva info: Found init function __vaDriverInit_1_4 libva info: va_openDriver() returns 0 [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x3231564e -> nv12. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x30313050 -> p010le. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x36313050 -> unknown. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x32315659 -> yuv420p. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x56595559 -> unknown. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x59565955 -> uyvy422. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x41524742 -> bgra. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x41424752 -> rgba. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x58524742 -> bgr0. [AVHWDeviceContext @ 0x7f8999cc3ec0] Format 0x58424752 -> rgb0. [AVHWDeviceContext @ 0x7f8999cc3ec0] VAAPI driver: Mesa Gallium driver 18.3.6 for AMD KAVERI (DRM 2.50.0, 4.19.0-12-amd64, LLVM 7.0.1). [AVHWDeviceContext @ 0x7f8999cc3ec0] Driver not found in known nonstandard list, using standard behaviour. [Child 145: MediaPDecoder #1]: D/PlatformDecoderModule VA-API FFmpeg init successful [Child 145: MediaPDecoder #3]: D/PlatformDecoderModule Choosing FFmpeg pixel format for VA-API video decoding. [Child 145: MediaPDecoder #3]: D/PlatformDecoderModule Requesting pixel format VAAPI_VLD [vp8 @ 0x7f8999df7000] Format vaapi_vld chosen by get_format(). [vp8 @ 0x7f8999df7000] Format vaapi_vld requires hwaccel initialisation. [vp8 @ 0x7f8999df7000] No support for codec vp8 profile -99. [etc]...
Tested workaround (as in turning off acceleration)
media.ffvpx.enabled = true
Using Telavox web based SIP phone with FF
Need to spoof the user-agent to include "Chrome"
Install User-Agent switcher
Then add this to the “Custom Mode” configuration
{ "app.telavox.com": "${userAgent} Chrome" }
Now you also need to manually enable accepting calls
This is due to microphone permisssion not queryable
First make sure that you have allowed persistent access to microphone.
Then add the value registerSoftphone:“true” to the “Local Storage” for https://app.telavox.com
If you then go to “Settings | Phone and audio” you should see that “Receive incoming calls” is now enabled.