Intel Iris
Intel Iris is, primarily, a Mesa OpenGL graphics driver for Intel iGPUs which uses the same Gallium graphics stack the RadeonSI Mesa driver for AMD graphics drivers use. It was first merged in February 2019[1]. It has slightly lower CPU overhead than the older i965
driver. The Intel Iris OpenGL driver became the default graphics driver for Broadwell (Gen 8) graphics chips when Mesa 20 was released.
Iris As A Intel Marketing Term[edit]
"Intel Iris Xe" is a marketing term Intel begun to use to describe their twelfth generation graphics chips in 2020. These chips can be found on Intel Tiger Lake laptops launched in September, 2020.
"Intel Iris" is also, ironically, a marketing term Intel used for their "Pro" line from around 2012 to around 2016. Older Intel Iris chips like the Iris 5000 and the Iris Pro 5200 are 7.5th generation Intel graphics chips. These older Intel Iris chips can't use the Intel Iris OpenGL Mesa driver which requires a gen8+ graphics chip.
Intel graphics division PR-person Lisa Pearce shared this story in response to us saying that "Intel Iris" is something that's been around for almost a decade:
"It actually is a new architecture for Xe. The Linux Iris name was for the redesign to reduce CPU overhead but it doesn’t map to HW arch changes at all. We always use hardware abstraction layers to keep unified driver stacks (win & Linux)."
Intel Iris is, in bullet summary:
- A almost a decade old marketing term for Intel Pro-line graphics chips with 7.5th-9th generation Intel graphics technology
- A new Mesa OpenGL graphics driver for Intel 8th generation and newer Intel chips
- A marketing term for 12th generation Intel graphics chips. There's typically a Xe as in Iris Xe in that context.
Intel hinted that there will be dedicated GPUs based on their 12th generation Iris Xe architecture time and time again throughout 2020.
Intel Iris vs Intel i965[edit]
Intel i965 is a older Mesa OpenGL graphics driver. All Intel graphics chips running on Linux used it for OpenGL until Iris, a new and shiny OpenGL driver for Intel graphics chips, replaced it as default for gen8+ (i)GPUs starting with Mesa 20. Iris got on-disk shader cache support in May 2019[2].
The good old i965 driver remains optionally available on machines with gen8+ Intel graphics and it remains the default on machines with gen <=7.5 graphics.
The i915
Linux kernel driver is the right driver (and only driver) regardless of what user-space OpenGL driver is used.
Performance[edit]
There does not appear to be any huge difference in either performance or stability between iris and i965. iris scores slightly lower in Basemark GPU 1.2.1 and marginally higher in UNIGINE Superposition.
Intel i7-5500U, Kernel 5.9.0 rc5, Mesa 20.2.0 rc4 | ||
---|---|---|
OpenGL driver | Run #1 | Run #2 |
iris | 60339 | 58543 |
i965 | 61915 | 61530 |
That is not a huge difference is this test done ages ago when Mesa 19.2.2 was new but it is a barely more than margin of error win for Iris.
Official Test, OpenGL, "Medium" Intel i7-5500U, Kernel 5.9.0 rc5, Mesa 20.2.0 rc4 | ||
---|---|---|
OpenGL driver | Run #1 | Run #2 |
iris | 2329 | 2358 |
i965 | 2604 | 2607 |
Official Test, OpenGL, "Medium" Intel i7-5500U, Kernel 5.9.0 rc5, Mesa 20.2.0 rc4 | ||
---|---|---|
OpenGL driver | Run #1 | Run #2 |
iris | 1464 | 1470 |
i965 | 1451 | 1462 |
Manually Choosing Your Mesa Driver[edit]
You can manually override what Mesa graphics driver is used for OpenGL on Intel (i)GPUs. The choices are iris
and i965
. What choice you make does not affect Vulkan, Vulkan support on Intel graphics chips is is handled by a completely different driver called ANV.
iris
has been available since Mesa 19.2.0. You can't choose it in earlier versions.iris
requires Linux 5.0 or newer. You can't choose it with Linux 4.x and Mesa will default toi965
(assuming Mesa even supportsiris
if the distribution is shipping a kernel that old).iris
has been the default for 8th generation, and newer, Intel graphics chips since Mesa 20.0.
You can set MESA_LOADER_DRIVER_OVERRIDE
or use a $HOME/.drirc
file to override the default. Note that you can only choose if you have Broadwell (gen8 graphics) or newer, Intel chips up to and including Haswell can only use the i965 OpenGL driver.
MESA_LOADER_DRIVER_OVERRIDE=
should be set to either i965
or iris
glxinfo
does not clearly say which driver is in use. However, there is a slight tell-tale difference. Vendor: Intel (0x8086)
is listed when Iris is used, the longer string Vendor: Intel Open Source Technology Center (0x8086)
is shown when the older i965
driver is used.
$ glxinfo -B | grep Vendor
Vendor: Intel (0x8086)
$ MESA_LOADER_DRIVER_OVERRIDE=iris glxinfo -B | grep Vendor
Vendor: Intel (0x8086)
$ MESA_LOADER_DRIVER_OVERRIDE=i965 glxinfo -B | grep Vendor
Vendor: Intel Open Source Technology Center (0x8086)
It is possible to start specific applications and games by using the loader override variable as a prefix:
MESA_LOADER_DRIVER_OVERRIDE=iris supertuxkart
It is of course possible to force systems where Iris is the default to use the older i965
driver. It has more CPU overhead and it is slower. There may be compatibility reasons why you don't want to use it even so:
MESA_LOADER_DRIVER_OVERRIDE=i965 supertuxkart
$HOME/.drirc
can be used to permanently enable Iris on a system where Iris is available and i965 is the default (that would be distributions shipping a 5.0+ kernel and Mesa versions between 19.2.0 and 20.0):
<driconf> <device driver="loader" kernel_driver="i915"> <option name="dri_driver" value="iris" /> </device> </driconf>
'Note: The above .drirc configuration will enable Iris for all Intel GPUs even if it is a pre-Broadwell GPU which is unsupported by the Iris driver. You will have a problem if you force-enable Iris on unsupported Intel GPU so make sure yours is gen8+ before creating such a .drirc file.
|
It's also possible to use .drirc
to force-enable i965
to be used:
<driconf> <device driver="loader" kernel_driver="i915"> <option name="dri_driver" value="i965" /> </device> </driconf>
More advanced .drirc
configuration can be done using the graphical adriconf tool.
Enable comment auto-refresher