TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Chief Blur Buster » 25 Mar 2021, 14:34

In a duress of being stuck with one USB controller (or getting better performance with USB hubs than bypassing USB hubs -- it happens sometimes)... It is possible to use an external high-performance USB3/Thunderbolt hub to multiplex the high-Hz keyboard and high-hz mouse together, to one single upgraded-to-USB3/USB4/Thunderbolt connection to the PC, so that the motherboard chipset isn't spread too thin trying to process the soup of ports (bus sharing, interrupt sharing, port processing sharing, driver inefficiencies, legacy protocols including USB1, and all kinds of contention issues that can unexpectedly pop up, etc).

The chips in some of the best USB hubs probably outperform the USB in a low end ITX chipset's USB feature. So as long as the motherboard just sees one USB port, it's more manageable to it. The high-performance hub becomes your USB coprocessor.

That said, downclocking the pollrate a bit (2KHz and 4KHz) does a big lift on an overloaded USB chipset -- and you only need approximately sufficient oversampling of mouse-Hz-over-display-Hz. The jump 1000Hz to 2000Hz is hugely noticeable for 360Hz gaming monitors, but 2000Hz to 8000Hz is extremely marginal (until we get higher Hz gaming monitors).

There are some tricky decision-making involved, where there's lots of weak links involved. Like Google Maps sometimes gives you great routes, sometimes you just have to be creative with your USB routing to avoid weak links (timing, interrupts, resource-sharing, processing-sharing, etc)...

Nontheless, it is sometimes a USB lottery when it comes to trying to make a 4KHz keyboard + 8KHz mouse happy on the same constrained system...
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
Kamen Rider Blade
Posts: 61
Joined: 19 Feb 2021, 22:56

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Kamen Rider Blade » 25 Mar 2021, 14:53

Any clue as to what the BoM (Bill of Materials) cost for a single USB Controller is?

If they made a Multi-Core USB Controller where each port on the Rear I/O panel is it's own individual root hub connected to a single Core USB Controller that can be clocked at whatever arbitrary polling rate (125 Hz -> 8 kHz) and function independently, how much would that cost?

Stitch7
Posts: 86
Joined: 27 Mar 2019, 08:26

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Stitch7 » 25 Mar 2021, 14:57

It probably would require better signal integrity and more pcb layers. Not an issue on 150€ plus gigabyte boards though. Their memory topology is pretty good and 6 layers should be more than enough for the audio pwm etc interference. I dont think it is a money issue, it just was never a huge problem until now. They will surely adapt somewhat...

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Chief Blur Buster » 25 Mar 2021, 15:13

Kamen Rider Blade wrote:
25 Mar 2021, 14:53
Any clue as to what the BoM (Bill of Materials) cost for a single USB Controller is?
Pennies for the cheapest bottom-of-barrel ones.

You can buy your own generic Arduino clone for under $10 -- a complete microcontroller computer with a CPU and a USB port and a bunch of other I/O features. Some of them even include WiFi for a few dollars more. You can write tiny pieces of computer software for it (via Arduino IDE or via gcc) to do various things like monitor temperature or measure input lag (photodiode) or simulate a USB computer mouse or control a water pump or whatever.

USB is typically pennies-per-component and often skimped on, sometimes affecting reliability of high-Hz gaming devices. It's easy to overlook USB subsystem performance since manufacturers don't test multiple simultaneous high-Hz devices on the same system, especially for budget boards.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Stitch7
Posts: 86
Joined: 27 Mar 2019, 08:26

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Stitch7 » 25 Mar 2021, 15:21

I'd assume the only issue on a motherboard would be space and signal integrity when using mutliple controllers. As for 1 high quality controller that would be a much easier task. Maybe we'll see motherboard manufacturers advertise their boards with "Super duper Memory controller, 8KHz conpatible" or something of that nature.
Ty for bringing this to our attention chief, we appreciate you!

empleat
Posts: 149
Joined: 28 Feb 2020, 21:06

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by empleat » 25 Mar 2021, 16:22

