libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.28k stars 1.83k forks source link

[Steamdeck] Opengl renderer broke - this summer #15549

Open notimp opened 1 year ago

notimp commented 1 year ago

So I guess none of you is interested in fixing the Opengl renderer for the most widely used Linux gaming system out there?

Why care about folks using shaders and filters...

You do you...

Reference: https://github.com/libretro/RetroArch/issues/15469 Thats when I noticed, that glcore broke. Turns out gl is broken as well (set video core to gl, save config, restart retroarch, blackscreen to full crash).

Fancy assigning anyone?

Steamdeck main update channel, fully updated in discover store in desktop mode as well.

Most current flatpack version of retroarch. (But to my knowledge it wasnt a change in the retroarch update that broke it, but an update to the underlying SteamOS Linux.))

edit: xmb menu driver but also tried with others, same crash.

gouchi commented 1 year ago

You might merge both issue as they are related.

Also you should provide at least some log (for flatpak log) otherwise it will be difficult to fix the issue if there is.

Thank you.

notimp commented 1 year ago

[INFO] [Config]: Looking for config in: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg". [INFO] RetroArch 1.15.0 (Git 6616b80) [INFO] === Build ======================================= [INFO] CPU Model Name: AMD Custom APU 0405 [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSE4 SSE4.2 AES AVX AVX2 [INFO] Built: May 16 2023 [INFO] Version: 1.15.0 [INFO] Git: 6616b80 [INFO] ================================================= [INFO] [Input]: Found input driver: "x". [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565. [INFO] [Core]: Version of libretro API: 1, Compiled against API: 1 [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. [INFO] [Video]: Set video size to: fullscreen. [INFO] [Video]: Starting threaded video driver.. [ERROR] [Wayland]: Failed to connect to Wayland server. [INFO] [GLX]: GLX_EXT_swap_control_tear supported. [INFO] [GL]: Found GL context: "x". [INFO] [GL]: Detecting screen resolution: 1280x800. [INFO] [XINERAMA]: Xinerama version: 1.1. [INFO] [XINERAMA]: Xinerama screens: 1. [INFO] [GLX]: Using Xinerama on screen #0. [INFO] [GLX]: X = 0, Y = 0, W = 1280, H = 800. [INFO] [GLX]: Using windowed fullscreen. [INFO] [GLX]: Found swap function: glXSwapIntervalEXT. [INFO] [GL]: Vendor: AMD, Renderer: AMD Custom GPU 0405 (vangogh, LLVM 15.0.7, DRM 3.45, 5.13.0-valve36-1-neptune). [INFO] [GL]: Version: 4.6 (Compatibility Profile) Mesa 23.1.4 (git-8b0202e4b4). [INFO] [GL]: Using resolution 1280x800. [INFO] [GL]: Default shader backend found: glsl. [INFO] [Shader driver]: Using GLSL shader backend. [INFO] [GLSL]: Checking GLSL shader support ... [WARN] [GL]: Stock GLSL shaders will be used. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] Setting up menu pipeline shaders for XMB ... [INFO] [GLSL]: Compiling ribbon shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Compiling simple ribbon shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Compiling snow shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Compiling modern snow shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Compiling bokeh shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Compiling snowflake shader.. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GL]: Using 4 textures. [INFO] [GL]: Loaded 1 program(s). [INFO] [GL]: Using GL_RGB565 for texture uploads. [INFO] [Joypad]: Found joypad driver: "sdl2". [INFO] [Video]: Found display server: "x11". [INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432. [INFO] [Display]: Found display driver: "gl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_music_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_video_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_image_history.lpl". [INFO] [Playlist]: Loading favorites file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_favorites.lpl".

After that, crash.

So much help, I know, wow.

Its not pulse audio either, tested with sdl as the audio driver as well, still crash.

Just never look at the issue and you'll be fine, its just the most popular linux gaming system out there, who cares....

notimp commented 1 year ago

Here is a log using vulkan, where retroarch boots without crash on the same steamdeck:

