ttytm / webview

V binding for webview - a tiny cross-platform library to build modern cross-platform GUI applications.
https://ttytm.github.io/webview/
MIT License
56 stars 1 forks source link

bug: Blank window from 'webkitgtk2-4.1' bug (with temporary fix) #31

Open scurty-labs opened 10 months ago

scurty-labs commented 10 months ago

Hello! Been using this module and it's wonderful! I've encountered a very odd bug, and after some digging I've found a temporary workaround. After an update to Manjaro install, building and running a ttytm.webview example project, I encountered the following error:

src/nv_gbm.c:99: GBM-DRV error (nv_gbm_bo_create): DRM_IOCTL_NVIDIA_GEM_ALLOC_NVKMS_MEMORY failed (ret=-1)

Failed to create GBM buffer of size 800x600: Invalid argument
src/nv_gbm.c:99: GBM-DRV error (nv_gbm_bo_create): DRM_IOCTL_NVIDIA_GEM_ALLOC_NVKMS_MEMORY failed (ret=-1)

Failed to create GBM buffer of size 800x600: Invalid argument
src/nv_gbm.c:99: GBM-DRV error (nv_gbm_bo_create): DRM_IOCTL_NVIDIA_GEM_ALLOC_NVKMS_MEMORY failed (ret=-1)

Failed to create GBM buffer of size 800x600: Invalid argument
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1

A window did show, but it was not rendering anything within.

Lots of Nvidia related things in here, and after some searching, I've found that this is also an issue with Tauri: https://github.com/tauri-apps/tauri/issues/7910 Seemed to also be discussed here on a GTK4 webkit bug post: https://bugs.webkit.org/show_bug.cgi?id=228268 And here I found a work around posted by somebody: https://github.com/wailsapp/wails/issues/2977#issuecomment-1761765185

Solution:

The temporary workaround is running the following in a terminal session before running/building an app with : export WEBKIT_DISABLE_DMABUF_RENDERER=1

Posting this incase anyone else has this issue when using this module/an updated webkit lib.

ttytm commented 10 months ago

Hey @scurty-labs!

thanks for the feedback :100: and for providing a workaround for those who run into it!

This looks like a very recent bug people might run into.

nobane commented 6 months ago

I ran into this issue trying use webkit2gtk on arch linux (with an nvidia card) and I was able to fix it without setting WEBKIT_DISABLE_DMABUF_RENDERER=1.

Here is how I fixed it:

  1. Check if you have modesetting enabled via

    cat /sys/module/nvidia_drm/parameters/modeset
  2. If you see printed N then you need to enable it with

    echo options nvidia_drm modeset=1 | sudo tee /etc/modprobe.d/nvidia_drm.conf
  3. Restart your computer