mmatyas / pegasus-frontend

A cross platform, customizable graphical frontend for launching emulators and managing your game collection.
http://pegasus-frontend.org
Other
1.19k stars 106 forks source link

Wayland support #940

Closed SupervisedThinking closed 2 years ago

SupervisedThinking commented 2 years ago

It would be great if you could have a look at the Wayland support. Pegasus basically works but the screen is frozen with an empty loading bar & I guess this is the reason

2022-02-08T20:23:48 [w] qt.qpa.wayland: Wayland does not support QWindow::requestActivate()

If googled a bit and found this: https://forum.qt.io/topic/90639/comparing-qt-widgets-app-under-gnome-wayland-using-platform-wayland-egl-to-xcb

Maybe it's not that hard to change/update the behaviour? I'm willing and eager to test if you're not running any pure Wayland stuff if you pass me some patches.

full log

2022-02-08T20:23:48 [i] Pegasus alpha15-101-g8425a4f6-dirty (2022-01-21)
2022-02-08T20:23:48 [i] Running on LibreELEC (ST): RR-20220208-271cb9f (x86_64, wayland)
2022-02-08T20:23:48 [i] Qt version 5.15.2
2022-02-08T20:23:48 [i] Program settings loaded (`/storage/.config/pegasus-frontend/settings.txt`)
2022-02-08T20:23:48 [i] Found locale `ar`
2022-02-08T20:23:48 [i] Found locale `bs`
2022-02-08T20:23:48 [i] Found locale `de`
2022-02-08T20:23:48 [i] Found locale `en-GB`
2022-02-08T20:23:48 [i] Found locale `en`
2022-02-08T20:23:48 [i] Found locale `es`
2022-02-08T20:23:48 [i] Found locale `fr`
2022-02-08T20:23:48 [i] Found locale `hu`
2022-02-08T20:23:48 [i] Found locale `ja`
2022-02-08T20:23:48 [i] Found locale `ko`
2022-02-08T20:23:48 [i] Found locale `lt`
2022-02-08T20:23:48 [i] Found locale `nl`
2022-02-08T20:23:48 [i] Found locale `pt-BR`
2022-02-08T20:23:48 [i] Found locale `ru`
2022-02-08T20:23:48 [i] Found locale `zh-TW`
2022-02-08T20:23:48 [i] Found locale `zh`
2022-02-08T20:23:48 [i] Locale set to `en`
2022-02-08T20:23:48 [i] Found theme `Pegasus Grid` at `:/themes/pegasus-theme-grid/`
2022-02-08T20:23:48 [i] Found theme `gameOS` at `/usr/share/pegasus-frontend/themes/gameOS/`
2022-02-08T20:23:48 [i] Found theme `ES2 Simple` at `/usr/share/pegasus-frontend/themes/pegasus-theme-es2-simple/`
2022-02-08T20:23:48 [i] Theme set to `Pegasus Grid` (`:/themes/pegasus-theme-grid/`)
2022-02-08T20:23:48 [w] qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
2022-02-08T20:23:48 [i] Metafiles: No metadata files found
2022-02-08T20:23:48 [i] Metafiles: Finished searching in 0ms
2022-02-08T20:23:48 [i] Media: Finished searching in 0ms
2022-02-08T20:23:48 [i] Steam: No installation found
2022-02-08T20:23:48 [i] Steam: Finished searching in 0ms
2022-02-08T20:23:48 [i] GOG: 0 games found
2022-02-08T20:23:48 [i] GOG: Finished searching in 0ms
2022-02-08T20:23:48 [i] EmulationStation: Found `/storage/.emulationstation/es_systems.cfg`
2022-02-08T20:23:48 [i] EmulationStation: Found 44 systems
2022-02-08T20:23:48 [i] EmulationStation: Found `/storage/.emulationstation//resources/mamebioses.xml`, 82 entries loaded
2022-02-08T20:23:48 [i] EmulationStation: Found `/storage/.emulationstation//resources/mamedevices.xml`, 403 entries loaded
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo Entertainment System` provided 34 games
2022-02-08T20:23:48 [i] EmulationStation: System `Super Nintendo Entertainment System` provided 74 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo 64` provided 32 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo GameCube` provided 25 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo Wii` provided 56 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo Game Boy` provided 2 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo Game Boy Color` provided 3 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo Game Boy Advance` provided 14 games
2022-02-08T20:23:48 [i] EmulationStation: System `Nintendo DS` provided 6 games
2022-02-08T20:23:49 [i] EmulationStation: System `Nintendo 3DS` provided 15 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Master System` provided 1 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Mega Drive` provided 23 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Mega-CD` provided 4 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Saturn` provided 18 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Dreamcast` provided 13 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sega Game Gear` provided 1 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sony PlayStation` provided 57 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sony PlayStation 2` provided 15 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sony PlayStation 3` provided 5 games
2022-02-08T20:23:49 [i] EmulationStation: System `Sony PlayStation Portable` provided 5 games
2022-02-08T20:23:49 [i] EmulationStation: System `FinalBurn Neo` provided 541 games
2022-02-08T20:23:49 [i] EmulationStation: System `Multiple Arcade Machine Emulator 2003-Plus` provided 52 games
2022-02-08T20:23:50 [i] EmulationStation: System `Multiple Arcade Machine Emulator 2016` provided 656 games
2022-02-08T20:23:50 [i] EmulationStation: System `SNK Neo Geo` provided 38 games
2022-02-08T20:23:50 [i] EmulationStation: System `Bandai WonderSwan` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `Bandai WonderSwan Color` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `MS-DOS` provided 31 games
2022-02-08T20:23:50 [i] EmulationStation: System `MSX` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: System `NEC PC Engine` provided 3 games
2022-02-08T20:23:50 [i] EmulationStation: System `NEC PC Engine CD-ROM²` provided 4 games
2022-02-08T20:23:50 [i] EmulationStation: System `NEC PC-FX` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: System `Sinclair ZX Spectrum` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `Commodore 64` provided 22 games
2022-02-08T20:23:50 [i] EmulationStation: System `Commodore Amiga` provided 11 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari 800` provided 0 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari 2600` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari 5200` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari 7800 ProSystem` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari ST` provided 28 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari Jaguar` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: System `Atari Lynx` provided 1 games
2022-02-08T20:23:50 [i] EmulationStation: System `ScummVM` provided 7 games
2022-02-08T20:23:50 [i] EmulationStation: System `3DO Interactive Multiplayer` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: System `Open Beats of Rage` provided 2 games
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/nes/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/snes/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/n64/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/gamecube/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/wii/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/gb/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/gbc/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/gba/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/nds/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/3ds/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/mastersystem/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/megadrive/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/segacd/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/saturn/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/dreamcast/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/gamegear/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/psx/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/ps2/gamelist.xml`
2022-02-08T20:23:50 [w] EmulationStation: No gamelist file found for system `ps3`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/psp/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/fba/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/mame/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/mame2016/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/neogeo/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/wonderswan/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/wonderswancolor/gamelist.xml`
2022-02-08T20:23:50 [w] EmulationStation: No gamelist file found for system `pc`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/msx/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/pcengine/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/pcecd/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/pcfx/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/zxspectrum/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/c64/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/amiga/gamelist.xml`
2022-02-08T20:23:50 [w] EmulationStation: No gamelist file found for system `atari800`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/atari2600/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/atari5200/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/atari7800/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/atarist/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/atarijaguar/gamelist.xml`
2022-02-08T20:23:50 [w] EmulationStation: No gamelist file found for system `atarilynx`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/scummvm/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/3do/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Found `/storage/roms/openbor/gamelist.xml`
2022-02-08T20:23:50 [i] EmulationStation: Finished searching in 2241ms
2022-02-08T20:23:50 [i] Logiqx: Finished searching in 0ms
2022-02-08T20:23:50 [i] Lutris: No installation found
2022-02-08T20:23:50 [i] Lutris: Finished searching in 0ms
2022-02-08T20:23:50 [i] Skraper Assets: 0 assets found
2022-02-08T20:23:50 [i] Skraper Assets: Finished searching in 2ms
2022-02-08T20:23:50 [i] Favorites: Finished searching in 0ms
2022-02-08T20:23:50 [i] Playtime: Finished searching in 0ms
2022-02-08T20:23:50 [w] The collection 'Atari 800' has no valid games, ignored
2022-02-08T20:23:50 [w] The collection 'GOG' has no valid games, ignored
2022-02-08T20:23:50 [i] Game list post-processing took 28ms
2022-02-08T20:23:50 [i] 1814 games found
2022-02-08T20:23:50 [w] qrc:/themes/pegasus-theme-grid/layer_platform/PlatformCard.qml:71:5: QML Image: Cannot open: qrc:/themes/pegasus-theme-grid/assets/logos/pc-fx.svg
2022-02-08T20:23:50 [w] qrc:/themes/pegasus-theme-grid/layer_platform/PlatformCard.qml:71:5: QML Image: Cannot open: qrc:/themes/pegasus-theme-grid/assets/logos/pce-cd.svg
mmatyas commented 2 years ago

Wayland is handled by the Qt libraries: the official Pegasus binaries use X11, but if you build Pegasus with a Wayland supporting Qt (or use Flatpak), it should also support Wayland.

SupervisedThinking commented 2 years ago

It freezes, at least with Sway but looks like it starts fine with Weston

Other stuff like https://github.com/moonlight-stream/moonlight-qt works fine on both, I'm using Qt5 5.15.2+ the KDE patch set https://invent.kde.org/qt/qt/qt5/-/tree/kde/5.15 btw. so a lot of fixes have been backported.

So I guess I have to dig a bit deeper 🤔