tranxuanthang / lrcget

Utility for mass-downloading LRC synced lyrics for your offline music library.
MIT License
728 stars 21 forks source link

App cannot be opened when using Nvidia GPU on Linux #54

Open Sevardon-Code opened 6 months ago

Sevardon-Code commented 6 months ago

Whenever I try to load the program it spawns a new window which just hangs. I've tested this with the official appimage release and with this aur package. Here's the output I get in the terminal:

Gtk-Message: 20:34:36.965: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

Database file path: /home/redacted/.local/share/net.lrclib.lrcget/db.sqlite3
Gtk-Message: 20:34:37.645: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1707x1394: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1707x1394: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1707x1394: Permission denied
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1

** (lrcget:54548): WARNING **: 20:35:02.604: atk-bridge: get_device_events_reply: unknown signature

Things I've Tried:

Extra Info/Specs:

Example Image: lrcget

tranxuanthang commented 6 months ago

There is another option for Arch Linux, which is installing the following AUR package:

https://aur.archlinux.org/packages/lrcget-bin

Note that it is not officially maintained by me, so you should use it at your own risk.

Edit: I'm sorry I didn't read it more carefully, you did try this AUR package. I'm too using Arch Linux but don't face the same issue as you. I'm currently using KDE as my desktop environment, but I used both awesomewm and xfce in the past too but I don't remember having any issues with LRCGET. I'll try to reproduce this issue later when I have time.

tranxuanthang commented 6 months ago

Also, could you verify if you have installed webkit2gtk and webkit2gtk-4.1?

sudo pacman -S webkit2gtk webkit2gtk-4.1
Sevardon-Code commented 6 months ago

Installing those packages somewhat fixed it. Versions 0.2.1 and before are loading but not playing songs and 0.3.0 still doesn't load at all. Thanks for looking into this.

P.S. - Required dependencies should probably be listed in README.md.

tranxuanthang commented 6 months ago

@Sevardon-Code sorry for my late reply. I also remembered that I installed the following packages:

sudo pacman -S alsa-lib alsa-utils

(I do not know if all of them are needed or it is important at all, so if you can, help me try it out)

I'm not sure about all dependencies needed to run, I think because most of these packages are present in conventional Linux desktop distros (Ubuntu), and Arch Linux does not have them by default. I will update the README when all the dependencies needed are clear.

Sevardon-Code commented 6 months ago

sorry for my late reply

No worries, I know this probably isn't a high priority issue since it isn't widespread so I don't expect super fast communication on it.

I installed those packages and it doesn't seem to have made a difference for 0.2.1 or 0.3.0. When I have time I'll try to run lrcget on a bare-bones arch vm w/ the packages you've mentioned here to see if it works then. It could be that I've changed something on my install that somehow prevents it from running properly.

Markil3 commented 6 months ago

I can confirm that 0.3.0 doesn't work on a Manjaro installation with an SDDM/KDE Plasma environment, either. Even with the AppImage and after installing the above packages, I just get:

Gtk-Message: 09:53:06.879: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

Database file path: /home/markil3/.local/share/net.lrclib.lrcget/db.sqlite3
Gtk-Message: 09:53:07.395: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1

** (lrcget:7560): WARNING **: 09:53:32.367: atk-bridge: get_device_events_reply: unknown signature
MrComexs commented 5 months ago

I"m also get the same issue for both the appimage and the aur package

Amd 3700x
1080 ti
32GB
Arch
DE: xfce

App image

❯ ./lrcget_0.3.0_amd64.AppImage

(lrcget:25061): Gtk-WARNING **: 00:54:46.917: Failed to parse /home/comexs/.config/gtk-3.0/settings.ini: Key file does not have group “Settings”
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

Database file path: /home/comexs/.local/share/net.lrclib.lrcget/db.sqlite3

(WebKitWebProcess:25138): Gtk-WARNING **: 00:54:47.368: Failed to parse /home/comexs/.config/gtk-3.0/settings.ini: Key file does not have group “Settings”
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1

Aur packge

❯ lrcget

(lrcget:25459): Gtk-WARNING **: 00:57:02.085: Failed to parse /home/comexs/.config/gtk-3.0/settings.ini: Key file does not have group “Settings”

** (lrcget:25459): WARNING **: 00:57:02.181: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
Database file path: /home/comexs/.local/share/net.lrclib.lrcget/db.sqlite3

(WebKitWebProcess:25493): Gtk-WARNING **: 00:57:02.256: Failed to parse /home/comexs/.config/gtk-3.0/settings.ini: Key file does not have group “Settings”
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
^C
tranxuanthang commented 4 months ago

I freshly installed Arch Linux today with archinstall and with Plasma 6 (plasma-meta and kde-applications-meta) and failed to reproduce this.

The AppImage build just works (I did need to install fuse2 package after seeing "AppImages require FUSE to run") and audio plays normally.

Maybe it is because I chose Pipewire in archinstall's Audio setup (instead of Pulse Audio) while installing with archinstall? https://wiki.archlinux.org/title/PipeWire#Audio

Update: I tried installing with lrcget-bin AUR package too, it also works on fresh Arch installation.

Markil3 commented 4 months ago

I am using pulseaudio on all of my stuff. May 4, 2024, 9:49 AM by @.***:

I freshly installed Arch Linux today with > archinstall> and with Plasma 6 (> plasma-meta> and > kde-applications-meta> ) and failed to reproduce this.

The AppImage build just works (I did need to install > fuse2> package after seeing "AppImages require FUSE to run") and audio plays normally.

