I’ve identified and solved the
issue.
Root Cause:
The white screen was caused by a known compatibility issue between
WebKit2GTK (version 2.42+) and NVIDIA GPUs when using the DMA-BUF
renderer. The error manifests as:
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1200x800: Permission denied
Solution:
Setting the environment variable WEBKIT_DISABLE_DMABUF_RENDERER=1 before
the WebKit renderer initializes resolves the issue.
For Tauri/Rust Applications:
The key is to set the environment variable at the very start of main(),
before the Tauri builder runs:
fn main() {
// Set WebKit environment variable BEFORE Tauri/WebKit initializes
// This fixes white screen issues on NVIDIA GPU systems
std::env::set_var(“WEBKIT_DISABLE_DMABUF_RENDERER”, “1”);
app_lib::run();
}
For Other Applications:
Launch your WebKit-based application with:
WEBKIT_DISABLE_DMABUF_RENDERER=1 your-app
Note: This is a workaround that disables the problematic DMA-BUF renderer.
For better performance, you can optionally install libnvidia-egl-gbm1,
though the workaround works fine without it.
Reference: This issue is tracked at
Hope this helps anyone else experiencing similar issues with WebKit
applications on DGX Spark or other NVIDIA GPU systems!