Disable WebKitGTK DMA-BUF renderer on NVIDIA - #9716
Open
vltic wants to merge 1 commit into
Open
Conversation
WebKitGTK's DMA-BUF renderer does not work against NVIDIA's EGL driver on Wayland, which is the backend envs.lua selects. Apps using the system webkit2gtk-4.1 die at window creation with "Error 71 (Protocol error) dispatching to Wayland display", and apps bundling their own WebKit (Tauri apps, AppImages) abort with "Could not create GBM EGL display". Forcing Mesa's EGL vendor on the same machine makes both work with the DMA-BUF renderer still enabled, which isolates the fault to NVIDIA's EGL driver rather than to the renderer itself or to Omarchy's existing NVIDIA environment. Set inside the two driver branches rather than the outer nvidia check, so pre-Maxwell cards -- which match omarchy-hw-nvidia but neither GSP branch, and render through Mesa on nouveau -- keep the accelerated path. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
vltic
force-pushed
the
nvidia-webkit-dmabuf
branch
from
September 2, 2026 01:46
ea20d28 to
8d4d358
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What breaks
On a machine with an NVIDIA GPU, WebKitGTK apps do not start under Omarchy.
Apps using the system
webkit2gtk-4.1die at window creation:Apps that bundle their own WebKit (Tauri apps, AppImages) abort outright:
Different symptoms, one cause: WebKitGTK's DMA-BUF renderer does not work against NVIDIA's EGL driver on Wayland.
Minimal reproduction
No third-party app required — this uses only the system WebKitGTK:
python3 wk-test.pyfails.WEBKIT_DISABLE_DMABUF_RENDERER=1 python3 wk-test.pyprintsSURVIVED.The fault is NVIDIA's EGL driver
Three runs per condition:
WEBKIT_DISABLE_DMABUF_RENDERER=1__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.jsonThe third row is the control: same machine, same DMA-BUF renderer, Mesa's EGL instead of NVIDIA's, and it works. That rules out the renderer itself and points at the driver.
It is not caused by Omarchy's existing NVIDIA environment
__GLX_VENDOR_LIBRARY_NAMENVD_BACKENDLIBVA_DRIVER_NAMEGDK_BACKENDGDK_BACKEND=x11GDK_BACKEND=waylandNone of the variables this file already sets are implicated. The failure is Wayland-specific, and
default/hypr/envs.luasetsGDK_BACKEND=wayland,x11,*, so Omarchy routes users onto the failing path by default. That is why it seems worth carrying the mitigation here rather than leaving every affected user to discover it.Why it is scoped to the two driver branches
omarchy-hw-nvidiamatches any NVIDIA display device, but the two branch detectors do not cover everything it matches:-gspis device id>= 0x1e00and-without-gspis0x1340 <= id < 0x1e00. Pre-Maxwell cards match the outer check and neither branch, so they currently get no NVIDIA environment at all, and they render through nouveau on Mesa — unaffected, per the control row above.Setting the variable in the outer block would therefore have cost those machines the accelerated renderer for no benefit. It is set only inside the two branches, where Omarchy has already committed to NVIDIA's driver stack.
Tradeoff
The fallback renderer is slower than the DMA-BUF path, so this trades some WebKit compositing performance for these apps starting at all.
The case it over-applies to is a hybrid machine whose apps already render on the integrated GPU: WebKit would have been fine there, and this makes it slower. Narrowing further would need a reliable "is NVIDIA actually the rendering GPU" test, and I did not find one robust enough to propose. Flagging it in case you would rather scope it differently.
Verified on
Single machine. Not tested on NVIDIA-only systems, on the proprietary (non-open) driver, or on the
-without-gspbranch, though the mechanism is the same EGL driver in all cases.Filed by Claude Opus 5 via Claude Code.
🤖 Generated with Claude Code