I'm not talking about graphics.Niko wrote: ↑16 Mar 2023, 11:27Although nothing new there are good suggestions in the thread but that part kinda confused me. These power-saving options in Device Manager just disable the device (NIC, USB/mouse or keyboard for ex.) only after you left the computer untouched for a certain amount of time. "Allow this Device to Wake the Computer" & "Allow the Computer to turn off this device to save power" just awake the PC if you receive a message in sleep mode or to activate it when moving the mouse or pressing a button. When playing game with 250-500fps these dont do anything. There are other power-saving features that save power while working but specifically these are wasting of time.
I'm talking about mudane things such as mouse P-states and keyboard P-states, to things like CPU thread affinity and core parking, and the other things that this guide attempts to (only partially) address. Even this guide does not fully disable your GPU power management (horrendously difficult to disable!).
You have random things like (stationary/unused keyboard/mice to suddenly active) (network idling to sudden activity) (idle cores suddenly being unparked) etc.
Nowadays, there seems to be over one hundred things that sleeps/unsleeps, and sometimes Microsoft overdoes it on our esports systems.
It's horrendously more complex now than 20 years ago, with gigantic number of power states in hundreds of chips, that sometimes have driver bugs or over-conservativeness (millisecond assumptions by non-esports developers).
Now, it's also a kinda a lag problem at low frame rates too. Even the GPU goes into a sleep mode between frames when frame rates start idling (e.g. rendertimes of 40% GPU time when your frame rate is capped). Whether it's a 60fps cap in a fighting game or emulator, forcing GPU load down to 10-20%, your GPU sleeps between frames, which can delay rendertimes to spread inputtime:photontime (aka extra lag from power management between frames). So maybe your 20ms 60Hz lag becomes 21-22ms because of those power management behaviors occuring between frames and taking time for GPU to "wake up"... I've seen weird GPU power management occasionally occur at triple digits (capped 200fps+) especially with simpler things like looking at the floor, where 200fps suddenly drops to less than 50% GPU utilization and then the GPU kind of decides to power-manage between frames, creating some minor power management effects.
<Advanced Programmer-Tech Speak>
Skip this if you're not technically literate; but it's part of the Milliseconds Matters series.
Even in my Tearline Jedi beam racing experiments, even at triple-digit frame rates, there were sometimes power management issues creating tearline jitter (wide enough amplitude to be roughly ~0.5ms worth, going by horizontal scanrate amplitude, and the number of scanlines that the tearline jittered). As not all pixels on a display refresh at the same time (high speed videos www.blurbusters.com/scanout ...) as the video output is a serialization of 2D data through a 1D medium (broadcast, wire) as we've been doing for the better part of a century displaying on a 1920s TV or a 2020s DisplayPort monitor. So tearlines are raster splices to that, and anytime tearing is delayed (moved downwards) is a latency, even if tiny. It was fun to watch raster jitter become 10x or 100x worse, depending on power management settings, and the way you could visually see sub-1/100,000sec timing errors, was quite fun to watch. If a display signal was 100 KHz scan rate (number of pixels row per second spewed out of the GPU output), a tearline moved down by 1 pixel was a 1/100,000sec lag, and a tearline moved down by 100 pixels was a 1ms lag. Power management was really wreaking havoc to raster-interrupt-style beam racing feats. Even different APIs used to measure time, timer events, QueryPerformanceCounter, RTDSC, other high precision events vs busylooping, etc, had a major impact on calming down the tearlines.
Here's me controlling VSYNC OFF tearing with a computer mouse:
At 1080p/60Hz, this requires a precision of 1/67000sec (67KHz horizontal scanrate), and even a 2-pixel raster jitter is a 2/67000sec error margin.
Now if I turned on power management, this jittered like crazy, often by a 100 pixel amplitude (100/67000sec latency jitter).
Nontheless, precision beam raced tearline-positioning engineering it opened my eyes to how 0.5ms-to-2ms league power management interferences were all over the system, even affecting mudane games.
Once people realized "VSYNC OFF tearlines are just rasters" -- some programmers took notice. An emulator, WinUAE added lagless VSYNC (sync of emuraster to real raster). And a technology, called RTSS Scanline Sync (and Special K Latent Sync) was created because they were impressed by Tearline Jedi, and is now in use by tweakers who love glassfloor frametimes being perfectly delivered to refresh cycles without the need for VRR or laggy VSYNC ON sync technologies. Though, there are compromises to using an external frame rate capper (instead of an internal one that could be less laggy) it is one of the lower-lag external custom third party sync technologies available that doesn't require game awareness to utilize (e.g. NVIDIA Reflex, custom in-game cap, etc)
This type of precision is ignored by game programmers at this time; though we may need to revisit this when we're doing the 4K 1000fps 1000Hz reprojected-UE5-raytraced future (via reprojection technology -- a frame generation technology that can reduce latency), which is now feasible on 4090-class GPUs. (LinusTechTips has a great video of VR reprojection being brought to PC)
Technologies like these will portend esports of the 2030s when we need UE5-quality at 1000fps esports-class latencies). It can even rewind frametime latencies (10ms 100fps) because the Frame Generation using reprojection instead of interpolation, reduces latency by knowing input reads (6dof translation coordinates) to modify the last UE5-raytraced-rendered frame instantly (within 1ms) to create a reprojected frame; and you can do that at 10:1 ratios. Obviously reprojection artifacts, but they mostly disappear if you reproject from a base framerate of 100fps to a higher frame rate (e.g. 360fps or 1000fps).
Some of these precisions are not yet critical today, but... there are imprecisions from power management that are going to kind of semi-bottleneck 1000fps 1000Hz raytraced UE5 future, unless they are temporarily turned off in a kind of Ultra Performance Mode.
Now that being said, not all systems create major problem from power management. I've seen many systems perform glass floor even during Balanced Power Management, and other systems just go.... fritzy. Attempting to run Tearline Jedi, my RTX3080 system has more power management latency than my old GTX 1080 Ti system, which is really a ****. Sigh.
</Advanced Programmer-Tech Speak>