Chief Blur Buster wrote:
24 Mar 2021, 18:15
empleat wrote:
20 Mar 2021, 18:39
Could you please help me with this? I have one USB Root HUB device in Device Manager when all (USB 3.1) ports are disabled in BIOS, I have only USB 3.1 ports!!! But if I enable even 1 (USB 3.1) port in BIOS. This device name changes to USB Root HUB (USB 3.0) and I start to have significant input lag! I tried to click on update driver, let me pick to force USB Root Hub drivers, but it didn't find anything! Why is USB Root HUB (USB 3.0) installed, even if I don't plug anything into any (USB 3.1) port? BTW don't know why it has in name (USB 3.0) since I have only USB 3.1 ports! Could I force somehow USB Root Hub driver, when I don't use USB 3.1 ports? Since I need USB 3 for VR from time to time...
PCIe USB card is usually the easiest way to bypass the motherboard USB mess.

I've had to switch motherboards just to solve this kind of stuff before... a $25 PCIe card is easier.
I have no additional PCI-E, since I have mini ITX (ASUS z390-i gaming), these seem to have low DPC latency. Was tested on ananadtech average 100 us and I got same results. Besides PCI-E cards are known to generate tremendous amount of DPC latency, don't know if PCI-E USB cards are exception. I don't have thunderbolt as well :D Oh you meant like hub to connect both mice and keyboard to one port. I don't think I have any of these issues with USB chipset tho. Dunno what is: "port processing sharing" and USB3/Xhci drivers suck in terms of latency! No idea if this would have any benefits in my case.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by Chief Blur Buster » 25 Mar 2021, 19:59

empleat wrote:
25 Mar 2021, 16:22
I have no additional PCI-E, since I have mini ITX (ASUS z390-i gaming), these seem to have low DPC latency. Was tested on ananadtech average 100 us and I got same results. Besides PCI-E cards are known to generate tremendous amount of DPC latency, don't know if PCI-E USB cards are exception. I don't have thunderbolt as well :D Oh you meant like hub to connect both mice and keyboard to one port. I don't think I have any of these issues with USB chipset tho. Dunno what is: "port processing sharing" and USB3/Xhci drivers suck in terms of latency! No idea if this would have any benefits in my case.
That may be a good ITX. If your USB chipset is successfully managing 1 KHz+ keyboard and 8 KHz mouse on the same system, then stick to that. There are many ways that USB processing can break or become low-performance. Just try not to overload the same hub further (with say, an external USB disk).

A good workaround is lowering the 8KHz mouse to 2Khz or 4KHz, if it _has_ to share. The 2KHz gives you most of the benefits of 8KHz mouse (for now, at current contemporary 240Hz-360Hz gaming refresh rates).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

empleat
Posts: 149
Joined: 28 Feb 2020, 21:06

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by empleat » 26 Mar 2021, 13:11

I use 500hz mouse/1000hz keyboard. I don't know if there would be some benefit to connect them via hub to 1 USB port. I heard hubs can cause lag, rather than help with it. I don't think I have most of these issues, you were describing like: IRQ conflicts. And I can't avoid Xhci unfortunately since no firewire port and new mobos have only Xhci drivers :( Probably pointless to do this for me...

To recap: I have these spikes 15-25hz tho, but that doesn't seem that much. Even on different USB chipset, I tried connecting keyboard into USB 3.1 port - lower on my motherboard, didn't help at all - same results! This doesn't change if I use for USB 2 for both keyboard and mouse!

User avatar
BTRY B 529th FA BN
Posts: 523
Joined: 18 Dec 2013, 13:28

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by BTRY B 529th FA BN » 26 Mar 2021, 16:17

empleat wrote:
26 Mar 2021, 13:11
I use 500hz mouse/1000hz keyboard. I don't know if there would be some benefit to connect them via hub to 1 USB port. I heard hubs can cause lag, rather than help with it. I don't think I have most of these issues, you were describing like: IRQ conflicts. And I can't avoid Xhci unfortunately since no firewire port and new mobos have only Xhci drivers :( Probably pointless to do this for me...

