Almamu / linux-wallpaperengine

Wallpaper Engine backgrounds for Linux!
GNU General Public License v3.0
1.64k stars 61 forks source link

[Important Bug!] Lastest Wallpaper Engine version makes Linux-Wallpaperengine stop working/unable to load backgrounds. #184

Closed IgLocoXD closed 9 months ago

IgLocoXD commented 1 year ago

If you update the latest Wallpaper Engine version, ANY background (video, image, gif, etc) Stops working and gives a white/gray/black screen, and an "cannot load (image, video etc)" error.

A temporal fix is to downgrade the Wallpaper Engine version using the "previous" beta.

nphantasm commented 12 months ago

Seems to be only scene related. Videos work just fine for me (tested this and this).

This scene crashes with a segfault. Backtrace:

Starting program: /home/phantasm/.local/bin/linux-wallpaperengine/build/linux-wallpaperengine --assets-dir /home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets /home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2932157836 --fps 15 --silent --screen-root DP1

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Using wallpaper engine's assets at "/home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/wallpaper_engine/assets" based on --assets-dir parameter
Detected "scene.pkg" file at "/home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2932157836/scene.pkg". Adding to list of searchable paths
No "gifscene.pkg" file found at "/home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2932157836/gifscene.pkg". Defaulting to normal folder storage

Program received signal SIGSEGV, Segmentation fault.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (this=this@entry=0x7fffffffcad0, 
    __str=<error reading variable: Cannot access memory at address 0x8>)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:278
278     /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc: Adresář nebo soubor neexistuje.
(gdb) bt
#0  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
    (this=this@entry=0x7fffffffcad0, __str=<error reading variable: Cannot access memory at address 0x8>)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:278
#1  0x00007ffff5559b2e in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (__str=<optimized out>, this=0x7fffffffcad0)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:1596
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=0x7fffffffcad0, __str=<optimized out>)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:802
#3  0x0000555555627380 in WallpaperEngine::Core::Objects::CEffect::fromJSON(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>, WallpaperEngine::Core::UserSettings::CUserSettingBoolean*, WallpaperEngine::Core::CObject*, WallpaperEngine::Assets::CContainer*)
    (data=..., visible=0x5555558a85d0, object=0x5555558e0800, container=0x5555557297f0)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Core/Objects/CEffect.cpp:101
#4  0x000055555561ecea in WallpaperEngine::Core::CObject::fromJSON(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>, WallpaperEngine::Core::CScene*, WallpaperEngine::Assets::CContainer*) (data=..., scene=0x555555879e30, container=0x5555557297f0)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Core/CObject.cpp:131
#5  0x000055555561be79 in WallpaperEngine::Core::CScene::fromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, WallpaperEngine::Core::CProject&, WallpaperEngine::Assets::CContainer*)
    (filename="scene.json", project=..., container=0x5555557297f0)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Core/CScene.cpp:107
#6  0x000055555561a04e in WallpaperEngine::Core::CProject::fromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, WallpaperEngine::Assets::CContainer*) (filename="project.json", container=0x5555557297f0)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Core/CProject.cpp:34
#7  0x0000555555572bbb in WallpaperEngine::Application::CWallpaperApplication::loadBackground(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
    (this=0x7fffffffd3f0, bg="/home/phantasm/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/workshop/content/431960/2932157836") at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Application/CWallpaperApplication.cpp:200
#8  0x0000555555572a9d in WallpaperEngine::Application::CWallpaperApplication::loadBackgrounds() (this=0x7fffffffd3f0)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Application/CWallpaperApplication.cpp:191
#9  0x0000555555572098 in WallpaperEngine::Application::CWallpaperApplication::CWallpaperApplication(WallpaperEngine::Application::CApplicationContext&) (this=0x7fffffffd3f0, context=...)
    at /home/phantasm/.local/bin/linux-wallpaperengine/src/WallpaperEngine/Application/CWallpaperApplication.cpp:26
#10 0x0000555555566ad3 in main(int, char**) (argc=9, argv=0x7fffffffd6c8) at /home/phantasm/.local/bin/linux-wallpaperengine/main.cpp:29

This scene has the grey screen and dumps a bunch of shader/GL code to stdout and does not exit until SIGTERM.

Complete copy: shader.txt

xade93 commented 10 months ago

Yes. Even with downgraded wallpaper engine, all the animations were still not showing, and the shader dump is still present.

Almamu commented 9 months ago

I've just pushed some commits that should fix some wallpapers that were crashing, this does not mean that they'll display properly tho, as most of these use some advanced rendering that might not be properly supported. With the last few commits backgrounds should start working again and displaying at least to the same level they were before the WPEngine update. I'll close this issue for now as the main topics seem to be somewhat solved, but please do not hesitate to open new ones with specific issues on the same or other wallpapers.