Jump to content

DPC Latency solution

Sett

Google search tags: DPC Latency, dxgkrnl.sys ndis.sys latencymon Your system appears to be having trouble handling real-time audio and other tasks,  nVidia GTX970
 

Hello,

I'm posting this for others to find. Please disregard, if ýour GPU is anything other than GTX970.

I've been experiencing arbitrary slowdowns/drops in responsiveness on my otherwise decent enough system. Sometimes when a browser tab with Facebook was open, often in Bluestacks, other times with no apparent link to anything. It wasn't much of a problem except audio/video desynchronisation which would be easily solved by just stopping and restarting playback. Sometimes the sound would glitch, but I usually wouldn't let it go that far and just restart. And then I hit a wall in Civilisation VI. I would easily have around 60-80FPS on one turn, then drop to 4-5 on the next. What? How?

How indeed. If you are reading this, you probably already tracked the problem somewhere down the line of DPC latency and/or the dxgkrnl.sys driver. Well I have a bad news for you. After much research, much more testing and yet more money poured in, I found the common denominator to be the GTX970. You can read HERE, and under links provided there, why this exact chip does this.

The oversimplyfied explanation is that this card has a severe bottle neck on one of it's memory chips. In an attempt to preserve in-game performance. nVidia avoids this chip in 3D and uses it to store other data. Unfortunately that means stuff like desktop composition. And it does so even when not in game. Normally this is not a problem as this data is rarely accessed  and it's not very performance-sensitive. The problem here is, that when this data IS accessed it is mostly at least sometimes done so through a Deferred Procedure Call which is (without claiming I actually know anything) basically your good old interrupt request. Meaning your $350 CPU has to drop everything and serve the request ... while waiting for GPU to do it's part of the job and obtain data from this slow chip ... and THEN it can resume whatever it was doing. This can take anywhere from about 1ms (somewhat normal DPC latency, depending on your timer configuration) up to and over 16ms. Again, this is not much of a problem if it happens once in a while, as even 16ms more or less equals a single dropped frame. But then there is the wall.
The wall happens when your GTX970 runs out of "regular" VRAM and it has to use the last chip for 3D. Then it has to access it on every single frame, back to back. And that means you're gonna have a bad time...

What can you do? The wall has simple solution - just drop your texture resolution and/or antialiasing and other frame buffer effects, basically anything to stay below 3,5GB of VRAM usage (This incidentally equals about 4GBs of uncompressed data - the number shown by e.g. MSI Afterburner). For the arbitrary DPC calls you can do very little. Various people claim various things helped them, you can try:

1) Use something like TimerResolution to reduce your minimum and average DPC latency, but probably not the spikes
2) Disable powersaving features like C-states on your CPU and setting everything to maximum performance in Power Management and nVidia Control Panel. This is pure hearsay as I refuse to run my PC at full ~500W TDP 24/7 for the sake of saving few miliseconds once in a while..

3) (untested, cumbersome, and probably above most people's computer-fu) You can also try and use intergated GPU as primary and only manually set your games (one by one) to render with the 970. No Idea IF, or HOW that would work OR if it would help OR be any better.
 

But anyway...

TL; DR: The only real solution is to get different GPU.

 

Not necessarilly faster, just different. At least for me it was.

 

Link to comment
Share on other sites

Link to post
Share on other sites

The thing with DPC latency measurements is that it makes no sense in 99% tools used to measure it because Microsoft changed a lot of stuff since the age of Windows XP.

M.S.C.E. (M.Sc. Computer Engineering), IT specialist in a hospital, 30+ years of gaming, 20+ years of computer enthusiasm, Geek, Trekkie, anime fan

  • Main PC: AMD Ryzen 7 5800X3D - EK AIO 360 D-RGB - Arctic Cooling MX-4 - Asus Prime X570-P - 4x8GB DDR4 3200 HyperX Fury CL16 - Sapphire AMD Radeon 6950XT Nitro+ - 1TB Kingston Fury Renegade - 2TB Kingston Fury Renegade - 512GB ADATA SU800 - 960GB Kingston A400 - Seasonic PX-850 850W  - custom black ATX and EPS cables - Fractal Design Define R5 Blackout - Windows 11 x64 23H2 - 3 Arctic Cooling P14 PWM PST - 5 Arctic Cooling P12 PWM PST
  • Peripherals: LG 32GK650F - Dell P2319h - Logitech G Pro X Superlight with Tiger Ice - HyperX Alloy Origins Core (TKL) - EndGame Gear MPC890 - Genius HF 1250B - Akliam PD4 - Sennheiser HD 560s - Simgot EM6L - Truthear Zero - QKZ x HBB - 7Hz Salnotes Zero - Logitech C270 - Behringer PS400 - BM700  - Colormunki Smile - Speedlink Torid - Jysk Stenderup - LG 24x External DVD writer - Konig smart card reader
  • Laptop: Acer E5–575G-386R 15.6" 1080p (i3 6100U + 12GB DDR4 (4GB+8GB) + GeForce 940MX + 256GB nVME) Win 10 Pro x64 22H2 - Logitech G305 + AAA Lithium battery
  • Networking: Asus TUF Gaming AX6000 - Arcadyan ISP router - 35/5 Mbps vDSL
  • TV and gadgets: TCL 50EP680 50" 4K LED + Sharp HT-SB100 75W RMS soundbar - Samsung Galaxy Tab A8 10.1" - OnePlus 9 256GB - Olymous Cameda C-160 - GameBoy Color 
  • Streaming/Server/Storage PC: AMD Ryzen 5 3600 - LC-Power LC-CC-120 - MSI B450 Tomahawk Max - 2x4GB ADATA 2666 DDR4 - 120GB Kingston V300 - Toshiba DT01ACA100 1TB - Toshiba DT01ACA200 2TB - 2x WD Green 2TB - Sapphire Pulse AMD Radeon R9 380X - 550W EVGA G3 SuperNova - Chieftec Giga DF-01B - White Shark Spartan X keyboard - Roccat Kone Pure Military Desert strike - Logitech S-220 - Philips 226L
  • Livingroom PC (dad uses): AMD FX 8300 - Arctic Freezer 64 - Asus M5A97 R2.0 Evo - 2x4GB DDR3 1833 Kingston - MSI Radeon HD 7770 1GB OC - 120GB Adata SSD - 500W Fractal Design Essence - DVD-RW - Samsung SM 2253BW - Logitech G710+ - wireless vertical mouse - MS 2.0 speakers
Link to comment
Share on other sites

Link to post
Share on other sites

49 minutes ago, 191x7 said:

The thing with DPC latency measurements is that it makes no sense in 99% tools used to measure it because Microsoft changed a lot of stuff since the age of Windows XP.

True, DPC latency as shown in some tools doesn't really mean anything. It's just that it's the symptome (whether causally related or not), the last step on the path to figuring out "WTF is wrong with my computer?" that some people seemed able to make, so this is my attempt to lead them the rest of the way.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×