YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
15 stars 7 forks source link

Xbox controller Bluetooth causes high IO load #5389

Open gm-bug-reporter[bot] opened 3 months ago

gm-bug-reporter[bot] commented 3 months ago

Description

An issue caused by an Xbox controller connected via Bluetooth resulting in a high IO&yoyo load.

Microsoft Xbox Wireless Controller (Model 1914). More info attached with photo

Steps To Reproduce

  1. Start the project
  2. Connect Xbox controller via Bluetooth
  3. Observe the debug overlay

Which version of GameMaker are you reporting this issue for?

IDE v2024.2.0.132 Runtime v2024.2.0.163

Which operating system(s) are you seeing the problem on?

Windows 10.0.22631.0

4b3db549-f965-43e0-bd11-b06e0935fbfc

rottingrat commented 2 months ago

I've had this issue for a while using an Xbox One controller (Model 1708) via Bluetooth. The issue seems to be having is_connected, get_description, and get_guid anywhere in the code. For example, in a create event with var _false = false; if (_false) { gamepad_get_description(0); } The performance issues still occur while the controller is connected.

This issue has been consistent and doesn't occur with other controllers such as DualShock controllers. Pressing buttons seems not to affect it. Lastly, this issue only occurs when the window has focus.

rwkay commented 2 months ago

OK after investigation this is happening because the XInput library is taking a long time to read the state.

It does not appear that we can do much until we integrate the GameInput library (which is part of the GDK) - this will not happen until GMRT.

L-Clouds commented 2 months ago

Is this the root cause/same thing as https://github.com/offalynne/Input/issues/701 ?

offalynne commented 2 months ago

@L-Clouds yes. This non-resolution is quite painful since this is the most common target platform and most common class of gamepad device. Hoping YYG will reconsider addressing this sooner than the new runtime.