Muh deadzone: Windows USB3 MSI mode driver the #1 destroyer of aim ever created - Overclock.net - An Overclocking Community

Forum Jump: 

Muh deadzone: Windows USB3 MSI mode driver the #1 destroyer of aim ever created

Reply
 
Thread Tools
post #1 of 105 (permalink) Old 04-11-2020, 10:49 PM - Thread Starter
New to Overclock.net
 
r0ach's Avatar
 
Join Date: Feb 2012
Posts: 2,438
Rep: 178 (Unique: 117)
Muh deadzone: Windows USB3 MSI mode driver the #1 destroyer of aim ever created

Right when USB3 first came out I always hated it because it felt less responsive than USB2. It had a deadzone that did not exist on the previous generation. I always thought it was the fault of the change to the architecture itself - adding more latency when they increased the bandwidth - turns out that wasn't it. Windows USB2 drivers use line based interrupt mode. Windows USB3 drivers use MSI mode by default.

For some reason over the span of years I never tested this before, but after manually forcing this Haswell boxes' USB3 controller to line based interrupt mode instead of it's MSI mode default, the deadzone is gone and responsiveness seems to be comparable to USB2 again.

Mouse Input Lag BIOS & Windows Optimization Guide
too many personal messages to reply to
r0ach is offline  
Sponsored Links
Advertisement
 
post #2 of 105 (permalink) Old 04-12-2020, 07:20 AM
New to Overclock.net
 
numberfive's Avatar
 
Join Date: Aug 2016
Posts: 626
Rep: 22 (Unique: 12)
Placebo Spring 2020 European Finals submission was closed on 31/03/2020

Roach's declowning guide to the galaxy https://i.imgur.com/iz6WDUl.jpg
numberfive is offline  
post #3 of 105 (permalink) Old 04-12-2020, 07:55 AM
New to Overclock.net
 
Timecard's Avatar
 
Join Date: Dec 2015
Posts: 499
Rep: 32 (Unique: 20)
r0ach you should try comparing ISR/DPC between both using xperf, and see if you can find a major difference during use/gameplay.

See this for a simple how-to:
https://forums.guru3d.com/threads/si...d-isrs.423884/

I have a script (xperfdpcisr.ps1) to help automate part of the process as well on my github which you could customize for your tests if you know a little scripting e.g. Sleep for 5, open game, record for 30 etc.
https://github.com/djdallmann/Gaming...master/Scripts

I use usb3.0 with MSI (default) but I've adjusted the usb controller interrupt affinity to land on a less used core (not core0), and modified the MSI Msg Limit to 3 vs 8 (default?). This provides the best dpc/isr results on my pc.
Timecard is offline  
Sponsored Links
Advertisement
 
post #4 of 105 (permalink) Old 04-12-2020, 09:35 AM
New to Overclock.net
 
loopy750's Avatar
 
Join Date: Aug 2016
Posts: 40
Rep: 10 (Unique: 8)
Although the word "feels" has been carefully omitted from the first post, I dare say that's all it is. I strongly encourage someone to prove me wrong
loopy750 is offline  
post #5 of 105 (permalink) Old 04-12-2020, 10:18 AM
New to Overclock.net
 
Gonzalez07's Avatar
 
Join Date: May 2015
Posts: 329
Rep: 7 (Unique: 7)
my usb3 gets the same irq with my gpu when i do this, should i set gpu to msi mode or leave them both on it?
Gonzalez07 is offline  
post #6 of 105 (permalink) Old 04-12-2020, 10:26 AM - Thread Starter
New to Overclock.net
 
r0ach's Avatar
 
Join Date: Feb 2012
Posts: 2,438
Rep: 178 (Unique: 117)
Quote: Originally Posted by Timecard View Post
r0ach you should try comparing ISR/DPC between both using xperf
I am of the belief that performance doesn't just magically spring out of thin air all of a sudden and the fact MSI mode USB drivers have less overhead is simply due to the fact they're likely putting things in a lower/shared priority bin than how the USB2 line based interrupt drivers did. The fact the deadzone and lower responsiveness of USB3 disappears when forcing line based interrupt mode instead of MSI seems to comfirm that fact to me.

I doubt tinkering with variables like "message limit" like you suggested will have any effect. I think you would need to alter something called "delivery mode" to change priority of MSI interrupts. I'm not sure if that's an OS attribute or if you would need to haxor the Windows default USB3 driver itself to change that. As of right now, I'm pretty happy with the massive increase in responsiveness for this Haswell box by simply forcing the USB3 driver to line based interrupt mode.

For anyone that doesn't know, Haswell (Z87) has both a USB2 and USB3 controller running at the same time, but if you plug a device into the USB2 ports on Win 8.1 or Win 10, the USB2 ports act in passthrough mode and they'll be controlled by the USB3 controller instead. This phenomenon doesn't happen on Z77 or Z97 (because Z97 has no USB2 controller at all), so I'm not sure if the results will be exactly identical or not on Z97 and higher but I suspect they will. Regardless, it's a godsend for Haswell boxes and should probably be the same for later chipsets.

