Closed Bug 1711027 Opened 3 years ago Closed 3 years ago

Can't use GPU when multiple/identical GPUs detected

Categories

(Core :: Graphics, defect)

Firefox 88
Unspecified
Linux
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: waxandwayner, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36

Steps to reproduce:

I have two identical GPUs running amdgpu drivers. Latest Linux, Xorg, and Firefox versions.

Launch firefox with either no options, DRI_PRIME=0, or DRI_PRIME=1
This should work (I've tried each permutation):
DRI_PRIME=0 MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox

Actual results:

In all cases Firefox says: "More than 1 GPU from same vendor detected via PCI" and doesn't allow any GPU acceleration.

Expected results:

Firefox should not detect GPUs and get confused when it is told via "DRI_PRIME=" which to use. Everything else in Xorg is defaultly using provider 0 by default (xrandr --listproviders let's me identify via PCI ID). This is not a new problem - I've seen it for about a year of upgrades now, but haven't had time to report it until now.

vainfo shows:

libva info: VA-API version 1.11.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.11 (libva 2.11.0)
vainfo: Driver version: Mesa Gallium driver 21.0.3 for Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.18_1, LLVM 11.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

The Bugbug bot thinks this bug should belong to the 'Core::Graphics' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Graphics
Product: Firefox → Core

Wayne Johnson, thanks for the report. Can you add about:support to this bug?

Flags: needinfo?(waxandwayner)

Application Basics

Name: Firefox
Version: 88.0.1
Build ID: 20210512142319
Distribution ID:
User Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
OS: Linux 5.11.18_1 #1 SMP 1620040716
Multiprocess Windows: 1/1
Fission Windows: 0/1 Disabled by default
Remote Processes: 7
Enterprise Policies: Inactive
Google Location Service Key: Missing
Google Safebrowsing Key: Missing
Mozilla Location Service Key: Found
Safe Mode: false

Firefox Features

Name: DoH Roll-Out
Version: 2.0.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.0
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org

Name: Picture-In-Picture
Version: 1.0.0
ID: pictureinpicture@mozilla.org

Name: Web Compatibility Interventions
Version: 21.0.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.4.0
ID: webcompat-reporter@mozilla.org

Remote Features

Remote Processes

Type: Web Content
Count: 5 / 8

Type: Privileged About
Count: 1

Type: Extension
Count: 1

Add-ons

Name: Amazon.com
Type: extension
Version: 1.3
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Type: extension
Version: 1.3
Enabled: true
ID: bing@search.mozilla.org

Name: ClearURLs
Type: extension
Version: 1.21.0
Enabled: true
ID: {74145f27-f039-47ce-a470-a662b129930a}

Name: Dark Reader
Type: extension
Version: 4.9.32
Enabled: true
ID: addon@darkreader.org

Name: DuckDuckGo
Type: extension
Version: 1.1
Enabled: true
ID: ddg@search.mozilla.org

Name: eBay
Type: extension
Version: 1.3
Enabled: true
ID: ebay@search.mozilla.org

Name: Google
Type: extension
Version: 1.1
Enabled: true
ID: google@search.mozilla.org

Name: Translate Web Pages
Type: extension
Version: 9.0.3
Enabled: true
ID: {036a55b4-5e72-4d05-a06c-cba2dfcc134a}

Name: uBlock Origin
Type: extension
Version: 1.35.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: WA Web Plus for WhatsApp™
Type: extension
Version: 1.6.1
Enabled: true
ID: {e5b78745-5fde-4ebf-b8c7-465120c9dfe4}

Name: Wikipedia (en)
Type: extension
Version: 1.1
Enabled: true
ID: wikipedia@search.mozilla.org

Graphics

Features
Compositing: Basic
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled; smooth pinch-zoom enabled
WebGL 1 Driver WSI Info: -
WebGL 1 Driver Renderer: WebGL is currently disabled.
WebGL 1 Driver Version: -
WebGL 1 Driver Extensions: -
WebGL 1 Extensions: -
WebGL 2 Driver WSI Info: -
WebGL 2 Driver Renderer: WebGL is currently disabled.
WebGL 2 Driver Version: -
WebGL 2 Driver Extensions: -
WebGL 2 Extensions: -
Window Protocol: x11
Desktop Environment: unknown
Target Frame Rate: 144
GPU #1
Active: Yes
Description: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.18_1, LLVM 11.0.0)
Vendor ID: 0x1002
Device ID: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.18_1, LLVM 11.0.0)
Driver Vendor: mesa/radeonsi
Driver Version: 21.0.3.0
RAM: 0

