Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Steam Deck] Major performance hit when using DualShock due to rumble #872

Open
ds22x opened this issue Jan 10, 2023 · 7 comments
Open

[Steam Deck] Major performance hit when using DualShock due to rumble #872

ds22x opened this issue Jan 10, 2023 · 7 comments

Comments

@ds22x
Copy link
Contributor

ds22x commented Jan 10, 2023

Description

When using the DualShock controller profile on the Steam Deck, performance takes a major hit (E.G. Crash Bandicoot Warped, using the interpreter, and OpenGL renderer at 2x, witnessing a drop from around 90fps to around 50fps when fastforwarding without the use of the Powertools plugin) due to apparently the rumble polling, as commenting out

beetle-psx-libretro/input.cpp

Lines 1044 to 1045 in ecfaf99

rumble.set_rumble_state( iplayer, RETRO_RUMBLE_WEAK, p_input->u8[9 * 4] * 0x101);
rumble.set_rumble_state( iplayer, RETRO_RUMBLE_STRONG, p_input->u8[9 * 4 + 1] * 0x101);

gives me the same fps when not using the DualShock profile.
Trying out the same situation on my Windows 11 PC, using the XInput controller driver vs the SDL2 controller driver used on the Steam Deck, shows no such performance hit.

Expected behavior

Be able to use the DualShock controller profile without having to incur a (major) performance penalty.

Actual behavior

As per the description, a major drop in fps occurs

Version/Commit

  • Beetle PSX HW: [0.9.44.1/ecfaf995]

Core options

  • CPU Dynarec - Disabled (Beetle Interpeter)
  • Renderer - Hardware (OpenGL) (same results when using Vulkan)
  • Resolution - 2x

Environment information

  • Frontend: RetroArch 1.14.0 Flatpak (same results when using the Steam and Appimage versions)
  • OS: Steam Deck OS 3.4.4
@ds22x ds22x closed this as not planned Won't fix, can't repro, duplicate, stale Jan 15, 2023
@LibretroAdmin
Copy link
Contributor

This might still be relevant to keep open. If there are severe performance issues like this associated with rumble, we definitely want to investigate it at some point.

@ds22x ds22x reopened this Jan 15, 2023
@hizzlekizzle
Copy link
Contributor

i've heard of it off and on with xinput, IIRC, unrelated to Steam.

@ds22x
Copy link
Contributor Author

ds22x commented Jan 15, 2023

@LibretroAdmin I closed the issue initially because when I tried out the same situation with Swanstation, I encountered the same drop in performance (although due to its dynarec, nothing you'd ever notice without fast-forwarding), so I assumed it was a controller driver issue and wanted to create an issue for RetroArch instead.
But when I tried other rumble capable cores like PCSX ReArmed with the DualShock, Mupen64Plus-Next with the rumble pack, and Flycast with the Jump pack, I didn't get any performance drop.
Sorry if it caused any confusion.

@hizzlekizzle
Copy link
Contributor

yeah, possibly beetle-psx-specific? I think that's the core I typically hear of it happening with.

@ds22x
Copy link
Contributor Author

ds22x commented Jan 17, 2023

Could be, although it's still weird it also affects Swanstation as well.

@ds22x
Copy link
Contributor Author

ds22x commented Jan 21, 2023

So the problem seems to be caused by specifically by Steam Input, as, when active, will allow for the Steam Deck's build-in rumble to work with the SDL2 driver, at the expense of the previously mentioned performance drop.
When in desktop mode (and on a separate Linux PC I used for testing for that matter) with Steam closed, rumble will not work with either the build-in controls or any external controllers I tried (DS4, DS5, and Xbox One), with the only way to get any rumble working being by using Udev with a DS4 controller, which didn't produce any drop in performance between a rumble and non-rumble capable controller profile.

@trotsky40
Copy link

I am seeing this issue with steam deck not using the dual shock controller profile. I get ~40fps on most games when using RetroArch in Steam Deck’s game mode. With no changes, I get 60bps when playing in desktop mode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants