Games in dolphin emulator run slow if controller is connected via bluetooth

Hi, I want to play some old games again using the Dolphin emulator. As controller I use the PS5 (Dualsense) one.
I used that exact setup already some months ago (around December last year) without any problems.

But nowadays, if I connect the controller via bluetooth, the games in Dolphin run with really bad performance, so that they even get unplayable.
However, if I disconnect the controller via bluetooth, the games run smooth again. I can even use the same controller via USB and everything is still smooth, so the problem only happens when using bluetooth.

To make sure I haven’t configured something wrong, I made a fresh install of EOS on another disk. I only installed the Nvidia driver and the dolphin emulator. Even on that fresh system, I get the same problem.
I also tried downgrading dolphin to an older version (because it worked some months ago) but it changes nothing, so it seems to be something at system level.

To confirm this I installed Fedora in dualboot. Same thing, I installed the nvidia driver and dolphin, connected the controller via bluetooth and whoa, on Fedora the games work smooth.

This is a demo of what happens as video:

And this is on fedora on otherwise the same setup:

My hardware:
Controller: PlayStation 5 DualSense
Bluetooth Adapter: Qualcomm Atheros AR3011 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-8:3
CPU: Intel Core i7-7700
GPU: Nvidia GTX 1060 (driver: v465 and newly released v470 beta, doesn’t make a difference)
RAM: 32 GB DDR4
Everything is running from an SSD

I don’t do anything bluetooth, but I’ve seen it come up a dozen times on the forum lately, mostly with headphones and such. Check those and see if those help, iirc there’s a package or two you need to downgrade, but those threads will have the info you need.

I just installed bluez-git from the AUR but it doesn’t solve the problem.
Haven’t found any other useful answers / related package in other threads yet.

It’s a long shot but you can try the LTS kernel

Already did that. Also had to install hid-playstation-dkms from the AUR because support for the controller was only added in Kernel 5.11.
Anyway, doesn’t make a difference, same lags on LTS kernel.

So I just got a Intel AX200 (new wifi and bluetooth module).
Sadly this doesn’t improve the situation, games still lag if controller is connected via bluetooth.

What I have tried so far:

  • Problem also happens on a fresh Manjaro install
  • Problem does NOT happen on Fedora (so only arch based systems?)
  • Problem does happen with multiple bluetooth modules (so nothing hardware dependent)
  • Downgrading dolphin did not help
  • Using Flatpak version of dolphin does not help
  • Downgrading bluez and bluez-libs (to 5.57-1) and upgrading them (git versions) did not help
  • Using LTS kernel does not make a difference

Well, I’m confused. Any idea what else to try?

1 Like

That one is interesting…
Not sure where to look for difference though

Just tried on my machine ( 5800X + 2070S ) with a PS5 controller connected by bluetooth and it was fine.

Found out something new by playing other games:
In Counter Strike: GO I also get worse performance if the controller is connected via bluetooth. It regularly drops from >140 FPS to 10 - 30 FPS.
In Rocket League the performance also decreases, but only from ~200 FPS to ~70 FPS, so this is still playable.

So the problem is not dolphin-emu specific, but now affects all games.
Somehow the fact that the PS5 controller is connected via bluetooth lowers my graphics performance. As soon as I disconnect it, performance instantly goes up again.
What. The. Hell.

@dodgypast maybe your 2070S is just powerful enough that even after the performance degrade when the controller is connected you haven’t noticed it. Can you test some games with uncapped FPS and see if connecting/disconnecting the controller makes a difference?

Edit: Bonus: The performance gets even worse if I use mouse and keyboard while the controller is connected. When I do this, CS:GO constantly runs at 10 - 30 FPS. If I use the controller to play the game and do not move my mouse, it sometimes has some good seconds and runs nearly smooth, but still drops frames every now and then.

