====== 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 [[https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS|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 [[https://addons.mozilla.org/en-US/firefox/addon/user-agent-string-switcher/|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 [[https://stackoverflow.com/questions/59131286/how-to-check-if-the-permission-to-access-microphone-has-been-rejected-by-the-use|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.