4 ms·
Honest question: is there any need to poll the touchpad more often than the screen's refresh rate (usually 144Hz or below as of this post)?
by verandaguys_alt 9y ago
Honest question: is there any need to poll the touchpad more often than the screen's refresh rate (usually 144Hz or below as of this post)?
- dyladan 9y agoYes there is. Humans are normally not very responsive to the time between when an action is started and when it is carried out on the screen, but this changes for actions like drawing and dragging. This is the reason for the new Pro Motion behavior on the recently released iPad Pro models. For more information, this video [1] is a good place to start. [1] https://www.youtube.com/watch?v=vOvQCPLkPt4 https://www.youtube.com/watch?v=vOvQCPLkPt4
- njarboe 9y ago"not very responsive"? I'm responsive. I mutter things like, "Shit, why does it seem that the amount of lag in my computer's response to my inputs get worse and worse as its physical components get faster and faster."
- dyladan 9y agoI think you misunderstood what I meant by non-responsive. 10ms latency from click to action is nowhere near as noticeable as 10ms latency when dragging, because the mouse visibly lags behind.
- rcthompson 9y agoI think there might be. If your polling is not frequent enough, then if you observed a finger touch disappear from one spot and appear at another spot, you have no way to know whether the finger moved there in the span of one polling period or if the finger was lifted and a second finger placed at the new location during that polling period. So a high polling rate might be essential to disambiguate cases like this, especially for many-finger multi-touch situations.
- legulere 9y agoCouldn't this be processed directly in the touchpad controller, which probably contains a microcontroller nowadays anyway?
- derefr 9y agoIndeed; in fact, that microcontroller could conceivably do the same thing programs like Synergy do with the input events: namely, converting them into a stream of bezier-curve-based gesture-motion events and reporting those to the OS. I can't imagine you'd need to report those at more than 5Hz or so (Synergy manages to have smooth multitouch movement across a LAN just fine with an even-lower update rate.)
- brians 9y agoTry using a tablet, or even Photoshop, through a 5 Hz synergy connection
- TheAceOfHearts 9y agoCan you clarify which part you think could be handled by the touchpad's microcontroller? In order to implement modern gestures and interactions you need full access to all input events, otherwise you'd lose the ability to customize or adequately handle changes to context.
- khedoros1 9y agoA finger touching and leaving would be a high-priority event for the controller to output, and it should probably internally monitor events at a high resolution. For position, as reported to the OS: what use would actually need a report every 2 milliseconds? Intuitively, I'd think that motions that matter wouldn't need that many datapoints to reliably differentiate.
- mjg59 9y agoRemember that 500 interrupts per second isn't the same as a report every 2 milliseconds - reading status from a device may involve more than one interrupt.
- nodja 9y agoYes. On windows, if you have a logitech gaming mouse, you can set the polling rate. The default USB is 125Hz IIRC, on my mouse you can up it up to 1000Hz. For gaming it helps reduce input lag as much as possible since 125Hz is 8ms of input lag. For desktop usage, about 125Hz works fine. For what it's worth, on my 120Hz screen, I can tell a difference between 125Hz and 250Hz polling rates, from 500Hz upwards I think I can tell but it might be placebo.
- ghusbands 9y agoIt's a cheap/easy way to minimise the input lag. It's otherwise complicated to know exactly when updates should arrive, as different programs might fetch it at different times in each frame, giving you up to a full frame of extra lag if you're only doing it once per frame.
- andrepd 9y agoYes. Suppose you poll at 120Hz. That is a maximum of 8ms between you moving your mouse and the input being registered. Suppose now you poll at 1000Hz. Input lag is now 1ms.
- tinus_hn 9y agoIt's not polling, the device is sending interrupts.