[INFO] [Config]: Looking for config in: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg". [INFO] RetroArch 1.15.0 (Git 6616b80) [INFO] === Build ======================================= [INFO] CPU Model Name: AMD Custom APU 0405 [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSE4 SSE4.2 AES AVX AVX2 [INFO] Built: May 16 2023 [INFO] Version: 1.15.0 [INFO] Git: 6616b80 [INFO] ================================================= [INFO] [Input]: Found input driver: "x". [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565. [INFO] [Core]: Version of libretro API: 1, Compiled against API: 1 [INFO] [Audio]: Set audio input rate to: 48000.00 Hz. [INFO] [Video]: Set video size to: fullscreen. [INFO] [Video]: Starting threaded video driver.. [ERROR] [Wayland]: Failed to connect to Wayland server. [INFO] [Vulkan]: Vulkan dynamic library loaded. [INFO] [Vulkan]: Found vulkan context: "vk_x". [INFO] [Vulkan]: Detecting screen resolution: 1280x800. [INFO] [XINERAMA]: Xinerama version: 1.1. [INFO] [XINERAMA]: Xinerama screens: 1. [INFO] [X/Vulkan]: Using Xinerama on screen #0. [INFO] [X/Vulkan]: X = 0, Y = 0, W = 1280, H = 800. [INFO] [X/Vulkan]: Using windowed fullscreen. [INFO] [Vulkan]: Found GPU at index 0: "AMD Custom GPU 0405 (RADV VANGOGH)". [INFO] [Vulkan]: Found GPU at index 1: "llvmpipe (LLVM 15.0.7, 256 bits)". [INFO] [Vulkan]: Using GPU index 0. [INFO] [Vulkan]: Using semaphores for WSI acquire. [INFO] [Vulkan]: Using GPU: "AMD Custom GPU 0405 (RADV VANGOGH)". [INFO] [Vulkan]: Queue family 0 supports 1 sub-queues. [INFO] [Vulkan]: Got 3 swapchain images. [INFO] [Vulkan]: Using resolution 1280x800. [INFO] [Vulkan]: Using RGB565 format. [INFO] [Vulkan]: Loading stock shader. [INFO] [Joypad]: Found joypad driver: "sdl2". [INFO] [Video]: Found display server: "x11". [INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432. [INFO] [Display]: Found display driver: "vulkan". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_music_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_video_history.lpl". [INFO] [Playlist]: Loading history file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_image_history.lpl". [INFO] [Playlist]: Loading favorites file: "/home/deck/.var/app/org.libretro.RetroArch/config/retroarch/content_favorites.lpl".

[INFO] [X/Vulkan]: Resized fullscreen resolution to 1280x800.

[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.

[INFO] [Core]: Unloading core.. [INFO] [Core]: Unloading core symbols.. [INFO] [Autoconf]: Steam Virtual Gamepad disconnected from port 1. [INFO] [XINERAMA]: Xinerama version: 1.1. [INFO] [XINERAMA]: Xinerama screens: 1. [INFO] [XINERAMA]: Saved monitor #0. [INFO] Threaded video stats: Frames pushed: 161, Frames dropped: 0.

JesseTG commented 1 year ago

I could not reproduce this issue on the latest stable Steam release. Haven't tried the Flatpak yet, but is there a reason you prefer the Flatpak release?

notimp commented 1 year ago

I could not reproduce this issue on the latest stable Steam release. Haven't tried the Flatpak yet, but is there a reason you prefer the Flatpak release?

Hmm let me think.... Have you ever in your LIFE visited ANY steamdeck reddit page? have you EVER in YOUR LIFE, heard of anything named Emudeck.

HERE IS A HINT. ITS THE PRIMARY METHOD THAT CLOSE TO A MILLION PEOPLE ON STEADECK USE FOR EMULATION. WE HAVE THE DOWNLOAD LOGS.

So hows your 15k downloads of the Steam version of retroarch on the Steamdeck progressing?

The official reasoning for that team no using "HAVE YOu NOTaa Udsed THA steam version" is that -

a.) They would have to make individual game shortcuts for Roms within the Steam interface (Collections) appear as "steam games" as supposed to "non steam games", because - and now I quote the main developer of the project "because its actually hard to make a steam game appear as a non steam game in steam" - and this includes writing your own launcher scripts, steamdeck still looks at the binary behind those, and pronounces steam game.

