7. For controller users, disable Steam controller options and Windows power saving.

- controller3.png (638.17 KiB) Viewed 37379 times
I found this useful website for checking to see if the controller is behaving correctly:
https://gamepad-tester.com/
Network buffering: I've noticed less out-of-order actions when setting these to 128 each. This limits the buffer size, which in theory should limit spikes in responsiveness. Lowering it too much can increase the processing demand on the computer and networking equipment.

- network buffers.png (18.83 KiB) Viewed 39170 times
Advanced Power Options. Above we turned on High Performance, but it appears some settings need to be manually adjusted within the profile. Turn off any RGB settings, and see the highlighted options below.

- advanced power.png (96.08 KiB) Viewed 39170 times
The testing process:
Like many people on the internet, I had a lot of input delay problems across multiple computers off and on for years. AMD/Intel, top of the line, medium tier all had the problems. It even became exceptionally bad to the point where every game was lag-induced torture. Example: CSGO, join official server for DM easily get top score, join a MM, top score in warmup, can tell other players aren't as good, then the game goes live and suddenly holding m1 in a duel feels like a slideshow, there's a random amount of delay on every input which is especially noticeable and problematic when switching weapons, and strafe jumping becomes really difficult to land more than 2-3 in a row.
I stopped using Discord because I could tell it was adding to the problem and went through massive amounts of audio troubleshooting testing nvidia/realtek/disabling sound completely. Over the past few years, I tried buying new peripherals, different network adapters, different ISPs, different power setups, bought a UPS, new network equipment, monitors, display cables, network cables, and even moved a few times. Buying this stuff helped a bit, but nothing was a fix and the major lag was still there.
Knowing the problem wasn't computer-specific, ISP-specific, location-specific, hardware-related, or power-related, I decided I would change 1 variable at a time until I found the problem, knowing this would take at least a few weeks to accomplish. I was also reading lots of posts across different websites by people experiencing similar issues, so I kind of had this guide in mind and stuck to the plan so I could document it and help others.
I guessed it could be account-related after eliminating all those variables. I did the Steam troubleshooting steps, like taking out all the workshop maps, completely dumping Steam and CSGO cache, making my account private in case those online stat keepers are somehow attached to it. This stuff did seem to help, but the issue seemed to quickly return and I know not many people are thoroughly keeping their cache clean in order to not lag, so it wasn't a fix. Plus when the game ran smooth years ago, I never had to do any maintenance on Steam other than an occasional cache verify.
The first thing I fixed was probably the controller (steps 5&7), or at least partially. In Assetto Corsa it felt like the car would be very heavy to turn and then completely lose grip unexpectedly, and recovering from the slide would be impossible if any other online players were nearby within like 100 meters. Windows was interfering with inputs through power-saving, Steam was interfering with "Steam Input", and I had to find multiple locations for both of these to be turned off. The difference here was extreme... The cars actually started feeling like cars when driving and I started noticing things like torque steer, where the wheels pull to one side under heavy acceleration. That wasn't happening when the controller wasn't working correctly.
I capped FPS in-game to 120 for consistency, and noise/heat is much better at lower FPS. This gives a pretty consistent 8.3ms screen delay, and eliminates large framerate variance, heat, and power draw as variables. I tested in-game across several competitive games: CSGO, PUBG, Assetto Corsa, Rocket League, etc. When testing different settings, I spent a lot of time watching net_graph to see when/where the spikes are happening. Most testing I do online in official servers, because that's where I experience the most problems. Since I was changing one thing at a time and doing a before/after comparison, I found a lot of stuff that helped a bit, but nothing that would fix the problem.
I found power saving kept coming back on (step 2), so I installed process lasso and set to max performance mode, while dividing up the cores to different processes. This turned out to be a waste of time and I eventually uninstalled it. I was able to get it to stay on high performance, but later had to go back through the advanced settings to make sure each power-saving option was off. I found more power-saving in Device Manager (step 5), and turned most of it off but later found the devices are duplicated and show up under multiple categories. Each time I changed these power settings I noticed an improvement.
After verifying the controller worked well offline in Assetto, I was still having trouble whenever other players were nearby, which indicated a network issue. I tried a lot of different things in networking (step 6), like different drivers made by intel and killer, along with their software. I found improvement by completely disabling the software services for these and running the driver only, and then found a bunch of power-saving settings and additional settings that aren't on the default NIC drivers. After adjusting these in Device Manager I noticed huge improvements, and later tweaked the transmit/receive buffers for even better consistency.
Stuff that's not in this guide:
I went through services.msc and disabled as much as I could. This helped a lot, but probably isn't for everyone to try. Game Mode ON is supposed to help with background services, and I have been testing it and it does seem to help.
I updated BIOS and chipset drivers. This is highly recommended especially on AMD.
In BIOS, I turned off all power-saving features and overclocking features. I read that AMD works best with a variable voltage, so I just left it to the motherboard. It runs at over 4ghz but the frequency constantly changes. Overclocking should not be on at all during troubleshooting. I
turned
off XMP and found it helped with periodic lag spikes... net_graph VAR would spike from 0.4ms to 20ms and then drop back to 0.4, causing a huge stutter/desync every 5-10 seconds. I wanted to use XMP because it's supposed to help memory timings, but it was causing problems. I remember seeing some discussion about XMP on a LTT video, where they said it almost never worked, and they test a lot of gaming systems.
I tried a few registry tweaks specific to AMD mouse input lag and networking priority, but not sure if those helped.
I changed one of the rails feeding the GPU, not sure if it helped. On GPUs it's recommended to feed each port from a different rail.
I disconnected any secondary monitors when gaming in Display Settings.
I started with a computer that felt like a very expensive brick that wasn't capable of gaming even when playing CSGO at 400+fps, to not even caring to play above 120fps. That's right, I'm still running a 120fps limit on most games on a 240hz monitor. I tested most of the settings across a few completely different computers and noticed big improvements on all the computers.
An expanded overview (beyond the 10 minute setup):
1. Enhance pointer precision causes the mouse to amplify the cursor movement speed depending on how fast the mouse is moving. This leads to extremely low sensitivity when moving the mouse 1-2 pixels in distance and extremely high sensitivity when reacting quickly to something. 99% of CSGO pros have this off, but it is a preference. Using the sensitivity slider will change the algorithm the mouse uses, and will feel different. Most leave the slider at default and adjust sensitivity on the mouse or in the drivers.
2. Power settings. By default, Windows has power saving on. The majority of this guide is locating those settings and turning them off.
3. Graphics settings. High performance power setting, low input delay settings enabled. G-Sync off to minimize stuttering and delayed input.
4. Xbox settings. GPU Scheduling allows GPUs to take over scheduling using dedicated hardware.
I'm considering removing Game Mode from the guide, as I have switched to ON (which is default).
*UPDATE* I've been reading about MPO, DWM, and Game Mode. In the past, Game Mode decreased performance except in rare situations. I think a year or 2 ago, Microsoft improved Game Mode input latency AND made DWM really hard to disable. I've been testing with Game Mode ON and it does appear to be doing its job of maintaining responsiveness. Going off test videos, the two settings provide almost the same frametimes. Going off feel, I'd say it's preventing some some occasional spikes in input delay (maybe ~20ms spikes). It's probably best to have it ON once you have determined it doesn't cause performance problems on your PC. It turns off some background Windows processes when it detects a game is running, and will affect games whenever DWM/MPO comes into play (pretty much always.
https://devblogs.microsoft.com/directx/ ... cheduling/
https://nvidia.custhelp.com/app/answers ... er-version
https://learn.microsoft.com/en-us/windo ... quirements
5. Windows power-saving in Device Manager. I went through and double-checked every device and found 29 devices with power-saving enabled. I have noticed immediate and large differences in input smoothness after disabling power saving on devices. I found Windows was even power-saving on a hardware security feature within the AMD cpu.
6. Network configuration. Several power saving options are on by default. There are additional settings I recommend disabling, allowing the network card to be unburdened by these additional tasks (e.g. offloading and priority). The transmit buffers are usually 512/128 or 256/128 by default, meaning your computer could receive a packet the size of 512 while only sending out 128. This ends up causing out-of-order actions and netcode issues like desyncing and bursting. I found 128/128 works well for a more consistent input/output feeling.
7. Controller: I've found Steam and Windows default to settings that interfere with the operation of the controller, and recommend disabling these "features".