Mouse Input Lag BIOS & Windows Optimization Guide
too many personal messages to reply to
r0ach is offline  
post #7 of 105 (permalink) Old 04-12-2020, 10:40 AM - Thread Starter
New to Overclock.net
 
r0ach's Avatar
 
Join Date: Feb 2012
Posts: 2,438
Rep: 178 (Unique: 117)
Quote: Originally Posted by Gonzalez07 View Post
my usb3 gets the same irq with my gpu when i do this, should i set gpu to msi mode or leave them both on it?
The extent to which shared IRQs do or don't cause problems in modern OS's is something not many people have legit answers to or agree upon. I run very barebones systems and from memory, I seem to recall USUALLY having shared IRQs unless the ethernet, GPU, and USB controller were all in MSI mode. I'm guessing if you took the USB controller out of MSI mode, you would need to have the GPU and ethernet in MSI mode to not share IRQs. But does it really matter? I don't know.

All I know is the only way I could find to get rid of the deadzone from USB3 Windows drivers is to force the driver to line based interrupt mode instead, so whatever happens concerning shared IRQs is a secondary concern. The aim feels very good on this current Haswell system after forcing the USB driver to line based interrupts and it does have shared IRQs, so I'm not sure if shared IRQs are actually much of a problem or not.

*edit: Another thing is, some people don't know this but it's EXTREMELY important to make sure your mouse is plugged into USB port 0 on the motherboard (or 1 if there's no port 0 and it's labeled 1 instead). Mouse movement is a lot more different if your keyboard is plugged into the first port and mouse in the second - typically more floaty. USB port 0 is typically located closest to the motherboard itself with higher number ports being stacked on top of it but might not always be the case for some boards.

Mouse Input Lag BIOS & Windows Optimization Guide
too many personal messages to reply to

Last edited by r0ach; 04-12-2020 at 10:52 AM.
r0ach is offline  
post #8 of 105 (permalink) Old 04-12-2020, 10:52 AM
New to Overclock.net
 
Timecard's Avatar
 
Join Date: Dec 2015
Posts: 499
Rep: 32 (Unique: 20)
Quote: Originally Posted by r0ach View Post
I am of the belief that performance doesn't just magically spring out of thin air all of a sudden and the fact MSI mode USB drivers have less overhead is simply due to the fact they're likely putting things in a lower/shared priority bin than how the USB2 line based interrupt drivers did. The fact the deadzone and lower responsiveness of USB3 disappears when forcing line based interrupt mode instead of MSI seems to comfirm that fact to me.
Sure, just trying to provide opportunity to help identify the differences.

Quote: Originally Posted by r0ach View Post
For anyone that doesn't know, Haswell (Z87) has both a USB2 and USB3 controller running at the same time, but if you plug a device into the USB2 ports on Win 8.1 or Win 10, the USB2 ports act in passthrough mode and they'll be controlled by the USB3 controller instead.
Out of curiosity how do you know it's acting in pass through mode to a completely separate usb controller? thanks
Timecard is offline  
post #9 of 105 (permalink) Old 04-12-2020, 10:54 AM
New to Overclock.net
 
Timecard's Avatar
 
Join Date: Dec 2015
Posts: 499
Rep: 32 (Unique: 20)
Quote: Originally Posted by r0ach View Post
Another thing is, some people don't know this but it's EXTREMELY important to make sure your mouse is plugged into USB port 0 on the motherboard (or 1 if there's no port 0 and it's labeled 1 instead). Mouse movement is a lot more different if your keyboard is plugged into the first port and mouse in the second - typically more floaty. USB port 0 is typically located closest to the motherboard itself with higher number ports being stacked on top of it but might not always be the case for some boards.
Would be cool to quantify these, never measured it myself. interrupt and dpc latency differences between ports.
Timecard is offline  
post #10 of 105 (permalink) Old 04-12-2020, 10:55 AM - Thread Starter
New to Overclock.net
 
r0ach's Avatar
 
Join Date: Feb 2012
Posts: 2,438
Rep: 178 (Unique: 117)
Quote: Originally Posted by Timecard View Post
Out of curiosity how do you know it's acting in pass through mode to a completely separate usb controller? thanks
Open device manager, click view tab and "show hidden devices", then click view tab again and click "devices by connection". It will show you what is connected to which controller in tree hiearchy.

The two ehci USB2 controllers on Z87 have no reason to exist when used with Windows 8.1 or higher. Only in Windows 7 will it actually utilize those controllers at all. But Windows 7 is garbage with modern GPUs that use things like tile rendering (everything Maxwell and higher?) and need a fully 3d hardware accelerated desktop to not be junk. Windows 8.1 is the current master race gaming platform.

Mouse Input Lag BIOS & Windows Optimization Guide
too many personal messages to reply to

Last edited by r0ach; 04-12-2020 at 11:09 AM.
r0ach is offline  
Reply

Quick Reply
Message:
Options

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off