Diagnostics
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: none
CairoUseXRender: 0
CMSOutputProfile: Empty profile data
Display0: 2560x1440 default
DisplayCount: 1
Decision Log
HW_COMPOSITING:
available by default
disabled by user: Disabled by pref
OPENGL_COMPOSITING:
unavailable by default: Hardware compositing is disabled
WEBRENDER:
available by default
force_enabled by user: Force enabled by pref
disabled by env: Not qualified
unavailable-no-hw-compositing by runtime: Hardware compositing is disabled
WEBRENDER_QUALIFIED:
available by default
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
WEBRENDER_OPTIMIZED_SHADERS:
available by default
unavailable by runtime: WebRender disabled
WEBRENDER_ANGLE:
available by default
unavailable by env: OS not supported
WEBRENDER_DCOMP_PRESENT:
available by default
disabled by user: User disabled via pref
unavailable by env: Requires Windows 10 or later
unavailable by runtime: Requires ANGLE
WEBRENDER_SOFTWARE:
available by default
denied by env: Not on allowlist
OMTP:
disabled by default: Disabled by default
WEBGPU:
disabled by default: Disabled by default
unavailable-no-webrender by runtime: WebGPU can't present without WebRender
X11_EGL:
available by default
force_enabled by user: Force enabled by envvar
blocklisted by env: Blocklisted by gfxInfo
DMABUF:
available by default

Failure Log
(#0) Error: More than 1 GPU from same vendor detected via PCI, cannot deduce device

Media

Audio Backend: pulse-rust
Max Channels: 2
Preferred Sample Rate: 44100
Roundtrip latency (standard deviation): ...
Output Devices
Name: Group
PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 5): /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:05:00.1/sound/card1
Input Devices
Name: Group
Monitor of PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
Monitor of Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 5): /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:05:00.1/sound/card1

Enumerate database

Environment Variables

MOZ_LOG: PlatformDecoderModule:5
MOZ_X11_EGL: 1
DISPLAY: :0
MOZ_ASSUME_USER_NS: 1
MOZ_LAUNCHED_CHILD:
XRE_PROFILE_PATH:
XRE_PROFILE_LOCAL_PATH:
XRE_START_OFFLINE:
XRE_BINARY_PATH:
XRE_RESTARTED_BY_PROFILE_MANAGER:

Experimental Features

about:home startup cache (browser.startup.homepage.abouthome_cache.enabled): false
Cookies: SameSite=Lax by default (network.cookie.sameSite.laxByDefault): false
Cookies: SameSite=None requires secure attribute (network.cookie.sameSite.noneRequiresSecure): false
Cookies: Schemeful SameSite (network.cookie.sameSite.schemeful): false
CSS: Constructable Stylesheets (layout.css.constructable-stylesheets.enabled): false
CSS: Masonry Layout (layout.css.grid-template-masonry-value.enabled): false
Developer Tools: Color Scheme Simulation (devtools.inspector.color-scheme-simulation.enabled): true
Developer Tools: Compatibility Panel (devtools.inspector.compatibility.enabled): false
Developer Tools: Execution Context Selector (devtools.webconsole.input.context): false
Developer Tools: Service Worker debugging (devtools.debugger.features.windowless-service-workers): false
Fission (Site Isolation) (fission.autostart): false
HTTP/3 protocol (network.http.http3.enabled): false
Media: AVIF (image.avif.enabled): false
Multiple Picture-in-Picture Support (media.videocontrols.picture-in-picture.allow-multiple): true
Address Bar: show results during IME composition (browser.urlbar.keepPanelOpenDuringImeComposition): false
Web API: inputmode (dom.forms.inputmode): false
Web API: WebGPU (dom.webgpu.enabled): false
WebRTC Global Mute Toggles (privacy.webrtc.globalMuteToggles): false

Remote Experiments

