The Intel graphics chips that are part of many Intel processors are fairly well supported on GNU/Linux. Some chips on some combinations of the kernel and user-space tools will have random hangs and other issues. The kernel side is handled by a driver called
i915 which, unlike what the name implies, handles all modern Intel graphics chips. The user-space side is handled by either the Mesa. Mesa has two drivers for OpenGL. The older and very mature
i965 driver is the default. There is also a newer, for now optional, OpenGL driver called Iris. Vulkan support is provided by the Mesas ANV back-end.
architecture / Socket
|Graphics Gen / Brand||Vulkan||OpenGL||HLSL shader model||OpenCL|
|Sandy Bridge||1155||6th||HD 2000, HD 3000||N/A||3.3||4.1||N/A|
|Ivy Bridge||1155||7th||HD 2500, HD4000||1.0||4.2||5.0||1.2 (Beignet)|
|Bay Trail||SoCs||"HD Graphics"|
|Haswell||1150||7.5th||HD 5000, 4600, 4400 and 4200
Iris Pro 5200, Iris 5000 and 5100
|Broadwell||1150||8th||HD 6000, P5700, 5600, 5500, 5300|
Iris Pro 6200, P6300, Iris 6100
|Braswell||SoCs||HD Graphics 400, 405|
|Skylake||1151||9th||HD 510, 515, 520, 530 and 535; Iris 540 and 550
Iris Pro 580
1.2 (Mesa Clover)
|Apollo Lake||SoCs||HD Graphics 500, 505||1.2 (Neo)|
1.2 (Mesa Clover)
|Gemini Lake||SoCs||UHD 600, 605|
|Kaby Lake||1151||9.5th||HD 610, 615, 620, 630, Iris Plus 640, Iris Plus 650||2.1 (Neo)|
1.2 (Mesa Clover)
|Kaby Lake recycled||UHD 620|
|Coffee Lake||UHD 630, Iris Plus 655|
|Ice Lake||SoCs||11th||Intel® Iris® Plus Graphics|
All Intel iGPUs are supported by a kernel module called
i915. It is found under
Device Drivers ->
Graphics support ->
Intel 8xx/9xx/G3x/G4x/HD Graphics in the kernel's
make menuconfig. While the module is called i915 it's actually a general driver for all Intel iGPUs. The help text as of 5.2.20 states "(..) including 830M, 845G, 852GM, 855GM, 865G, 915G, 945G, 965G, G35, G41, G43, G45 chipsets and Celeron, Pentium, Core i3, Core i5, Core i7 as well as Atom CPUs with integrated graphics.". It does not matter if a specific Intel iGPU is or is not listed, all of them are supported by this kernel module.
There are issues with using the i915 kernel module in 5.3.x and 5.4.x kernels. Avoid using those.
You may need kernel parameters like
i915.enable_dc=0 to have a problem-free experience with Intel graphics. See the Troubleshooting section below for details.
OpenGL on the user-space side is supported either the Mesa i915 driver or the i965, one of those will be used automatically depending on the GPU. Future Intel GPUs will supported by a new driver called Intel Iris. It works on older chips too; Broadwell (Gen (8) and newer is supported by the Intel Iris driver.
The i965 source is hosted at freedesktop.org/(..)/drivers/dri/i965.
Vulkan is supported by a graphics driver called
Hardware Defects To Be Aware Of
Intel integrated graphics chips have a hardware flaw which allows one process to get data from another process. A workaround for this flaw has been in place for gen8 graphics chips since 2017. The kernel got a patch which implemented that same workaround for gen9 graphics chips in January 2020. gen7 and gen7.5 chips are still vulnerable to that hardware flaw. Red Hat recommend disabling hardware acceleration on all processors with Intel integrated graphcis due to this flaw. We do not share that recommendation, it makes sense to disable hardware acceleration on servers with integratged gen7/7.5 graphics. It makes no sense on desktops, laptops and notebooks.
Intel "Baytrail" chips and some other low-powered chips have a hardware flaw which makes them randomly hang when deeper CPU sleep states are enabled. Using the
intel_idle.max_cstate=1 kernel parameter is a known workaround. Some Kaby Lake Refresh chips are also affected.
The kernel driver for Intel integrated graphics has been a complete and utter mess since kernel 5.1. Avoid using 5.3.x and 5.4.x kernels if you are using Intel integrated graphics.
Some Intel-powered machines, specially those running low-powered chips (Atom, Pentium), have a tendency to randomly hang due to the problems with the power management features found in low-power Intel chips. A absolutely not ideal workaround is to add the following kernel parameters (add them to
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1
You wlil likely not need all of the above.
ahci.mobile_lpm_policy=1 fixes a hang on mostly Lenovo computers due to SATA controller power management. That workaround is strictly not related to Intel graphics but it does solve related issues. Try adding
ahci.mobile_lpm_policy=1 if the machine hangs when you change display brightness.
i915.enable_dc=0 disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks.
intel_idle.max_cstate=1 limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip.
Some Intel systems, like Kaby Lake Refresh chips, require both
i915.enable_dc=0 to ensure a hang-free experience.
Intel "Baytrail" chips are known to randomly hang without
intel_idle.max_cstate=1 due to a hardware flaw.
Xorg can use two entirely different drivers to power Intel graphics: The Xorg X11 Intel video driver and the Xorg modesetting driver.
The Intel driver is typically packages as a package named
xorg-x11-drv-intel. One major problem with this driver is that it does not have very frequent releases yet there are major changes to the git tree on a regular basis. The lack of stable releases has resulted in distributions packaging snapshot of the driver in their repositories. That makes it hard to tell what "version" (or snapshot) you are actually using.
The lack of stable Xorg Intel driver releases has made several distributions switch to the more general Xorg Modesetting driver. That driver is a more generally driver capable of using any kernel driver with support for kernel modesetting. The modesetting driver is built into the Xorg server, there is no separate package for it.
Some users have reported that they have hangs when using the Intel driver which are fixed by switching to the modesetting driver. Hangs on low-powered systems tend to happen regardless of which Xorg driver are used, adding kernel parameters (see above) is needed on those systems.
You can choose what Xorg driver to use by creating a file in
20-intel-gpu.conf with a line that either says
Driver "modesetting" or
Or, for modesetting:
Note that the modesetting driver does not support the
TearFree option. You will have horrible tearing if you use the modesetting driver and a window manager which does not support or have compositing enabled.
Creating a configuration file in
/etc/X11/xorg.conf.d/ with the option
TearFree set to
1 will prevent tearing if you opt to use the Intel driver for Xorg. It can look like this:
Why TearFree defaults to 0 is anyone's guess.
That option is NOT available in the alternative modesetting driver (built into the Xorg server). You have to use a compositing window manager to avoid tearing if you use that driver.
- 2nd Generation Intel® Core : Datasheet, Volume 1.
- Desktop 3rd Gen Intel Core Processor Family: Datasheet, Vol. 1. Intel. Retrieved on 2015-06-18.
- Intel Pentium Processor N3500-series, J2850, J2900, and Intel Celeron Processor N2900-series, N2800-series, J1800-series, J1900, J1750 – Datasheet. Intel (2014-11-01). Retrieved on 2016-02-08.
- Desktop 4th Generation Intel® Core : Datasheet – Volume 1 of 2. Retrieved on 27 May 2018.
- Kernel Bug 109051 - cstates: intel_idle.max_cstate=1 required to prevent crashes - Baytrail