To recap: I have these spikes 15-25hz tho, but that doesn't seem that much. Even on different USB chipset, I tried connecting keyboard into USB 3.1 port - lower on my motherboard, didn't help at all - same results! This doesn't change if I use for USB 2 for both keyboard and mouse!
What are your MSI interrupt priorities for all your devices?

empleat
Posts: 149
Joined: 28 Feb 2020, 21:06

Re: TIP: Always put high-Hz keyboard and high-Hz mouse on SEPARATE DEDICATED USB CHIPS.

Post by empleat » 26 Mar 2021, 20:53

BTRY B 529th FA BN wrote:
26 Mar 2021, 16:17
empleat wrote:
26 Mar 2021, 13:11
I use 500hz mouse/1000hz keyboard. I don't know if there would be some benefit to connect them via hub to 1 USB port. I heard hubs can cause lag, rather than help with it. I don't think I have most of these issues, you were describing like: IRQ conflicts. And I can't avoid Xhci unfortunately since no firewire port and new mobos have only Xhci drivers :( Probably pointless to do this for me...

To recap: I have these spikes 15-25hz tho, but that doesn't seem that much. Even on different USB chipset, I tried connecting keyboard into USB 3.1 port - lower on my motherboard, didn't help at all - same results! This doesn't change if I use for USB 2 for both keyboard and mouse!
What are your MSI interrupt priorities for all your devices?
Why how would MSI affect internal polling rate of mouse? I use default, SATA+NVME are on high by default. Works best for me. I have highest user to process latency 100us in latmon!

At least that's I assume what MouseTester measures under "Frequency vs Time" and not final. You have other category, which also shows polling rate: "Interval vs Time". It is confusing that the same thing is in 2 categories. And by final: I mean after it is handled by system (DPC latency) and timer resolution. Not sure, if this program has to wait on timer window, or can read data directly from a mouse driver. Because these things affect polling stability, if you miss timer resolution you will have to wait another e.g. 0.5-1ms, before game can use that! And DPC latency, before CPU handles DPC.

Hmm I did another test and now line is smooth except 1 place. Maybe I wasn't doing circles continuously fast enough, because my mousepad is worn out. I still don't understand all graphs in this program. In original thread is: that for polling rate stability you should take into account line and that's it. It is not explained there what exactly are line or dots in this case! I also don't know why dots are reaching 600hz. On Zowie test, I have only 506hz max. On mousetester thread for other type of measurement there was written: line is average, but it doesn't make sense - if I look on 3rd picture, as line is straight even if there is not equal amount of dots vertically at some place on both sides!

I was changing MouseDataQueueSize, it could be that! Third picture is when I put queue to 50, which should be default value. But picture from my previous post was with value 20. So it seems mousetester hz spikes were caused by this setting. What is strange, on Zowie tester: it is constantly 500hz in both tests. It never goes above 500hz and stays there during rapid movement. I Am starting to think MouseTester doesn't work!

Although look at this crap, on the first picture: it looks like mouse is overclocked at 560 and than downclocked to 440. Strange as hell. It is more consistent on 50 value for sure. If you lower value, it queue less data in buffer. But I still don't understand how this could affect polling rate... https://docs.microsoft.com/en-us/window ... ss-drivers

Logically, if it is gonna wait, there is gonna be more delay. So yes lowering Mouse driver buffer helps a lot with input lag, but it makes mouse less consistent. Maybe because you gonna notice more difference in polling rate. There is variation 2-4ms of delay at 500hz, depends how you hit timer resolution and timing before next fps starts to render. But I don't think this could affect mouse internal polling rate, doesn't make much sense. So it looks like MouseTester reports wrong, I don't know how it calculates polling rate...

Not to say you should rely on a single program. But I don't know anything else for testing polling rate stability, except that zowie tester! Maybe ADK? Not sure.

Image
Attachments
mousetester value 25.png
mousetester value 25.png (57.05 KiB) Viewed 13482 times
Polling rate stability zowier.png
Polling rate stability zowier.png (21.15 KiB) Viewed 13487 times
Frequency vs Time mousetester.png
Frequency vs Time mousetester.png (32.67 KiB) Viewed 13494 times

Post Reply