RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.65k stars 1.93k forks source link

Graphical "jitter" in all games on Sway with Vulkan when not in fullscreen #16078

Open BeyondThe5D opened 2 months ago

BeyondThe5D commented 2 months ago

Quick summary

Running any game on Sway will have "jittering" graphical issues with Vulkan when not in fullscreen

Details

Loading any game on RPCS3 with Vulkan when using Sway and not fullscreened seems to have graphical issues, there is a constant "jitter" where the display seemingly goes backwards and then quickly goes back to where it's meant to be, and depending on the game the effect can be minor or serve.

Attach a log file

RPCS3 v0.0.33-16919-8131f402 Alpha | HEAD
13th Gen Intel(R) Core(TM) i5-13600KF | 20 Threads | 31.17 GiB RAM | TSC: 3.494GHz | AVX+ | FMA3
Operating system: POSIX, Name: Linux, Release: 6.10.8-200.fc40.x86_64, Version: #1 SMP PREEMPT_DYNAMIC Wed Sep  4 21:41:11 UTC 2024
Qt version: Compiled against Qt 6.6.3 | Run-time uses Qt 6.6.3
Current Time: 2024-09-13T22:05:48
Initialization times before main(): 0.046454s
·! 0:00:00.000004 SYS: argc: 1, argv: '/tmp/.mount_RPCS3.oV0EAT/usr/bin/rpcs3'
·! 0:00:00.000011 SYS: Maximum open file descriptors: 4096
·! 0:00:00.041423 UUID: Installation ID: {e1685af0-37c8-4a02-bab0-240c72d0a626}
·A 0:00:00.086387 {Vulkan Device Enumeration Thread} RSX: Found Vulkan-compatible GPU: 'AMD Radeon RX 6600 XT (RADV NAVI23)' running on driver 24.1.7
·A 0:00:00.086720 {Vulkan Device Enumeration Thread} RSX: Found Vulkan-compatible GPU: 'llvmpipe (LLVM 18.1.6, 256 bits)' running on driver 0.0.1
·! 0:00:00.087419 CFG: Setting the default renderer to Vulkan. Default GPU: 'AMD Radeon RX 6600 XT (RADV NAVI23)'
·! 0:00:00.097895 SYS: Setting user ID '00000001'
·! 0:00:00.105795 VFS: VFS config missing. Using default settings. Path: /home/REDACTED/.config/rpcs3/vfs.yml
·! 0:00:00.105876 SYS: Using VFS config:
$(EmulatorDir): ""
/dev_hdd0/: $(EmulatorDir)dev_hdd0/
/dev_hdd1/: $(EmulatorDir)dev_hdd1/
/dev_flash/: $(EmulatorDir)dev_flash/
/dev_flash2/: $(EmulatorDir)dev_flash2/
/dev_flash3/: $(EmulatorDir)dev_flash3/
/dev_bdvd/: $(EmulatorDir)dev_bdvd/
/games/: $(EmulatorDir)games/
/app_home/: ""
/dev_usb***/:
  /dev_usb000:
    Path: $(EmulatorDir)dev_usb000/
    Serial: ""
    VID: ""
    PID: ""
·! 0:00:00.105886 VFS: Mounted path "/dev_hdd0" to "/home/REDACTED/.config/rpcs3/dev_hdd0/"
·! 0:00:00.105889 VFS: Mounted path "/dev_flash" to "/home/REDACTED/.config/rpcs3//dev_flash/"
·! 0:00:00.105890 VFS: Mounted path "/dev_flash2" to "/home/REDACTED/.config/rpcs3//dev_flash2/"
·! 0:00:00.105891 VFS: Mounted path "/dev_flash3" to "/home/REDACTED/.config/rpcs3//dev_flash3/"
·! 0:00:00.105892 VFS: Mounted path "/app_home" to "//"
·! 0:00:00.105898 VFS: Mounted path "/dev_usb000" to "/home/REDACTED/.config/rpcs3/dev_usb000/"
·! 0:00:00.105905 SYS: Applying global config: /home/REDACTED/.config/rpcs3//config.yml
·! 0:00:00.108904 SYS: Logged in as user '00000001' with the username 'User'
·! 0:00:00.108961 IPC: IPC config missing. Using default settings. Path: /home/REDACTED/.config/rpcs3/ipc.yml
·! 0:00:00.108969 SYS: Using IPC config:
IPC Server enabled: false
IPC Port: 28012
·A 0:00:00.108975 SYS: Firmware version: 4.91
·! 0:00:00.136522 GUI: Current language changed to English (en)
·! 0:00:00.153110 Compat: Database file not found: /home/REDACTED/.config/rpcs3/GuiConfigs/compat_database.dat
·! 0:00:00.171529 GUI: Determined 'fusion' as default style
·! 0:00:00.175318 GUI: Changing stylesheet to 'Kuroi (Dark) by Ani'
·! 0:00:00.236321 NET: Starting download from URL: https://update.rpcs3.net/?api=v2&c=8131f402
·! 0:00:01.722794 NET: Download finished
·S 0:00:01.723021 UPDATER: RPCS3 is up to date!

