New generations of Intel® graphics hardware make use of firmware with power and performance benefits and functionalities like scheduling and media offloading. For more details about separate firmware functions see the section below. Firmware binaries are available on the linux-firmware repository, so it is most likely your current Linux distribution already packages them. Please check with your Linux distribution to see what is currently included.
All firmware binaries are posted on the public mailing of the linux-firmware project. This page is for descriptive purposes and a pointer to the relevant link on the git.kernel.org website. It is generally recommended that you wait for your Linux distribution to update its kernel.
GuC is designed to perform graphics workload scheduling on the various graphics parallel engines. In this scheduling model, host software submits work through one of the 256 graphics doorbells and this invokes the scheduling operation on the appropriate graphics engine. Scheduling operations include determining which workload to run next, submitting a workload to a command streamer, pre-empting existing workloads running on an engine, monitoring progress and notifying host software when work is done.
DMC provides additional graphics low-power idle states. It provides capability to save and restore display registers across these low-power states independently from the OS/Kernel.
HuC is designed to offload some of the media functions from the CPU to GPU. These include but are not limited to bitrate control, header parsing. For example in the case of bitrate control, driver invokes HuC in the beginning of each frame encoding pass, encode bitrate is adjusted by the calculation done by HuC. Both the HuC hardware and the encode hardcode reside in GPU. Using HuC will save unnecessary CPU-GPU synchronization.
Where to Download
Firmware for Intel Linux Graphics is available on the git.kernel.org website. It is sorted by the three letter product code for your processor (for example Kabylake GuC might look like this: kbl_guc_ver9_14.bin). The i915 firmware download site for Linux Graphics can be found here: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915