libretro / libretro/RetroArch

Severe slowdown and crash with SDL2 joypad driver using GameSir T3s (Nintendo Switch Pro mode) on Linux

Open
#18,535 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Is there an existing issue for this?
  • This is a bug in RetroArch frontend
  • I have searched the existing issues
Description

This issue started a few weeks ago after several years of stable usage of this exact controller with RetroArch using SDL2 in Nintendo Switch Pro Controller mode.

Since recent updates, RetroArch shows severe slowdowns followed by a crash when the SDL2 joypad driver is used with a GameSir T3s connected over Bluetooth.

No hardware or configuration change was made on my side.

Additional information :

This configuration worked correctly for years with SDL2
The regression appeared recently, after system updates
There have been ongoing changes in SDL2’s controller handling for Nintendo Switch–compatible controllers, particularly around motion (IMU/gyro) data and HID report handling. This may be related to recent regressions in how SDL2 enumerates or opens controller devices.
Disabling IMU support (hid_nintendo disable_imu=1) does not prevent the crash
The controller behaves correctly at kernel level (evtest)
Steam Input works correctly with the same controller and mode
Using joypad_driver = "udev" avoids the crash, but causes incorrect right analog stick mapping, making it unusable

Expected behavior

no crash or slow down

Steps to reproduce the bug

1 - Pair a GameSir T3s controller over Bluetooth

2 - Set the controller to Nintendo Switch Pro mode

3 - Launch RetroArch with:

joypad_driver = "sdl2"

4 - Stay in the menu or load any core

Version/Commit

1.22.2 (Git 69a4f0ea1e)

Bisect Results

No response

Present in the nightly version

I don't know

Platform & operating system

Arch Linux Kernel 6.17.9

Affected Cores

No response

Environment information

Desktop / Session: KDE Plasma 6 (Wayland)

GPU: NVIDIA GeForce GTX 1650 Ti (proprietary driver)

Video driver: Vulkan

Controller: GameSir T3s (Bluetooth)

Controller mode: Nintendo Switch Pro Controller mode

Kernel driver: hid_nintendo

Bluetooth stack: BlueZ

Joypad driver: SDL2

Relevant log output
Repeated SDL errors in the log:

[ERROR] [SDL] Couldn't open joystick #0: Parameter 'gamepad' is invalid.
[ERROR] [SDL] Couldn't open joystick #0: There are 0 joysticks available.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce with a GameSir T3s over Bluetooth in Nintendo Switch Pro mode on Arch Linux, using joypad_driver = "sdl2", and capture the repeated SDL errors. Start by tracing RetroArch's SDL2 joypad handling and comparing it with the udev driver, while checking whether the reported SDL2 controller changes are involved. Done means the controller can remain in the menu or load a core without severe slowdown or a crash.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.