Today I upgraded my Arch Linux workstation with pacman as I usually do every day and a little surprise was waiting for me. After a long time in [testing], Mesa 20 came out of the [extra] repository, ready to be installed.

This release brings a ton of fixes and new features, alongside the new iris driver for modern Intel integrated GPUs based on Gallium3D.

I have conducted some benchmarks on my Intel Core i7-8550U with Intel HD Graphics 620 (GT2), an Intel Gen 9.5 GPU.


I have compiled the nCine in release and disabled V-Sync, then I ran a script to minimize CPU throttling and frequency variations:

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
[repeat for remaining cores, cpu1 to cpu7]

The performance governor should keep the CPU running at the same frequency all the time while the minimum frequency of 800 Mhz is set as both the minimum and maximum overall frequency. Those steps should both prevent the CPU from overheating and possibly highlight the reduced CPU load of iris.

To choose between the two drivers I used the MESA_LOADER_DRIVER_OVERRIDE environment variable. I set it to i965 for the legacy one or unset the variable for the new one, as it is now the default.

To confirm which driver was in use during a test I set the LIBGL_DEBUG environment variable to verbose.


Let’s see how many frames can be rendered over a time of five seconds.

Test i965 iris Ratio
apptest_camera (800 Mhz) 1665 1659 0.99x
apptest_camera 4532 4646 1.02x
apptest_meshsprites (800 Mhz) 1281 1294 1.01x
apptest_meshsprites 3451 3515 1.01x
apptest_particles_100x (800 Mhz) 385 387 1.00x
apptest_particles_100x 509 508 1.00x


It seems that for the nCine kind of workload, 2D sprites and low vertex count, there is practically no difference between the two drivers on my machine. The results do not change when the CPU frequency is capped at its minimum.

This is not necessarily a bad thing. I would have been glad to see some performance uplift with those 2D tests but I’m glad to see that iris does not seem to suffer at all from being a lot less mature than i965.