hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.36k stars 2.18k forks source link

GL Error 1280 while starting ppsspp #14576

Open MoriGM opened 3 years ago

MoriGM commented 3 years ago

What happens?

PPSSP starts with a black Screen and then crashes. Output in Console is

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: radeonsi
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: radeonsi
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
QObject::connect: No such slot MainWindow::frameSkippinGroup_triggered(QAction *)
45:02:092 OpenGL/GLFeatures.cpp:562 E[G3D]: GL error in init: 1280
45:02:094 UI/NativeApp.cpp:399 E[LOADER]: Failed graphics backends: OPENGL,ALL,ALL,ALL,ALL,ALL,ALL,ALL,ALL,ALL,ALL
45:02:094 Core/Config.cpp:624 E[LOADER]: Graphics backend failed for 0, trying another
45:02:094 Core/Config.cpp:649 E[LOADER]: All graphics backends failed
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
Speicherzugriffsfehler (Speicherabzug geschrieben)

What should happen?

The Emulator Should Start in Fullscreen.

What are you using?

What hardware / device and operating system?

Operating System : Ubuntu 20.04 PPSSPP version : 1.11. Hardware : AMD Ryzen 7 3700X, AMD RX 580

hrydgard commented 3 years ago

Do other OpenGL applications work on your machine?

MoriGM commented 3 years ago

Yep all working fine. PPSSPP run until i installed amdgpu-pro drivers to fix an graphics error in dolphin-emu. Tested: Firefox WebGL Chrome WebGL Steam Games (GMod, etc.)

I even reinstalled most of xorg, amdgpu, mesa drivers.

MoriGM commented 3 years ago

For some reason everytime i started ppsspp it adds an ALL to the graphics backend.

MoriGM commented 3 years ago

This is the DEBUG Ouput

./PPSSPPSDL 
VulkanMayBeAvailable: Device allowed ('SDL:Linux')
VulkanMayBeAvailable: Library loaded ('libvulkan.so')
VulkanMayBeAvailable: Enumerating instance extensions
VulkanMayBeAvailable: Instance extension count: 18
VulkanMaybeAvailable: Instance extension found: VK_KHR_device_group_creation (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_display (00000017)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_fence_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_memory_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_semaphore_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_display_properties2 (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_physical_device_properties2 (00000002)
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_surface_capabilities2 (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_surface (00000019)
VulkanMaybeAvailable: Instance extension found: VK_KHR_wayland_surface (00000006)
VulkanMaybeAvailable: Instance extension found: VK_KHR_xcb_surface (00000006)
VulkanMaybeAvailable: Instance extension found: VK_KHR_xlib_surface (00000006)
VulkanMaybeAvailable: Instance extension found: VK_EXT_acquire_xlib_display (00000001)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000002)
VulkanMaybeAvailable: Instance extension found: VK_EXT_direct_mode_display (00000001)
VulkanMaybeAvailable: Instance extension found: VK_EXT_display_surface_counter (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_surface_protected_capabilities (00000001)
VulkanMayBeAvailable: Calling vkCreateInstance
VulkanMayBeAvailable: Vulkan test instance created successfully.
VulkanMayBeAvailable: Found working Vulkan API!
VulkanMayBeAvailable: Destroying instance
DEBUG: Vulkan might be available.
Info: We compiled against SDL version 2.0.10 and we are linking against SDL version 2.0.10. :)
Registered VFS for prefix : /usr/local/share/ppsspp/assets
Registered VFS for prefix : /home/{UserName}/SelfCompiled/ppsspp/build/assets
Registered VFS for prefix : /home/{UserName}/SelfCompiled/ppsspp/build
Registered VFS for prefix : /usr/local/share/ppsspp/assets
Registered VFS for prefix : /usr/local/share/games/ppsspp/assets
Registered VFS for prefix : /usr/share/ppsspp/assets
Registered VFS for prefix : /usr/share/games/ppsspp/assets
Registered VFS for prefix : assets
Registered VFS for prefix : /home/{UserName}
50:27:470 Core/Config.cpp:565 I[G3D]: Longest display side: -1 pixels. Choosing scale 1
50:27:474 Core/Config.cpp:1337 I[LOADER]: Loading controller config: /home/max/.config/ppsspp/PSP/SYSTEM/controls.ini
50:27:475 Core/Config.cpp:1370 I[LOADER]: Config loaded: '/home/max/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
50:27:478 Thread/ThreadManager.cpp:109 I[SYSTEM]: ThreadManager::Init(compute threads: 16, all: 20)
50:27:478 UI/NativeApp.cpp:380 N[LOADER]: Not checking for failed graphics backends in debug mode
Pixels: 960 x 544
Virtual pixels: 960 x 544
Xlib:  extension "AMDGPU" missing on display ":0".
Xlib:  extension "GLX_ARB_context_flush_control" missing on display ":0".
Failed to initialize glew!
GL init error ''
50:27:504 SDL/SDLMain.cpp:113 W[AUDIO]: Failed to open audio device: LE_WH-XB900N (2)
50:27:504 SDL/SDLMain.cpp:117 I[AUDIO]: SDL: Trying a different audio device
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
Speicherzugriffsfehler (Speicherabzug geschrieben)

PPSSPP works when i change the ppsspp.ini to GraphicsBackend = 3 (VULKAN) instead of 0 (OPENGL) It must be a OPENGL Error.

unknownbrackets commented 3 years ago

These errors: "libGL error: failed to load driver: radeonsi", aren't coming from PPSSPP. They're coming from your system libraries.

Maybe you've compiled a 32-bit version of PPSSPP but don't have 32-bit libraries for graphics. Or maybe it's 64-bit and you don't have those.

https://askubuntu.com/questions/891434/ubuntu-16-04-and-amdgpu-pro-driver

This doesn't seem like a PPSSPP problem specifically...

-[Unknown]

unknownbrackets commented 2 years ago

It's been about a year without an update. I'm going to close this assuming that this was a driver issue.

If you have more information or can confirm it still happens in the latest git builds with good drivers, please reply to this issue and it'll be reopened. If you have a new issue with failing backends, just create a new issue instead.

-[Unknown]

FeralBytes commented 2 years ago

Still happens on Linux Mint 20.3. Able to play other Vulkan and Open GL games in fact using both Godot Game Engine version 3.5 and 4.0 Alpha builds works. Changing the ppsspp.ini file to have GraphicsBackend = 3 (VULKAN) instead of it's default of GraphicsBackend = 0 (OPENGL), fixed the issue.

unknownbrackets commented 2 years ago

Maybe it's some issue with EGL, except that Qt (first log) does that AFAIK. It seems like these sorts of errors have occurred for other people: https://askubuntu.com/questions/891434/ubuntu-16-04-and-amdgpu-pro-driver

Since this only seems to be happening to a subset of people (plenty of people are using PPSSPP on various distros without this problem), it's probably necessary to get a gdb backtrace to see where it's crashing.

Normally, I'd say that emulators tend to stress drivers (we've found plenty of driver bugs over the years) more than games, because they have to contort to how the original console operated. But in this case, it's failing so very early I don't even see how it could be that.

Currently Linux still defaults to OpenGL (and Qt can only use OpenGL.) It doesn't even try Vulkan when OpenGL fails, so I guess we can at least change that.

-[Unknown]

unknownbrackets commented 2 years ago

It should now at least go to Vulkan on the second attempt starting it, after flew fails to initialize.

Of course, our Qt port doesn't support Vulkan so I don't expect it to help there.

-[Unknown]