RetroDECK / RetroDECK

RetroDECK brings you an all-in-one sandboxed application to play your retro games (and even not-so-retro games) on Linux/SteamOS.
https://retrodeck.net
GNU General Public License v3.0
794 stars 37 forks source link

[Desktop Mode] Error creating OpenGL context. Could not create GL context: GLXBadFBConfig #408

Open scottAnselmo opened 1 year ago

scottAnselmo commented 1 year ago

Problem:

When running RetroDECK on Fedora Kinoite 38 after accepting running RetroDeck in desktop mode it crashes. The issue seems to be upstream w/ the MESA driver for Intel Arc 750. Have pinged related people who work Intel Arc support for MESA, but am creating the issue here just to highlight issue for discoverability by other folk.

Log:

flatpak run net.retrodeck.retrodeck
Found RetroDECK config file in /var/config/retrodeck/retrodeck.cfg
Loading it
Checking to see if today has a surprise...
cp: missing destination file operand after ' /var/config/emulationstation/.emulationstation/resources/graphics/splash.svg'
Try 'cp --help' for more information.
Starting RetroDECK v0.6.6b
MESA: warning: Driver does not support the 0x56a1 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: iris
MESA: warning: Driver does not support the 0x56a1 PCI ID.
libGL error: failed to create dri screen
libGL error: failed to load driver: iris
May 27 18:19:37 Error:  Error creating OpenGL context. Could not create GL context: GLXBadFBConfig
May 27 18:19:37 Error:  Renderer failed to initialize.
May 27 18:19:37 Error:  Window failed to initialize

System Info: Operating System: Fedora Linux 38 KDE Plasma Version: 5.27.5 KDE Frameworks Version: 5.106.0 Qt Version: 5.15.9 Kernel Version: 6.2.15-300.fc38.x86_64 (64-bit) Graphics Platform: X11 Graphics Processor: Mesa Intel® Arc RetroDECK Version: 0.6.6b

XargonWan commented 1 year ago

Thanks for your report, at the mkment Desktop Mode is not supported but it's a planned feature. We will chrck in this issue in the moment that we will implement it.

Lazorne commented 1 year ago

Can you try Open Flatseal and enable Graphics Device = DRI or change other permissions and see if that does something.

See if that does something, I'm not that well versed in ARC.

But standard recommendations apply: Is it a Laptop GPU / CPU hybrid or just a Desktop GPU?

If it is a Laptop Hybrid: If ARC has some performance mode settings in some GUI enable that or if you can add the application into some list that forces performance mode enable that.

scottAnselmo commented 1 year ago

Can you try Open Flatseal and enable Graphics Device = DRI or change other permissions and see if that does something.

Enabled all Device toggles including device=dri, and also filesystem=host, but still get the same errors around the 0x56a1 PCI ID.

If it is a Laptop Hybrid

In my particular case it's the vanilla Intel Arc 750 dedicated GPU, not a discrete variant

Lazorne commented 1 year ago

Ok! I guess we can hope mainline MESA fixes it soon then :)

icenine451 commented 1 year ago

Also, you can try either waiting for 0.7.0 or changing the version of OpenGL used by EmulationStation. I got this same error when running RetroDECK in a VM that didn't support OpenGL 4.6, which the build in RetroDECK 0.6.6b is forced to. Manually changing it to one of the other options (3.3 or 4.2) worked for me.

The file to change is at ~/.var/app/net.retrodeck.retrodeck/config/emulationstation/.emulationstation/es_settings.xml

Change the setting OpenGLVersion from blank to 3.3 or 4.2 and see if that helps. If it does, then things will be fixed in the next build.

scottAnselmo commented 1 year ago

Change the setting OpenGLVersion from blank to 3.3 or 4.2 and see if that helps. If it does, then things will be fixed in the next build.

I can confirm that setting it from blank to either 3.3 or 4.2 will allow for RetroDECK to launch into the GUI where I can then use a controller to navigate, etc.

It will still throw an error about 0x56a1 PCI ID support in the terminal, but that's an upstream MESA issue that doesn't seem to impact RetroDECK (I have yet to do a comprehensive test of emulators)