Important Modified Preferences

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 1116991
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.contentblocking.category: custom
browser.search.region: UA
browser.sessionstore.privacy_level: 2
browser.sessionstore.upgradeBackup.latestBuildID: 20210512142319
browser.startup.homepage_override.buildID: 20210512142319
browser.startup.homepage_override.mstone: 88.0.1
browser.startup.page: 3
browser.urlbar.placeholderName: Google
browser.urlbar.placeholderName.private: Google
browser.urlbar.resultBuckets: {"children":[{"maxResultCount":1,"children":[{"group":"heuristicTest"},{"group":"heuristicExtension"},{"group":"heuristi
browser.urlbar.speculativeConnect.enabled: false
browser.urlbar.tipShownCount.searchTip_onboard: 4
browser.urlbar.tipShownCount.searchTip_redirect: 4
browser.urlbar.tipShownCount.tabToSearch: 1
doh-rollout.balrog-migration-done: true
doh-rollout.doneFirstRun: true
dom.event.clipboardevents.enabled: false
dom.push.userAgentID: 89bcb7646f314812952ba1aff38deacd
extensions.lastAppVersion: 88.0.1
font.internaluseonly.changed: true
gfx.webrender.all: true
idle.lastDailyNotification: 1620958464
layers.acceleration.disabled: true
layout.frame_rate: 144
layout.frame_rate.precise: true
media.ffmpeg.dmabuf-textures.enabled:true: true
media.ffmpeg.vaapi.enabled: true
media.ffvpx.enabled: false
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1592161171
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20210512142319
media.gmp-manager.lastCheck: 1620833973
media.gmp-widevinecdm.enabled: false
media.gmp.storage.version.observed: 1
media.navigator.enabled: false
media.videocontrols.picture-in-picture.video-toggle.has-used: true
mousewheel.min_line_scroll_amount: 25
network.cookie.cookieBehavior: 1
network.dns.disablePrefetch: true
network.http.referer.XOriginPolicy: 2
network.http.referer.XOriginTrimmingPolicy: 2
network.http.speculative-parallel-limit: 0
network.IDN_show_punycode: true
network.predictor.enabled: false
network.prefetch-next: false
network.trr.blocklist_cleanup_done: true
places.database.lastMaintenance: 1620872064
places.history.expiration.transient_current_max_pages: 41810
privacy.firstparty.isolate: true
privacy.purge_trackers.date_in_cookie_database: 0
privacy.purge_trackers.last_purge: 1620958464146
privacy.resistFingerprinting: true
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.trackingprotection.enabled: true
security.remote_settings.crlite_filters.checked: 1620979327
security.remote_settings.intermediates.checked: 1620979327
security.sandbox.content.tempDirSuffix: 9a956b86-da02-48e3-ad58-1c5c199e7ce6
security.sandbox.plugin.tempDirSuffix: 714a690d-781f-4efa-b3f5-ae970e2d950d
services.sync.declinedEngines:
signon.importedFromSqlite: true
signon.usage.hasEntry: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1620785664
webgl.disabled: true

Important Locked Preferences

fission.autostart.session: false

Places Database

Accessibility

Activated: false
Prevent Accessibility: 0

Library Versions

NSPR
Expected minimum version: 4.30
Version in use: 4.30

NSS
Expected minimum version: 3.64
Version in use: 3.64

NSSSMIME
Expected minimum version: 3.64
Version in use: 3.64

NSSSSL
Expected minimum version: 3.64
Version in use: 3.64

NSSUTIL
Expected minimum version: 3.64
Version in use: 3.64

Sandbox

Seccomp-BPF (System Call Filtering): true
Seccomp Thread Synchronization: true
User Namespaces: true
Content Process Sandboxing: true
Media Plugin Sandboxing: true
Content Process Sandbox Level: 4
Effective Content Process Sandbox Level: 4

Rejected System Calls

Startup Cache

Ignore Disk Cache: false
Found Disk Cache on Init: true
Wrote to Disk Cache: false

Internationalization & Localization

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US"]
App Locales: ["en-US"]
Regional Preferences: ["en-US"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["en-US"]

Remote Debugging (Chromium Protocol)

Accepting Connections: false
URL:

Printing

Modified print settings

Flags: needinfo?(waxandwayner)

Just used the "copy text to clipboard" function in about:support... Can do another way if the formatting isn't up to standards.

:stransky, :rmader, :aosmond, can you comment to the bug?

Flags: needinfo?(stransky)
Flags: needinfo?(robert.mader)
Flags: needinfo?(aosmond)
OS: Unspecified → Linux

Yeah, that's an unfortunate and known issue with our GPU detection, see bug 1676883. Wayne, do things work if you force on WR, either by setting gfx.webrender.all in about:config or using the env variable MOZ_WEBRENDER=1?

Flags: needinfo?(robert.mader) → needinfo?(waxandwayner)
See Also: → 1676883
See Also: → 1692024
Flags: needinfo?(stransky)

This time I added MOZ_WEBRENDER=1 - but I see the same effect in about:support:
More than 1 GPU from same vendor detected via PCI, cannot deduce device.

I already had gfx.webrender.all set to true in about:config during all of this testing. This latest test was doing using the line:
DRI_PRIME=0 MOZ_WEBRENDER=1 MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox to start Firefox.

That bug seems resolved & mostly Wayland oriented. I'm using Xorg. Do you know much about how Firefox is getting this GPU information? Perhaps I could force everything in Xorg to use one GPU? It seems Xorg has no issues with this - and most of the CLI tools like vainfo know which GPU to use - so I'm wondering how Firefox gets confused (even when it is told which to use via DRI_PRIME=0).
Thanks!

The message More than 1 GPU from same vendor detected via PCI, cannot deduce device is actually harmless and probably louder than it should be - it is only about GPU detection which is shared for Wayland and X11.

The main question is if about:support properly lists Webrender as compositor and if the render node detection works right. The about:support you posted above says Basic. If despite forcing on WR it still does that, then we're seeing a bug apart from the multi-gpu detection.

OK, using DRI_PRIME=0 MOZ_WEBRENDER=1 MOZ_X11_EGL=1 MOZ_LOG="PlatformDecoderModule:5" firefox to launch, about:support states:

available by default
force_enabled by user: Force enabled by envvar
disabled by env: Not qualified
unavailable-no-hw-compositing by runtime: Hardware compositing is disabled
WEBRENDER_QUALIFIED	
available by default
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR	
disabled by default: Disabled by default
WEBRENDER_OPTIMIZED_SHADERS	
available by default
unavailable by runtime: WebRender disabled
WEBRENDER_ANGLE	
available by default
unavailable by env: OS not supported
WEBRENDER_DCOMP_PRESENT	
available by default
disabled by user: User disabled via pref
unavailable by env: Requires Windows 10 or later
unavailable by runtime: Requires ANGLE
WEBRENDER_SOFTWARE	
available by default
denied by env: Not on allowlist```

```gfx.webrender.all	true```
```MOZ_WEBRENDER	1```
Flags: needinfo?(waxandwayner)

Another clue is that on the same system I had to export LIBVA_DRIVER_NAME=radeonsi to get GPU acceleration working in chromium. However, that did not change the above behavior from Firefox.

Blocks: wr-linux
Severity: -- → S3

There are a couple of odd things happening here and I suspect some custom settings being at play. While the warning will still be there, Webrender should run fine in this setup, at least when forced on. Wayne, could you try a fresh profile or at least reset setting such as layers.acceleration.disabled and maybe webgl.disabled and share your about:support again? Thanks!

Flags: needinfo?(waxandwayner)

So I guess this might have nothing to do with dual GPUs. I see a lot of similarity with these bug reports, and tried the suggestions therein:
https://bugzilla.mozilla.org/show_bug.cgi?id=1673184
https://bugzilla.mozilla.org/show_bug.cgi?id=1610199

Because I see this in the logs:

[Child 27770: Main Thread]: D/PlatformDecoderModule PDMInitializer, Init PDMs in Content process
[Child 27770: Main Thread]: D/PlatformDecoderModule Sandbox RDD decoder supports requested type
[RDD 28439: Main Thread]: D/PlatformDecoderModule PDMInitializer, Init PDMs in RDD process
[RDD 28439: Main Thread]: D/PlatformDecoderModule VA-API FFmpeg is disabled by platform
[RDD 28439: Main Thread]: D/PlatformDecoderModule Agnostic decoder rejects requested type
~~~lots of this~~~
[RDD 28439: Main Thread]: D/PlatformDecoderModule Agnostic decoder supports requested type
[Child 27770: Main Thread]: D/PlatformDecoderModule Sandbox RDD decoder supports requested type
~~~lots of this~~~
[Child 27893: Main Thread]: D/PlatformDecoderModule PDMInitializer, Init PDMs in Content process
[Child 27893: Main Thread]: D/PlatformDecoderModule Sandbox RDD decoder rejects requested type
[Child 27893: MediaSupervisor #1]: D/PlatformDecoderModule Sandbox RDD decoder rejects requested type
[Child 27893: MediaPDecoder #1]: D/PlatformDecoderModule Initialising FFmpeg decoder.
[Child 27893: MediaPDecoder #1]: D/PlatformDecoderModule FFmpeg init successful.

I was just lead to believe this is as serious as it states:

Crash Annotation GraphicsCriticalError: |[0][GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device (t=0.162343) [GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device```
Flags: needinfo?(waxandwayner)

The first issue you'll want to solve is get hardware Webrender running - without that there's no chance of getting any acceleration. See comment 11, I think you simply force-disabled acceleration by setting layers.acceleration.disabled.

Thanks I reset those two vars and I'm not seeing VAAPI in the output. Not sure what the most reliable way to detect if VAAPI is working for any videos... I think that should be made easier to detect. I bet lots of people who think they have GPU acceleration working in their browsers do not.

Here's the support page again:

Application Basics
------------------

Name: Firefox
Version: 88.0.1
Build ID: 20210512142319
Distribution ID:
User Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
OS: Linux 5.11.22_1 #1 SMP 1621481187
Multiprocess Windows: 1/1
Fission Windows: 0/1 Disabled by default
Remote Processes: 8
Enterprise Policies: Inactive
Google Location Service Key: Missing
Google Safebrowsing Key: Missing
Mozilla Location Service Key: Found
Safe Mode: false

Firefox Features
----------------

Name: DoH Roll-Out
Version: 2.0.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.0
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org

Name: Picture-In-Picture
Version: 1.0.0
ID: pictureinpicture@mozilla.org

Name: Web Compatibility Interventions
Version: 21.0.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.4.0
ID: webcompat-reporter@mozilla.org

Remote Features
---------------

Remote Processes
----------------

Type: Web Content
Count: 5 / 8

Type: Privileged About
Count: 1

Type: Extension
Count: 1

Type: Preallocated
Count: 1

Add-ons
-------

Name: Amazon.com
Type: extension
Version: 1.3
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Type: extension
Version: 1.3
Enabled: true
ID: bing@search.mozilla.org

Name: ClearURLs
Type: extension
Version: 1.21.0
Enabled: true
ID: {74145f27-f039-47ce-a470-a662b129930a}

Name: Dark Reader
Type: extension
Version: 4.9.32
Enabled: true
ID: addon@darkreader.org

Name: DuckDuckGo
Type: extension
Version: 1.1
Enabled: true
ID: ddg@search.mozilla.org

Name: eBay
Type: extension
Version: 1.3
Enabled: true
ID: ebay@search.mozilla.org

Name: Google
Type: extension
Version: 1.1
Enabled: true
ID: google@search.mozilla.org

Name: Translate Web Pages
Type: extension
Version: 9.0.4
Enabled: true
ID: {036a55b4-5e72-4d05-a06c-cba2dfcc134a}

Name: uBlock Origin
Type: extension
Version: 1.35.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: WA Web Plus for WhatsApp™
Type: extension
Version: 1.6.1
Enabled: true
ID: {e5b78745-5fde-4ebf-b8c7-465120c9dfe4}

Name: Wikipedia (en)
Type: extension
Version: 1.1
Enabled: true
ID: wikipedia@search.mozilla.org

Graphics
--------

Features
Compositing: WebRender
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled; smooth pinch-zoom enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Mesa Project EGL_VERSION: 1.5 EGL_EXTENSIONS: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap EGL_WL_bind_wayland_display EGL_EXTENSIONS(nullptr): EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless IsWebglOutOfProcessEnabled: 0
WebGL 1 Driver Renderer: AMD -- Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.22_1, LLVM 12.0.0)
WebGL 1 Driver Version: 4.6 (Compatibility Profile) Mesa 21.0.3
WebGL 1 Driver Extensions: GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_copy_depth_to_color GL_NV_depth_clamp GL_NV_fog_distance GL_NV_half_float GL_APPLE_packed_pixels GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_depth_bounds_test GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_AMD_performance_monitor GL_EXT_texture_buffer_object GL_AMD_texture_texture4 GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_compatibility GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_stencil_export GL_ARB_shader_texture_lod GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_ATI_meminfo GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_copy_image GL_NV_texture_barrier GL_ARB_draw_indirect GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_precision GL_ARB_shader_subroutine GL_ARB_texture_compression_bptc GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_viewport_array GL_EXT_direct_state_access GL_EXT_shader_image_load_store GL_EXT_vertex_attrib_64bit GL_NV_vdpau_interop GL_AMD_multi_draw_indirect GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_query_buffer_object GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_compute_shader GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_fragment_layer_viewport GL_ARB_framebuffer_no_attachments GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_robust_buffer_access_behavior GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_AMD_pinned_memory GL_ARB_bindless_texture GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_compute_variable_group_size GL_ARB_enhanced_layouts GL_ARB_indirect_parameters GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_query_buffer_object GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shading_language_include GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_NVX_gpu_memory_info GL_ARB_ES3_1_compatibility GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_shader_texture_image_samples GL_ARB_texture_barrier GL_ARB_transform_feedback_overflow_query GL_EXT_polygon_offset_clamp GL_EXT_shader_image_load_formatted GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_shader_atomic_int64 GL_ARB_gpu_shader_int64 GL_ARB_parallel_shader_compile GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_ARB_shader_clock GL_ARB_shader_viewport_layer_array GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_ARB_gl_spirv GL_ARB_spirv_extensions GL_EXT_window_rectangles GL_MESA_shader_integer_functions GL_ARB_polygon_offset_clamp GL_ARB_texture_filter_anisotropic GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_KHR_parallel_shader_compile GL_NV_alpha_to_coverage_dither_control GL_AMD_framebuffer_multisample_advanced GL_EXT_EGL_image_storage GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_EGL_sync GL_EXT_demote_to_helper_invocation
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: EGL_VENDOR: Mesa Project EGL_VERSION: 1.5 EGL_EXTENSIONS: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap EGL_WL_bind_wayland_display EGL_EXTENSIONS(nullptr): EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless IsWebglOutOfProcessEnabled: 0
WebGL 2 Driver Renderer: AMD -- Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.22_1, LLVM 12.0.0)
WebGL 2 Driver Version: 4.6 (Core Profile) Mesa 21.0.3
WebGL 2 Driver Extensions: GL_AMD_conservative_depth GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_framebuffer_multisample_advanced GL_AMD_gpu_shader_int64 GL_AMD_multi_draw_indirect GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_query_buffer_object GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_texture_texture4 GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_meminfo GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_EGL_image_storage GL_EXT_EGL_sync GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_demote_to_helper_invocation GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shader_samples_identical GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_IBM_multimode_draw_arrays GL_INTEL_blackhole_render GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_framebuffer_flip_y GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_NVX_gpu_memory_info GL_NV_alpha_to_coverage_dither_control GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_copy_image GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_NV_shader_atomic_int64 GL_NV_texture_barrier GL_NV_vdpau_interop GL_OES_EGL_image GL_S3_s3tc
WebGL 2 Extensions: EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Window Protocol: x11
Desktop Environment: unknown
Target Frame Rate: 144
GPU #1
Active: Yes
Description: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.22_1, LLVM 12.0.0)
Vendor ID: 0x1002
Device ID: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.22_1, LLVM 12.0.0)
Driver Vendor: mesa/radeonsi
Driver Version: 21.0.3.0
RAM: 0

Diagnostics
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: none
CairoUseXRender: 0
CMSOutputProfile: Empty profile data
Display0: 2560x1440 default
DisplayCount: 1
Decision Log
HW_COMPOSITING:
available by default
OPENGL_COMPOSITING:
available by default
WEBRENDER:
available by default
force_enabled by user: Force enabled by envvar
disabled by env: Not qualified
WEBRENDER_QUALIFIED:
available by default
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
WEBRENDER_PARTIAL:
available by default
WEBRENDER_OPTIMIZED_SHADERS:
available by default
WEBRENDER_ANGLE:
available by default
unavailable by env: OS not supported
WEBRENDER_DCOMP_PRESENT:
available by default
disabled by user: User disabled via pref
unavailable by env: Requires Windows 10 or later
unavailable by runtime: Requires ANGLE
WEBRENDER_SOFTWARE:
available by default
denied by env: Not on allowlist
OMTP:
disabled by default: Disabled by default
WEBGPU:
disabled by default: Disabled by default
blocked by runtime: WebGPU can only be enabled in nightly
X11_EGL:
available by default
force_enabled by user: Force enabled by envvar
blocklisted by env: Blocklisted by gfxInfo
DMABUF:
available by default


Failure Log
(#0) Error: More than 1 GPU from same vendor detected via PCI, cannot deduce device

Media
-----

Audio Backend: pulse-rust
Max Channels: 2
Preferred Sample Rate: 44100
Roundtrip latency (standard deviation): 61.31ms (8.45)
Output Devices
Name: Group
PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 5): /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:05:00.1/sound/card1
Input Devices
Name: Group
Monitor of PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
PCM2902 Audio Codec Analog Stereo: /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:07:00.1/usb1/1-2/1-2:1.0/sound/card0
Monitor of Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI 5): /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:05:00.1/sound/card1

Enumerate database

Environment Variables
---------------------

MOZ_WEBRENDER: 1
MOZ_DISABLE_RDD_SANDBOX: 1
DISPLAY: :0
MOZ_LOG: PlatformDecoderModule:5
MOZ_X11_EGL: 1
MOZ_ASSUME_USER_NS: 1
MOZ_LAUNCHED_CHILD:
XRE_PROFILE_PATH:
XRE_PROFILE_LOCAL_PATH:
XRE_START_OFFLINE:
XRE_BINARY_PATH:
XRE_RESTARTED_BY_PROFILE_MANAGER:

Experimental Features
---------------------

about:home startup cache (browser.startup.homepage.abouthome_cache.enabled): false
Cookies: SameSite=Lax by default (network.cookie.sameSite.laxByDefault): false
Cookies: SameSite=None requires secure attribute (network.cookie.sameSite.noneRequiresSecure): false
Cookies: Schemeful SameSite (network.cookie.sameSite.schemeful): false
CSS: Constructable Stylesheets (layout.css.constructable-stylesheets.enabled): false
CSS: Masonry Layout (layout.css.grid-template-masonry-value.enabled): false
Developer Tools: Color Scheme Simulation (devtools.inspector.color-scheme-simulation.enabled): true
Developer Tools: Compatibility Panel (devtools.inspector.compatibility.enabled): false
Developer Tools: Execution Context Selector (devtools.webconsole.input.context): false
Developer Tools: Service Worker debugging (devtools.debugger.features.windowless-service-workers): false
Fission (Site Isolation) (fission.autostart): false
HTTP/3 protocol (network.http.http3.enabled): false
Media: AVIF (image.avif.enabled): false
Multiple Picture-in-Picture Support (media.videocontrols.picture-in-picture.allow-multiple): true
Address Bar: show results during IME composition (browser.urlbar.keepPanelOpenDuringImeComposition): false
Web API: inputmode (dom.forms.inputmode): false
Web API: WebGPU (dom.webgpu.enabled): false
WebRTC Global Mute Toggles (privacy.webrtc.globalMuteToggles): false

Remote Experiments
------------------

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 1116991
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.contentblocking.category: custom
browser.search.region: US
browser.sessionstore.privacy_level: 2
browser.sessionstore.upgradeBackup.latestBuildID: 20210512142319
browser.startup.homepage_override.buildID: 20210512142319
browser.startup.homepage_override.mstone: 88.0.1
browser.startup.page: 3
browser.urlbar.placeholderName: Google
browser.urlbar.placeholderName.private: Google
browser.urlbar.resultBuckets: {"children":[{"maxResultCount":1,"children":[{"group":"heuristicTest"},{"group":"heuristicExtension"},{"group":"heuristi
browser.urlbar.speculativeConnect.enabled: false
browser.urlbar.tipShownCount.searchTip_onboard: 4
browser.urlbar.tipShownCount.searchTip_redirect: 4
browser.urlbar.tipShownCount.tabToSearch: 1
doh-rollout.balrog-migration-done: true
doh-rollout.doneFirstRun: true
dom.event.clipboardevents.enabled: false
dom.push.userAgentID: 7b25bcabcf8a42b9976e40d834676544
extensions.lastAppVersion: 88.0.1
font.internaluseonly.changed: true
gfx.webrender.all: true
idle.lastDailyNotification: 1621908864
layout.frame_rate: 144
layout.frame_rate.precise: true
media.ffmpeg.dmabuf-textures.enabled:true: true
media.ffmpeg.vaapi.enabled: true
media.ffvpx.enabled: false
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1592161171
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20210512142319
media.gmp-manager.lastCheck: 1621964835
media.gmp-widevinecdm.enabled: false
media.gmp.storage.version.observed: 1
media.navigator.enabled: false
media.videocontrols.picture-in-picture.video-toggle.has-used: true
mousewheel.min_line_scroll_amount: 25
network.cookie.cookieBehavior: 1
network.dns.disablePrefetch: true
network.http.referer.XOriginPolicy: 2
network.http.referer.XOriginTrimmingPolicy: 2
network.http.speculative-parallel-limit: 0
network.IDN_show_punycode: true
network.predictor.enabled: false
network.prefetch-next: false
network.trr.blocklist_cleanup_done: true
places.database.lastMaintenance: 1621563264
places.history.expiration.transient_current_max_pages: 41810
privacy.firstparty.isolate: true
privacy.purge_trackers.date_in_cookie_database: 0
privacy.purge_trackers.last_purge: 1621908864275
privacy.resistFingerprinting: true
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.trackingprotection.enabled: true
security.remote_settings.crlite_filters.checked: 1621955016
security.remote_settings.intermediates.checked: 1621955016
security.sandbox.content.tempDirSuffix: 9a956b86-da02-48e3-ad58-1c5c199e7ce6
security.sandbox.plugin.tempDirSuffix: 714a690d-781f-4efa-b3f5-ae970e2d950d
services.sync.declinedEngines:
signon.importedFromSqlite: true
signon.usage.hasEntry: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1620785664

Important Locked Preferences
----------------------------

fission.autostart.session: false

Places Database
---------------

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.30
Version in use: 4.30

NSS
Expected minimum version: 3.64
Version in use: 3.65

NSSSMIME
Expected minimum version: 3.64
Version in use: 3.65

NSSSSL
Expected minimum version: 3.64
Version in use: 3.65

NSSUTIL
Expected minimum version: 3.64
Version in use: 3.65

Sandbox
-------

Seccomp-BPF (System Call Filtering): true
Seccomp Thread Synchronization: true
User Namespaces: true
Content Process Sandboxing: true
Media Plugin Sandboxing: true
Content Process Sandbox Level: 4
Effective Content Process Sandbox Level: 4

Rejected System Calls
---------------------

Startup Cache
-------------

Ignore Disk Cache: false
Found Disk Cache on Init: true
Wrote to Disk Cache: false

Internationalization & Localization
-----------------------------------

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US"]
App Locales: ["en-US"]
Regional Preferences: ["en-US"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["en-US"]

Remote Debugging (Chromium Protocol)
------------------------------------

Accepting Connections: false
URL:

Printing
--------

Modified print settings
-----------------------

(In reply to Wayne Johnson from comment #14)

Thanks I reset those two vars and I'm not seeing VAAPI in the output.

The good news is that you now have GPU acceleration running in general, most importantly

DMABUF:
available by default

This is the most important dependency for VAAPI

Not sure what the most reliable way to detect if VAAPI is working for any videos... I think that should be made easier to detect. I bet lots of people who think they have GPU acceleration working in their browsers do not.

Totally agree that we should expose that in about:support at some point. Right now checking VAAPI support is a bit cumbersome - on Intel one can run intel_gpu_top to check if the video engine of the GPU is used. On AMD, I think the only thing one can do is what you already tried, which is running with MOZ_LOG="PlatformDecoderModule:5" and checking the VAAPI related output :(
AFAIK you'll be most likely to get a positive result with h264 encoded videos, not sure how the current situation is with VP9 and RDD etc.

Thanks! So any ideas how I can get it working? This is still in the output no matter what I try:

[Child 1677: MediaSupervisor #1]: D/PlatformDecoderModule Sandbox RDD decoder supports requested type
[RDD 2197: Main Thread]: D/PlatformDecoderModule PDMInitializer, Init PDMs in RDD process
[RDD 2197: Main Thread]: D/PlatformDecoderModule VA-API FFmpeg is disabled by platform
[RDD 2197: Main Thread]: D/PlatformDecoderModule Agnostic decoder rejects requested type
[RDD 2197: Main Thread]: D/PlatformDecoderModule Agnostic decoder supports requested type

Sorry, from here on it's getting difficult. The message, however, comes from https://searchfox.org/mozilla-central/source/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp#295 which indicates that https://searchfox.org/mozilla-central/source/widget/gtk/DMABufLibWrapper.cpp#270 returnes false, which can have several reasons - they should be printed somewhere, maybe grep for the things in https://searchfox.org/mozilla-central/source/widget/gtk/DMABufLibWrapper.cpp#271-274. Given that the messages look like they come from the RDD process, disabling media.rdd-process.enabled may help, and check media.rdd-ffmpeg.enabled.

That being said, for me I only ever got h264 to work on my mashine, which is why I force it via the "enhanced-h264ify" add-on on sides like youtube.

media.rdd-process.enabled was set to true. Now I set it to false. media.rdd-ffmpeg.enabled is already false.

But I'm still wondering exact instructions for what to look for to verify it is enabled. Which I cannot find anywhere. Does this mean VAAPI works?

[Child 7459: MediaPDecoder #2]: D/PlatformDecoderModule AudioTrimmer[7f7af9170920] ::PrepareTrimmers: sample[0,21000] no trimming information
[Child 7459: MediaPDecoder #2]: D/PlatformDecoderModule OpusDataDecoder[7f7afb258100] ::Decode: Opus decoder skipping 312 of 960 frames
[Child 7459: MediaPDecoder #2]: D/PlatformDecoderModule AudioTrimmer[7f7af9170920] ::HandleDecodedResult: sample[0,21000] (decoded[0,13500] no trimming needed
[Child 7459: MediaPDecoder #2]: D/PlatformDecoderModule DAV1DDecoder[7f7af98b4c10] ::GetPicture: Decode error: -11
[Child 7459: MediaPDecoder #2]: D/PlatformDecoderModule DAV1DDecoder[7f7af98b4c10] ::GetPicture: Decode error: -11

If so, then I was testing with the wrong videos sometimes!

Yep! It seems like it!

libva info: VA-API version 1.11.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_11
libva info: va_openDriver() returns 0
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x30313050 -> p010le.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x36313050 -> unknown.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x30323449 -> yuv420p.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x32315659 -> yuv420p.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x56595559 -> unknown.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x32595559 -> yuyv422.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x59565955 -> uyvy422.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x41524742 -> bgra.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x41424752 -> rgba.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x58524742 -> bgr0.
[AVHWDeviceContext @ 0x7f7af019a880] Format 0x58424752 -> rgb0.

Thanks... I suppose I should try disabling that flag and seeing if it still works.

I set media.rdd-process.enabled to true again and seems it still works... Sorry, I didn't do a great job of tracking cause & effect here.

Great :)

While on it, can you verify that it works with both, DRI_PRIME=0 and DRI_PRIME=1? So we can close this and know that at least in this setup things are detected as they should?

Flags: needinfo?(waxandwayner)

Yes that works. However I did export DRI_PRIME=0 when I started X. I assume running DRI_PRIME=1 firefox would override that though.

Flags: needinfo?(waxandwayner)
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Flags: needinfo?(aosmond)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.