danyspin97 / wpaperd

Modern wallpaper daemon for Wayland
GNU General Public License v3.0
323 stars 25 forks source link

after unlock from hypridle/hyprlock, no wallpaper is shown #71

Open matjam opened 4 months ago

matjam commented 4 months ago

The process does not appear to have crashed but it seems to lose its handle the the desktop layer. Restarting it, resolves the issue.

danyspin97 commented 4 months ago

This is a bit weird. I have tried with swaylock on sway and it's working as expected. I'll try on my Hyprland machine on Monday.

danyspin97 commented 4 months ago

And thanks for opening the issue @matjam !

natsukashiixo commented 4 months ago

I probably have the same issue (though the issue was/is swayidle and not swaylock). I tought it was a swayidle specific issue so I swapped to hypridle, but it happens with hypridle as well. It's probably worth mentioning that it only affects my main monitor while my side monitor still has a wallpaper after waking up.

possibly useful info:

wpaperd version 1.0.1 driver: NVIDIA-SMI 550.90.07 main monitor: DisplayPort, horizontal, rotating backgrounds side monitor: HDMI, vertical, static background (or rather there's only one picture in the folder so it can't rotate)

(As a sidenote, it seems like waking up from idle actually kills a lot of GUI applications on my machine. Discord, kitty and Firefox have all randomly disappeared after waking up the computer, but which ones are inconsistent. wpaperd is consistently affected though.)

danyspin97 commented 4 months ago

I see. Can you please share the wpaperd logs? They would help in understanding what's happening. To get the logs, either run wpaperd in a terminal, or run it as a daemon (--daemon) and look in ~/.local/state/wpaperd. Thank you!

natsukashiixo commented 4 months ago

sorry that it took a few days, elden ring happened. unless i force the verbose flag I don't get any error messages, if you need me to run the backtrace as well I could use some basic instructions since I'm not much of a developer. not sure if i just write export RUST_BACKTRACE=value in my .zshrc or how its done.


DEBUG [smithay_client_toolkit::registry] Bound new global [46] wl_output v4
DEBUG [smithay_client_toolkit::registry] Bound new global [50] wl_output v4
DEBUG [smithay_client_toolkit::registry] Bound new global [9] zxdg_output_manager_v1 v3
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Argb8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xrgb8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xbgr8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Abgr8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Bgr888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Rgbx4444
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Rgba4444
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Rgbx5551
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Rgba5551
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Rgb565
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xbgr16161616f
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Abgr16161616f
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xbgr16161616
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Abgr16161616
DEBUG [smithay_client_toolkit::registry] Bound new global [51] wl_output v4
ERROR [wpaperd] 
   0: unable to post the surface content
   1: An Surface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ERROR [wpaperd::wpaperd] Error drawing surface: 
   0: unable to post the surface content
   1: An Surface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ERROR [wpaperd::wpaperd] Error drawing surface: 
   0: unable to post the surface content
   1: An Surface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ERROR [wpaperd::wpaperd] Error drawing surface: 
   0: unable to post the surface content
   1: An Surface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
ERROR [wpaperd::wpaperd] Error drawing surface: 
   0: unable to post the surface content
   1: An Surface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.```
Yasso9 commented 2 months ago

I have the same issue with hypridle

danyspin97 commented 2 weeks ago

This seems related to the NVIDIA driver and the way it handles openGL (kitty uses openGL as well).

I have the same issue with hypridle

@Yasso9 do you also have a NVIDIA GPU?

danyspin97 commented 2 weeks ago

My guess is that the EGL context is not recreated when the system wakes up (in the log @natsukashiixo posted, you can see that there is a new wl_output created).

Yasso9 commented 2 weeks ago

This seems related to the NVIDIA driver and the way it handles openGL (kitty uses openGL as well).

I have the same issue with hypridle

@Yasso9 do you also have a NVIDIA GPU?

I have an AMD GPU (RX 7900 GRE)