I'm using the XInput API to support gamepads. As XInput is not event-driven, but requires polling, my question is, what is the recommended polling rate (ms) for gamepads or specific, the XBOX 360 controller?
The rule of thumb that I'm aware of is that total input-response latency should be under 150ms in order to appear 'instantaneous' to the user. If your game design is fast-paced or emphasizes timing (e.g. fighting games), you should revise that figure downward.
To obtain your minimum polling rate, subtract any other latency sources (physics updates, rendering, etc.) from your target input latency.
Example: let's say you're targeting max input latency of 100ms, and designing for a minimum framerate of 20Hz. It can take up to 50ms to display effects after detecting events, so you need to poll every 50ms to ensure that the effects of an action are displayed within 100ms.
As a mostly irrelevant side-note: USB 2.0 controllers poll devices at a maximum of 8kHz, so it is utterly pointless to have a polling period smaller than 0.125ms.