A switch to the steam version of RA would therefore split rom libraries for people, so its an absolute no go for the maintainers of Emudeck, which coincidently 95% of all Steamdeck users are using for Emulating games.

b.) To implement the steam version of the emulator Emudeck would have to go against its practices for EVERY OTHER EMULATOR they implemented within their project, that 19 in total, I thought I'd mention that as well... And then start to use a VALVE api to install free "Games" from the steam store, AND THEIR DLC - which is a red flag the size of a flipping sky scraper - when trying to maintain a project that makes it easier for close to 1 million people to get emulators working, and roms to appear in their steam library. (Thats what emudeck is.). Because it gets them in direct conflict territory with Valve management, because they now have to use the Steam store, and automated dlc type downloads within the steam store - so people would get what they want, in the same easy fashion they did in the past). So thats never going to happen.

c.) Thats on top of "flatpaks" being the officialy supported binary format for steamdeck.

If you have issues with the flatpak format in specific (which I doubt (on a shaky knowledge basis), because it wasnt Retroarch that broke the binary, it was actually the steamdeck updating one of its system files via the discover store), you can also think about providing an .appimage version of retroarch and I'm sure the Emudeck team will consider implementing it - although that then breaks the auto update path for many people - so flatpaks still are preferred.

Installing with pacman in the Steamdeck is not an option, because Valve retains the ability to format the system partition with every system update (to reduce support costs from users never having touched linux in their life before), which is a default for them. (Doing that with every update).

So thanks for your consideration - but there are about a million people (not even exaggerating here, see: https://media.discordapp.net/attachments/955837767680655370/1102677434509307964/image.png ) out there that simply cant follow your suggestion.

I'm always so greatful, that the Retroarch team shows, that its so very in the loop on all things that actually are skyrocketing them in terms of usage numbers and popularity currently.

Just never look at the issues here and you'll be fine, its just the most popular linux gaming system out there, who cares.... - using the most popular (by far as in 10:1) installation method of anything "emulation" on the system out there.

TLDR; The flatpak vesion is important for steamdeck users, not something you can shred argumentatively in a monentary "I dont want to fix this" spur of the moment impulse.

If you care about steamdeck users. 95% of them depend on the flatpak release. If you want to streamline that and think about an .appimage version only, thats fine - I can talk to the emudeck team to implement that instead. Its just that "use the steam version" is a no go for the emudeck team and thereby the vast majority of emulation users on steamdeck.

That this hasnt bubbled up more excessively is due to vulkan still working and 70% of people never changing anything away from default in settings in their lives. But for people using shaders and filters (the one aspect Retroarch excels at) thats not always an option.

Sincerely, probably your only defender left in a "knowledgable" support role on the Emudeck discord - you should stop by some time, devs there have good relations with many of the other developer teams out there -- not only because that project became the defacto default for people wanting to use emulation on the steamdeck.

(Emudeck started as you want emulators, preconfigured controls (normal users on steamdeck cant figure that out), good out of the box settings for emulators on the steamdeck, and your roms showing up in the main fronend of the steamdeck -- thats why everyone is using it.)

Now dear sire, the people on your lands are in pain - please do something. And thank you for your wives suggestion, that the people can eat cake, it just wont work in this instance.

hizzlekizzle commented 1 year ago

Please lose the attitude. It doesn't make anyone want to work on it. JesseTG was just asking a normal troubleshooting question.

off-topic, Valve has only sold a bit over 1 million Steam Decks altogether, so are you saying that every single Steam Deck has installed EmuDeck? Because that doesn't seem very likely.

JesseTG commented 1 year ago

I could not reproduce this issue on the latest stable Steam release. Haven't tried the Flatpak yet, but is there a reason you prefer the Flatpak release?

Hmm let me think.... Have you ever in your LIFE visited ANY steamdeck reddit page? have you EVER in YOUR LIFE, heard of anything named Emudeck.

It's much easier to get people to help you if you're nice to them, especially if they're unpaid volunteers and hobbyists. Try again, but without the condescending attitude.

gouchi commented 1 year ago

We are trying to help you by gathering information and to reproduce your issue. If you were more courteous, we would be more inclined to respond.

Good luck, peace.