unposted comment from a reddit comment thread

Submitted by twovests in just_post

  1. Not all computers have Bluetooth, and when they do, it might be an old adapter or otherwise poor. This improves that

  2. The 2.4GHz spectrum is crowded, which can make Bluetooth unreliable. (The 2.4GHz spectrum is shared it with microwave radiation, WiFi, Zigbee, and all sorts of others things. It's crowded, because it was a convenient and unregulated part of the spectrum.)

  3. As I understand, the adapters (1) use 5 GHz (less contention) and (2) a proprietary protocol.

Re: The proprietary protocol, I say this as someone who is a few years out-of-date on the Bluetooth spec. But I'd expect a proprietary protocol operating over 5GHz could easily improve over Bluetooth:

  • Time-divided polling.

    • Traditional wireless communication deals with contention the same way you might deal with it in, say, a Zoom call: If someone starts 'speaking' while you do, back off and try again later. "Time-divided polling" would be more like having a speakers baton.
  • Adaptive channel hopping within a group

    • Channel hopping is when a device scans contention over a spectrum, and then chooses the least-noisy channel. Because 5GHz has many channels and less contention, it's likely the adapter could find a "best channel", and tell all the controllers to use that channel, then manage contention within it.
  • Offloading of duties to the controller

    • The controller probably has a microcontroller which can do some "work" that might have to be done on the CPU. E.g. Smoothing over missed inputs, extrapolating from previous inputs (e.g. if you're squeezing the trigger and a frame of input drops, it might extrapolate to a further squeezing, which is preferable to defaulting to '0'.)

    • Doing work "on the adapter" might not sound like it's saving the CPU much. But if done on the CPU, it would probably require a 'context switch', where it saves the existing game process and swaps to the input duty process, before swapping back to the game process. This also (probably) empties the cache, which means when the game process returns, it has to catch up to rebuild the cache. This probably won't slow the game down too much, but might add a precious ms or two to the input delay.

This last part is all speculation and it's completely useless for you, and I don't know why I wrote it, but I want to leave this comment now

but i can't leave it here

i know where to leave it

the very best place to post...


You must log in or register to comment.