Maybe it is because I chose Pipewire in > archinstall> 's Audio setup (instead of Pulse Audio) while installing with > archinstall> ? > https://wiki.archlinux.org/title/PipeWire#Audio

— Reply to this email directly, > view it on GitHub https://github.com/tranxuanthang/lrcget/issues/54#issuecomment-2094269555> , or > unsubscribe https://github.com/notifications/unsubscribe-auth/ASC2KAJFFR3QRQ4JBLNWEKDZAT7PPAVCNFSM6AAAAABEY3UVKOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUGI3DSNJVGU> . You are receiving this because you commented.> Message ID: > <tranxuanthang/lrcget/issues/54/2094269555> @> github> .> com>

tranxuanthang commented 4 months ago

@Markil3

I am using pulseaudio on all of my stuff.

Could you try installing pipewire to see if it fixes the problem?

sudo pacman -S pipewire-audio pipewire-alsa pipewire-pulse
sudo systemctl restart pulseaudio.service

See more at https://wiki.archlinux.org/title/PipeWire#Audio

Markil3 commented 4 months ago

Running off of Manjaro:

> sudo pacman -R pulseaudio-zeroconf
> sudo pacman -S pipewire-audio pipewire-alsa pipewire-pulse
> reboot
> sudo pamac install lrcget-bin
> lrcget
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

Database file path: /home/markil3/.local/share/net.lrclib.lrcget/db.sqlite3
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1

Still a blank screen.

Markil3 commented 4 months ago

Same from the AppImage:

Gtk-Message: 11:04:49.199: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

Database file path: /home/markil3/.local/share/net.lrclib.lrcget/db.sqlite3
Gtk-Message: 11:04:49.564: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
Failed to create EGL images for DMABufs with file descriptors -1, -1 and -1
Markil3 commented 4 months ago

I am using KDE Plasma as my desktop environment. Could that have something to do with it? I'm not sure if I have any Gnome apps, so I may not have Gnome 3 dependencies installed...

tranxuanthang commented 4 months ago

@Markil3

I am using KDE Plasma as my desktop environment. Could that have something to do with it?

Negative because this is the setup I'm using (KDE 6 Plasma).

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied

Do you happen to have an Nvidia GPU? If so what display server you are running in, Wayland or X11?

Markil3 commented 4 months ago

I am using X11 on an NVIDIA GPU.

tranxuanthang commented 4 months ago

Can you test by running LRCGET with the WEBKIT_DISABLE_DMABUF_RENDERER=1 environment variable?

WEBKIT_DISABLE_DMABUF_RENDERER=1 lrcget

Reference: https://github.com/tauri-apps/tauri/issues/8462#issuecomment-1868612633

Markil3 commented 4 months ago

That actually works. I can actually see something now. Doing further testing...

Markil3 commented 4 months ago

Audio works with the setup you tried. What if I revert to my standard pulseaudio-alsa setup though...

tranxuanthang commented 4 months ago

@Markil3 I'm not sure, but you can always revert the steps to find out:

sudo systemctl disable pulseaudio.service
sudo systemctl stop pulseaudio.service
sudo pacman -R pipewire-audio pipewire-alsa pipewire-pulse

@MrComexs If you are still interested, you should try setting up the above environment variable to see if it works for you. The problem seems to be related to Nvidia GPU and a bug in webkit2gtk.

Markil3 commented 4 months ago

I just used a timeshift backup. It still works with your environmental variable, so audio doesn't appear to an issue.

MrComexs commented 4 months ago

@MrComexs If you are still interested, you should try setting up the above environment variable to see if it works for you. The problem seems to be related to Nvidia GPU and a bug in webkit2gtk.

I added this to the very end of the /etc/profile file and then I reboot.

WEBKIT_DISABLE_DMABUF_RENDERER=1 lrcget

when I launched lrcge I got this error. also I just switch from arch to artix still using xfce but now I'm using pulseaudio instead of pipewire.

❯ lrcget

(lrcget:4437): Gtk-WARNING **: 12:07:00.479: Theme parsing error: gtk.css:67:43: '000000' is not a valid color name

** (lrcget:4437): WARNING **: 12:07:00.576: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
Database file path: /home/comexs/.local/share/net.lrclib.lrcget/db.sqlite3

(WebKitWebProcess:4471): Gtk-WARNING **: 12:07:00.661: Theme parsing error: gtk.css:67:43: '000000' is not a valid color name
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)

(WebKitWebProcess:4471): Gtk-WARNING **: 12:07:01.199: Theme parsing error: gtk.css:67:43: '000000' is not a valid color name
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
Failed to create GBM buffer of size 1024x768: Permission denied
^C
Markil3 commented 4 months ago

Wait, I'm confused. Are you trying to run lrcget upon every login here, regardless of user or if there is even a display manager running?

If you want to set the environmental variable for the entire session, you may want this line in your /etc/profile:

export WEBKIT_DISABLE_DMABUF_RENDERER=1

Then you can run lrcget normally.

MrComexs commented 4 months ago

Wait, I'm confused. Are you trying to run lrcget upon every login here, regardless of user or if there is even a display manager running? If you want to set the environmental variable for the entire session, you may want this line in your /etc/profile: export WEBKIT_DISABLE_DMABUF_RENDERER=1 Then you can run lrcget normally.

When tranxuanthang said variable my first thing that came to mind was to add it to a file. I didn't think is was a command but now my problem is fix.

Markil3 commented 4 months ago

Unless we want to add a workaround within the code, we should still keep this ticket open until webkit2gtk fixes their code. That way, users who have this issue can easily find this.