- Intel iGPU drivers have been Open Source but unoptimised for TDP improvements compared to Proprietary platforms like Windows and Mac OS
- Soft-RC6 support to revolutionise the Intel iGPU power saving on Linux
A set of 19 patches for Intel GPU drivers on Linux have been released called soft-RC6 support and are dubbed as a major step up from the existing driver code for Intel integrated graphics TDP on Linux.
The developer of these patches Chris Wilson has been the most recognised name in the Intel integrated GPU driver space on Linux for decades now.
Although Chris didn’t provide any metric data on the “substantial” improvement compared to the previously implemented RC6 power-savings solution on Intel integrated drivers for Linux.
When foraging in the patches he laid out one of the problems with the existing Intel Linux driver implementations prior to this latest set of 19 patches:
The major drawback of commit 7e34f4e4aad3 (“drm/i915/gen8+: Add RC6 CTX corruption WA”) is that it disables RC6 while Skylake (and friends) is active, and we do not consider the GPU idle until all outstanding requests have been retired and the engine switched over to the kernel context. If userspace is idle, this task falls onto our background idle worker, which only runs roughly once a second, meaning that userspace has to have been idle for a couple of seconds before we enable RC6 again. Naturally, this causes us to consume considerably more energy than before as powersaving is effectively disabled while a display server (here’s looking at you Xorg) is running.
As execlists will get a completion event as the last context is completed and the GPU goes idle, we can use our submission tasklet to notice when the GPU is idle and kick the retire worker. Thus during light workloads, we will do much more work to idle the GPU faster… Hopefully with commensurate power saving!
This new set of 19 patches also enable the tracking engine round-trip times for better compatibility between sluggish systems or potentially in limbo engines among other implemented pragmatic improvements.
Although these patches are now too late to be merged in Linux Kernel 5.5 they appear to be fixing a long standing issue originating from RC6 power savings being bugged, there is a good chance that these patches will be merged in the mainline kernel as soon as the next release cycle process begins.