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 #55

Open
ds22x opened this issue Jan 19, 2023 · 6 comments
Open

Comments

@ds22x
Copy link
Contributor

ds22x commented Jan 19, 2023

Description

Crosspost from libretro/beetle-psx-libretro#872

When using the Analog Controller (DualShock) controller profile on the Steam Deck, performance takes a major hit (E.G. Crash Bandicoot Warped, using default settings, and Vulkan renderer at 3x, witnessing a drop from around 300fps to around 130fps when fastforwarding without the use of the Powertools plugin) due to apparently the rumble polling, as commenting out

m_rumble_interface.set_rumble_state(index, RETRO_RUMBLE_STRONG, strong);
m_rumble_interface.set_rumble_state(index, RETRO_RUMBLE_WEAK, weak);

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

  • SwanStation (1.0.0)

Environment information

  • Frontend: RetroArch 1.14.0 Flatpak (same results when using the Steam and Appimage versions)
  • OS: Steam Deck OS 3.4.4
@LibretroAdmin
Copy link
Contributor

What input / joypad driver is RetroArch using on your Steam Deck system?

@ds22x
Copy link
Contributor Author

ds22x commented Jan 19, 2023

SDL2.
Tried using the other ones, but SDL2 is the only one that actually works with the build in controls.

@LibretroAdmin
Copy link
Contributor

OK, if you change it to some other input/joypad driver combo, you don't get the same performance dropoff?

@ds22x
Copy link
Contributor Author

ds22x commented Jan 19, 2023

That's correct, yes

@ds22x
Copy link
Contributor Author

ds22x commented Jan 21, 2023

Crosspost from libretro/beetle-psx-libretro#872 (comment)

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.

@DarthMew
Copy link
Collaborator

Wouldn't be the first time Steam messes something up.
I assume you also tried disabling rumble from the Steam Deck's settings?

It does sound like more of a problem with the SDL2 driver, as SwanStation (and Beetle PSX from the looks of it) don't do anything special to achieve rumble that the other cores you mentioned do.
PCSX ReARMed especially as it has the same two rumble motor setup as SwanStation and Beetle PSX, although it does have an option to disable rumble (allowing rumble by default), which would explain it in that case if you have ever changed the option.

Regardless of that though, the only thing I could do on my end is to add the same option from ReARMed to SwanStation so people can at least use the DualShock without having to deal with an increased performance requirement.

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

3 participants