ppsspp
ppsspp copied to clipboard
linux/Qt: broken rendering on Wayland
Game or games this happens in
N/A
What area of the game / PPSSPP
Hi there, the app compiled against Qt and run on wayland looks this way:
(it is all white in fact, but screenshot system made it black. On startup, I can see the startup menu but it turns white (It seems like alpha gets from 255 to 0 instead from 0 to 255)
reffer #16163
What should happen
everything should work like on X11
Logs
generally nothing special
logs
QSocketNotifier: Can only be used with threads started with QThread
ThreadManager::Init(compute threads: 10, all: 20)
Registered VFS for prefix : /usr/local/share/ppsspp/assets
Registered VFS for prefix : /home/mszeptuch/git/ppsspp/build/assets
Registered VFS for prefix : /home/mszeptuch/git/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/mszeptuch
58:39:188 Core/Config.cpp:1441 I[LOADER]: Loading controller config: /home/mszeptuch/.config/ppsspp/PSP/SYSTEM/controls.ini
58:39:188 Core/Config.cpp:1484 I[LOADER]: Config loaded: '/home/mszeptuch/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
58:39:188 Core/Config.cpp:1721 I[SYSTEM]: CleanRecent took 0.00
58:39:194 UI/NativeApp.cpp:821 D[SYSTEM]: ScreenManager!
QObject::connect: No such slot MainWindow::frameSkippinGroup_triggered(QAction *) in /home/mszeptuch/git/ppsspp/Qt/mainwindow.cpp:620
58:39:222 Qt/QtMain.cpp:597 I[SYSTEM]: Initializing GL graphics context
58:39:222 OpenGL/GLFeatures.cpp:195 I[G3D]: GPU Vendor : Intel ; renderer: Mesa Intel(R) Graphics (ADL-S GT1) version str: 4.6 (Core Profile) Mesa 22.1.7 ; GLSL version str: 4.60
58:39:222 OpenGL/GLFeatures.cpp:108 D[G3D]: Checking for GL driver bugs... vendor=3 model='Mesa Intel(R) Graphics (ADL-S GT1)'
58:39:222 OpenGL/thin3d_gl.cpp:213 D[G3D]: Shader module created (0x3e9d510)
58:39:222 OpenGL/thin3d_gl.cpp:213 D[G3D]: Shader module created (0x3e9d5e0)
58:39:222 OpenGL/thin3d_gl.cpp:213 D[G3D]: Shader module created (0x3e9d6d0)
58:39:222 OpenGL/thin3d_gl.cpp:213 D[G3D]: Shader module created (0x3ec4a20)
58:39:222 OpenGL/thin3d_gl.cpp:213 D[G3D]: Shader module created (0x3ec4b10)
58:39:222 Qt/QtMain.cpp:599 I[SYSTEM]: Using thread, starting emu thread
58:39:222 OpenGL/GLRenderManager.cpp:130 I[G3D]: Updating inflight frames to 3
58:39:222 Core/Core.cpp:202 I[G3D]: pixel_res: 200x71. Calling NativeResized()
58:39:222 UI/NativeApp.cpp:872 I[SYSTEM]: NativeInitGraphics
58:39:222 UI/NativeApp.cpp:1449 I[G3D]: NativeResized - setting flag
58:39:223 UI/NativeApp.cpp:930 I[SYSTEM]: NativeInitGraphics completed
58:39:224 UI/DiscordIntegration.cpp:60 I[SYSTEM]: Discord connection initialized
58:39:224 Core/Core.cpp:202 I[G3D]: pixel_res: 960x544. Calling NativeResized()
58:39:224 UI/NativeApp.cpp:1449 I[G3D]: NativeResized - setting flag
58:39:224 UI/NativeApp.cpp:383 N[LOADER]: Not checking for failed graphics backends in debug mode
58:39:260 UI/NativeApp.cpp:1137 I[G3D]: Resized flag set - recalculating bounds
58:39:260 UI/Screen.cpp:144 I[SYSTEM]: ScreenManager::resized(dp: 969x549)
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
Control pad device 0 not supported by SDL game controller database, attempting to create default mapping...
Added default mapping ok
found control pad: LiteOn Lenovo Calliope USB Keyboard Consumer Control, loading mapping: SUCCESS, mapping is:
03000000ef1700008c60000011010000,LiteOn Lenovo Calliope USB Keyboard Consumer Control,x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,platform:Linux
pad 1 has been assigned to control pad: LiteOn Lenovo Calliope USB Keyboard Consumer Control
58:39:335 OpenGL/GLRenderManager.cpp:233 I[G3D]: Running first frame (0)
58:39:496 Core/Config.cpp:1721 I[SYSTEM]: CleanRecent took 0.00
58:39:502 Core/Config.cpp:1568 I[LOADER]: Config saved (clearFailedGPUBackends): '/home/mszeptuch/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
58:39:502 Core/Config.cpp:1581 I[LOADER]: Controller config saved: /home/mszeptuch/.config/ppsspp/PSP/SYSTEM/controls.ini
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
02:53:596 Qt/QtMain.cpp:393 I[SYSTEM]: MainUI::Destructor
02:53:596 Qt/QtMain.cpp:395 I[SYSTEM]: EmuThreadStop
02:53:599 UI/NativeApp.cpp:975 I[SYSTEM]: NativeShutdownGraphics
02:53:599 UI/NativeApp.cpp:1020 I[SYSTEM]: NativeShutdownGraphics done
02:53:599 OpenGL/GLRenderManager.cpp:266 I[G3D]: GL submission thread paused. Frame=2
02:53:620 Qt/QtMain.cpp:772 I[SYSTEM]: Left mainInternal here.
02:53:671 Core/Config.cpp:1721 I[SYSTEM]: CleanRecent took 0.00
02:53:682 Core/Config.cpp:1568 I[LOADER]: Config saved (NativeShutdown): '/home/mszeptuch/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
02:53:683 Core/Config.cpp:1581 I[LOADER]: Controller config saved: /home/mszeptuch/.config/ppsspp/PSP/SYSTEM/controls.ini
02:53:683 UI/NativeApp.cpp:1475 I[SYSTEM]: NativeShutdown called
02:53:683 UI/NativeApp.cpp:1479 I[SYSTEM]: Missing translation [DesktopUI]: Font
02:53:683 UI/NativeApp.cpp:1479 I[SYSTEM]: Missing translation [Graphics]: OpenGL, debug build
Platform
Linux / BSD
Mobile phone model or graphics card
Fedora Workstation 36
PPSSPP version affected
7db6467af953a92989d12194bb815ba68337b92a
Last working version
No response
Graphics backend (3D API)
OpenGL / GLES
Checklist
- [X] Test in the latest git build in case it's already fixed.
- [X] Search for other reports of the same issue.
- [X] Try resetting settings or older versions and include if the issue is related.
- [X] Try without any cheats and without loading any save states.
- [X] Include logs or screenshots of issue.
Qt version aren't being maintained for a long time i think. Also, if you're using Debug version from recent commits it have some GPU-issue, even on Windows version, like crashes (Vulkan/D3D11), and black screen or messed up textures on PPSSPP UI (OpenGL/D3D9).
Does the same issue also happened on Release version?
There are validation handlers installed in debug mode that were tripping recently related to some depth and input attachment changes. I don't think it's related. I have not seen any messed up textures in the UI.
If you call PPSSPPQt with a game as an argument, does the game run? On most platforms, we get a backbuffer where we just don't care about alpha. I'm wondering if Qt is giving us a backbuffer where alpha is used by the compositor to blend against windows beneath it. We might not be careful to produce 100% alpha because other platforms don't care.
-[Unknown]
If you call PPSSPPQt with a game as an argument, does the game run?
I haven't tried but when I run the game clicking on it, the problemm still exists
It's pretty bad. On a HiDPI screen, the PPSSPP UI occupies only a quarter of the window, and the rendering is all kinds of messed up there (screenshot doesn't show it though).
There is a temporary fix for the problem in KDE. You may right click the title bar after launching to configure settings for specific programs (here PPSSPPQt). Add a attribute "active opacity" of 99%. Then put a pure black background window behind PPSSPP.
Is PPSSPPQt not supported anymore? I'm experiencing the same issues on Wayland. If it's not supported, there should be a deprecation notice or something during the install process.
Since when is there an install process?
Qt is indeed unmaintained except for keeping it building.
I meant the build process
Right, I should update the wiki page I suppose. Or maybe someone will one day step up to maintain it..