Hello,
Ive switched 2000hz to 4000hz today (also raised to 1600dpi for it) and started up cs2, I dont know if its the game or some update or just the fact that its very poorly optimized but I had ABYSMAL fps dips.
I dont play any other games to test it and/or have any installed.
from your experience how much does going from 2000hz to 4000hz hurt performance?
(my CPU is 12700kf for reference)
Also, how low do I need to go in terms of sensitivity to saturate the 4000hz? my normal sens is 800EDPI, but I can lower it to 640EDPI if needed
High polling rate CPU toll
Re: High polling rate CPU toll
Windows schedules interrupts and DPCs on CPU 0 for several modules by default.
Scheduling many tasks on a single CPU can introduce additional overhead and increased jitter due to them competing for CPU time. To alleviate this, affinities can be configured to isolate given modules from disturbances including servicing time-sensitive modules on underutilized CPUs instead of clumping everything on a single CPU.
To be able to use high polling rate, you have to select the appropriate (well performing) USB drivers with the tightest DPC & ISR ranges possible (measured with xperf), along with adjusting affinities through a tool such as GoInterruptPolicy.
Scheduling many tasks on a single CPU can introduce additional overhead and increased jitter due to them competing for CPU time. To alleviate this, affinities can be configured to isolate given modules from disturbances including servicing time-sensitive modules on underutilized CPUs instead of clumping everything on a single CPU.
To be able to use high polling rate, you have to select the appropriate (well performing) USB drivers with the tightest DPC & ISR ranges possible (measured with xperf), along with adjusting affinities through a tool such as GoInterruptPolicy.
Re: High polling rate CPU toll
can somebody guide me through or at least explain how do I properly set up my mouse ? (USB Interrupt Affinity)
and which tool should I use for that
EDIT :
i found this :
https://www.xbitlabs.com/how-to-use-int ... licy-tool/
he recommends to bind gpu + pcie to a specific core aswell, by binding PCIE slot he means PCI-to-PCI Bridge with the same physical name both in device manager and the Interrupt Affinity tool ? attached an image below
and how do I identify my mouse ? it says in the link I should bind the whole controller ? how do I do that properly
EDIT : and will it even help with the FPS getting lower when raising from 1000 to 2/4khz?? I mean in theory it should because cs2 is cpu-bound
and which tool should I use for that
EDIT :
i found this :
https://www.xbitlabs.com/how-to-use-int ... licy-tool/
he recommends to bind gpu + pcie to a specific core aswell, by binding PCIE slot he means PCI-to-PCI Bridge with the same physical name both in device manager and the Interrupt Affinity tool ? attached an image below
and how do I identify my mouse ? it says in the link I should bind the whole controller ? how do I do that properly
EDIT : and will it even help with the FPS getting lower when raising from 1000 to 2/4khz?? I mean in theory it should because cs2 is cpu-bound
Re: High polling rate CPU toll
I found something strange on my main PC
cat computer gif
Can it really be that Ive got only ONE usb controller ??? how do I assign affinity for the mouse then ?
@kyube, by the way what do u mean by getting usb drivers with tightest dpc, there are no such drivers on my asus strix z690-f page
cat computer gif
Can it really be that Ive got only ONE usb controller ??? how do I assign affinity for the mouse then ?
@kyube, by the way what do u mean by getting usb drivers with tightest dpc, there are no such drivers on my asus strix z690-f page
Re: High polling rate CPU toll
Anything past 500hz mouse polling seems a bit ridiculous to me. At 500hz you're only potentially adding a max of 2ms input delay.
But, anyways, regarding pinning stuff to cores...
The one trick to make it all kinda make sense is to use device manager set to view devices by connection. That makes it easier to see what's related. Then you right click it, go to properties, details tab, and find the physical object name. Use that object name to find the thing in GoInterruptPolicy.
So, for example, your GPU... there are 3 things there you'll want to pin to a single irq... the pcie device, the GPU, and the LCD display.
To set it to a specific core, you'll need to set the device to irqpolicyusespecifiedporocessors, and then tick off the core. And whatever you can enable MSI mode for, do that. Probably want to set your GPU to high priority.
It's basically the same procedure for everything.
You should definitely make a system restore point first, because you can make your system unbootable by making changes here. And I don't think you can simply isolate each individual USB port to a different CPU core -- it's gonna be ALL of them under a USB controller to a single core, so you'd need multiple USB controllers to isolate USB devices to uniquely different cores. Anyways... I was never able to noticeably reduce input latency by doing any of this.
But, anyways, regarding pinning stuff to cores...
The one trick to make it all kinda make sense is to use device manager set to view devices by connection. That makes it easier to see what's related. Then you right click it, go to properties, details tab, and find the physical object name. Use that object name to find the thing in GoInterruptPolicy.
So, for example, your GPU... there are 3 things there you'll want to pin to a single irq... the pcie device, the GPU, and the LCD display.
To set it to a specific core, you'll need to set the device to irqpolicyusespecifiedporocessors, and then tick off the core. And whatever you can enable MSI mode for, do that. Probably want to set your GPU to high priority.
It's basically the same procedure for everything.
You should definitely make a system restore point first, because you can make your system unbootable by making changes here. And I don't think you can simply isolate each individual USB port to a different CPU core -- it's gonna be ALL of them under a USB controller to a single core, so you'd need multiple USB controllers to isolate USB devices to uniquely different cores. Anyways... I was never able to noticeably reduce input latency by doing any of this.