Hello,
I’m using **Firefox 141 on Linux Mint mate 21.3 (X11), kernel 6.8.0-64-lowlatency #67.1~22.04.1-Ubuntu ** with an NVIDIA GT 1030 GPU and the proprietary NVIDIA driver v550.
I’ve configured nvidia-vaapi-driver and successfully enabled hardware video decoding via VAAPI (confirmed by about:support and actual performance), but WebRender Compositor remains blocked.
This is consistent with Mozilla’s Bugzilla Bug 1638709, which describes how Mozilla intentionally disables WebRender Compositor for NVIDIA + EGLStream (X11) due to the lack of DMA-BUF zero-copy support and unstable behavior.
🔧 What I tried:
user.js configuration:
user_pref("gfx.webrender.compositor", true);
user_pref("gfx.webrender.compositor.force-enabled", true);
user_pref("gfx.webrender.all", true);
user_pref("layers.acceleration.force-enabled", true);
Environment variables:
MOZ_WEBRENDER=1
MOZ_WEBRENDER_COMPOSITOR=1
MOZ_GFX_BLOCKLIST_ALL=1
Firefox output (about:support):
WEBRENDER_COMPOSITOR:
default: disabled (Disabled by default)
user: available (Enabled via gfx.webrender.compositor)
env: blocklisted (Blocked by gfxInfo – FEATURE_FAILURE_WEBRENDER_COMPOSITOR_DISABLED)
Even with the above force-enabled settings and environment variables, the WebRender Compositor stays disabled — blocked by Firefox’s internal gfxInfo.
🧪 Diagnostic Log (DMA-BUF)
I launched Firefox with the following debug logging:
MOZ_LOG="Dmabuf:5" MOZ_WEBRENDER=1 MOZ_WEBRENDER_COMPOSITOR=1 MOZ_GFX_BLOCKLIST_ALL=1 MOZ_LOG_FILE=/dev/stdout firefox -P test 2>&1
Output:
[Parent 523342: Main Thread]: D/Dmabuf DMABufDeviceLock::DMABufDeviceLock() [7ffc525f2900]
[Parent 523342: Main Thread]: D/Dmabuf DMABufDevice::Init()
[Parent 523342: Main Thread]: D/Dmabuf Loading DMABuf system library libgbm.so.1 ...
[Parent 523342: Main Thread]: D/Dmabuf Using DRM device /dev/dri/renderD128
[Parent 523342: Main Thread]: D/Dmabuf DMABuf is enabled
[Parent 523342: Main Thread]: D/Dmabuf EnsureDMABufDevice(): created DMABufDevice
[Parent 523342: Main Thread]: D/Dmabuf DMABufDevice::GetDevice() [7fd91d114d30]
[Parent 523342: Main Thread]: D/Dmabuf DMABufFormats::EnsureBasicFormats(): GBM_FORMAT_XRGB8888 is missing, adding.
[Parent 523342: Main Thread]: D/Dmabuf DMABufFormats::EnsureBasicFormats(): GBM_FORMAT_ARGB8888 is missing, adding.
[Parent 523342: Main Thread]: D/Dmabuf DMABufDeviceLock::~DMABufDeviceLock() [7ffc525f2900]
This confirms that:
- Firefox detects and tries to enable DMA-BUF,
libgbm.so.1is loaded,/dev/dri/renderD128is used,- DMA-BUF support is marked as enabled internally.
Yet WebRender Compositor is still blocked by gfxInfo, because EGLStream does not support zero-copy buffer sharing between the decoder and compositor, and GBM is not used on NVIDIA under X11.
❓ Questions for NVIDIA:
- Does the current NVIDIA proprietary driver support DMA-BUF zero-copy compositing under X11 with EGLStream?
- If not, is there any roadmap or plan to implement this so that Firefox (and other clients) can use WebRender Compositor under X11 with NVIDIA GPUs?
- Is it NVIDIA’s recommendation to use Wayland + GBM for zero-copy rendering instead?
Thank you in advance for any clarification regarding DMA-BUF and compositing support for Firefox on X11 with NVIDIA GPUs.
Best regards,
Krzysztof Szwaba