Attach capture files for visual issues

https://www.mediafire.com/file/nnn9yynzndzlwwi/Video.7z/file

System configuration

Linux Distro: Fedora Sway Spin CPU: 13th Gen Intel(R) Core(TM) i5-13600KF (20) @ 5.10 GHz GPU 1: AMD Radeon RX 6600 XT (The one being used for the emulation) GPU 2: NVIDIA GeForce RTX 3060 Lite Hash Rate RAM: 32 GBs

Other details

Tested games:

Minecraft: PlayStation 3 Edition (BLUS31426) | Effect is barely noticeable Driver: San Francisco (BLUS30536) | Effect happens occasionally Grand Theft Auto IV (BLUS30127) | Effect is constant and happens every 1 - 5 seconds

Attempted solutions:

kd-11 commented 2 months ago

We don't have any special wayland logic. This is most likely a sway bug. Try forcing xwayland (QT_QPA_PLATFORM=xcb ./rpcs3)

BeyondThe5D commented 2 months ago

We don't have any special wayland logic. This is most likely a sway bug. Try forcing xwayland (QT_QPA_PLATFORM=xcb ./rpcs3)

I tried this, appears to have made no difference.

I personally suspect Fedora's Sway spin just doesn't come with a dependency that there other spins that use Wayland do, I could be wrong as I haven't really developed much software but I'm just spitting out ideas.

kd-11 commented 2 months ago

Are you using the nvidia gpu for desktop acceleration? That is most likely the culprit if that is the case.

BeyondThe5D commented 2 months ago

Are you using the nvidia gpu for desktop acceleration? That is most likely the culprit if that is the case.

No, not only is my NVIDIA card disabled (I use it for VMs) I also have RPCS3's GPU setting set to my AMD card.

kd-11 commented 2 months ago

GPU selected for rpcs3 does not mean it's the one pushing pixels through to the final output, just that it's driver is loaded. I have had a similar issue before with corruption and poor performance, and I only got around it by making my AMD card the X11 host card througg xorg.conf. I don't think wayland allows this selection though so no idea if there is a workaround other than just installing Xorg and using that.

BeyondThe5D commented 2 months ago

Surely there is a proper solution though, I didn't have this issue when using GNOME with Wayland.

kd-11 commented 2 months ago

Well, yes, but not from our side. Rpcs3 doesn't have that kind of control over your display server.

BeyondThe5D commented 2 months ago

I still believe my missing dependency theory, thanks for the help, if no proper solution is found soon I'll mark your Xorg workaround as the solution.

BeyondThe5D commented 2 months ago

I was doing some deep level experimenting (Checking system journal, checking RPCS3 error logs, etc) and I accidentally figured out the best solution to the issue for a player, turns out being in fullscreen gets rid of the issue. This fix is good enough for me as I always play RPCS3 games in fullscreen (Except for when debugging, which is why I didn't notice this sooner) but I can imagine this issue being annoying for Sway users wanting to develop PS3 cheats or develop for RPCS3 in general, because of this I'll keep the issue open and I can provide more information to help developers fix the issue if requested.

kd-11 commented 2 months ago

I think that makes sense if the desktop is accelerated using the nvidia card but rpcs3 is rendering on AMD since the data has to be copied over.

BeyondThe5D commented 2 months ago

I don't think my NVIDIA card has anything to do with it, I have my Nouveau driver blacklisted on boot.