Edit 2: Just installed Kubuntu 21.10 (daily build) on a second drive and gave it a try. (I also made sure to use the same graphics settings on both systems.) As on Fedora, Kubuntu does run dolphin fine, even with the controller connected via bluetooth.
So far, the problem only happens on EOS and Manjaro (arch based systems).
Don’t know about Fedora anymore, but on Kubuntu I noticed they still use the nvidia v460 driver. So this is the next thing I try on EOS: downgrade the nvidia driver to 460 series.
Don’t know what gpu driver has to do with bluetooth controllers, but I’m out of ideas otherwise :laughing:

Edit 3: Downgrading the nvidia driver also didn’t help. Also not in combination with downgrading bluez. (Btw. Kubuntu has bluez 5.60 too, which is same version as arch.)
Well, here I am, no idea what else to try again.

1 Like

Have you tried just to switch usb port of the adapter? maybe to usb2 (if your motherboard has them) or 3

He mentioned specifically bluetooth problem :wink:

Yeah, but if I’m not mistaken he has a usb bluetooth adapter, it’s possible that there is some buggy interaction

1 Like

Yes I tried different ports (usb 2 and 3). Also the ones on the front, to test if it has something to do with the distance between the adapter and controller.

You are right. When I created the initial post, I used an usb bluetooth adapter.
But since yesterday I have an Intel AX200, connected via PCI-E.

I was really hoping this would also solve this problem. But no, it doesn’t.
At least I know now that this is not a hardware defect of the bluetooth adapter.

1 Like

Can you post the logs?
systemctl stop bluetooth.service

then start it with

/usr/lib/bluetooth/bluetoothd -n -d

and also

journalctl --unit=bluetooth

Sure :wink:

This didn’t work, bluetooth always auto restarted, so I had to disable that service first (thats why there are multiple started/stopping bluetooth messages in the logs).

Output:
https://pastebin.com/raw/66trzc7f

Output (since last boot):
https://pastebin.com/raw/EFXEkLDZ

While the logs were taken I connected the controller and started the dolphin emu. No new messages were logged while in game.

Try to install bluez-hid2hci and add to GRUB_CMDLINE_LINUX_DEFAULT the parameter btusb.enable_autosuspend=n then regenerate the config file of grub and reboot

Did this, but does not make a difference.

I’m out of ideas, last thing that you can try is this https://wiki.archlinux.org/title/Gamepad#xboxdrv

I made a video comparing Arch based systems to Fedora on the exact same hardware in Rocket League. On Arch there are also freezes when using the mouse while the controller is connected via bluetooth. This doesn’t happen on Fedora, as you can see in the video:

I saw that both systems where it works (Fedora, Kubuntu) apply some patches to bluez, for example fedora:
https://src.fedoraproject.org/rpms/bluez/tree/f34
While arch does not apply any patch to bluez currently:

So I’m experimenting with bluez patches and build options now. Nothing works so far.

It’s just frustrating. I was really happy I don’t have to dual boot for gaming anymore. Did this some years ago with Windows, now I have to dual boot multiple Linux distros because one doesn’t like my hardware xD
I really try to solve this, so anyone can keep posting ideas what to try next.
Everything seems the same. Same kernel version, same bluez version, same video driver version, …
but still problem is only on arch based systems, so hardware is fine.
Also I didn’t have this problem some months ago (at least in dolphin, haven’t played other games in that time) on my eos install, so it came with an update since december last year but idk. which package to downgrade.

Edit: Noticed now that Fedora uses a slightly older version of xorg (1.20.11) vs arch (1.20.12). Next thing to try :slight_smile:
Edit 2: No need to try, xorg was just updated to 1.20.12 on arch 9 days ago, but I have this problem since more than 9 days, so the xorg update can’t be the cause.

Edit 3:

on the project page it says it is an xbox gamepad driver, but I’m using a playstation controller. Don’t think this would make much sense to install.

1 Like

Maybe he meant like emulate xbox controller.

Although it still doesn’t make any sense, to me that looks like some bug which needs to be determined and fixed…

2 Likes