Intel Mesa Driver Changes Land For Building On Non-x86 CPUs

Written by Michael Larabel in Intel on 23 November 2022 at 03:00 PM EST. 13 Comments
INTEL
A patch was merged today to Mesa 23.0 as part of the effort for building the Intel OpenGL and Vulkan Linux drivers for non-x86/x86_64 architectures. This is part of the ongoing effort to enable Intel discrete GPUs to eventually work on the likes of AArch64, POWER, and RISC-V systems.

As part of an effort dating back months there has been Intel Linux driver work for building on non-x86 architectures. There has been some work happening to their kernel driver while merged today was the support for building their OpenGL and Vulkan open-source drivers for non-x86 CPUs.

While most open-source Linux graphics drivers work rather well across CPU architectures, thanks to the nature of open-source and the Linux community, in the case of Intel's graphics driver stack they have traditionally not needed to care about non-x86 support. For the years of providing integrated graphics support, they were obviously tied to their x86/x86_64 CPUs. But now that they are in the discrete GPU game with Arc Graphics and their Ponte Vecchio / Max Series, it's a whole different game. With the possibility of installing a discrete Intel GPU on a ARM64 server, RISC-V desktop, libre POWER9 desktop, etc, their graphics drivers need to address the x86'isms that have built up in their code-base over the years.


It's an ongoing effort getting the open-source Intel Linux graphics driver for discrete GPUs working on non-x86/x86_64 systems.


The most recent step in this quest is today adding "SUPPORT_INTEL_INTEGRATED_GPUS" to their Mesa code for the Iris Gallium3D and ANV Vulkan drivers. This allows stripping out the integrated graphics driver code and just leaving the discrete GPU support.

The issue with leaving the integrated graphics driver support present for non-x86 builds that besides it being unused/not-possible, the driver code explicitly requires the Intel x86/x86_64 CLFLUSH instruction for clearing cache lines. So by adding "SUPPORT_INTEL_INTEGRATED_GPUS" with the ability to disable the iGPU support, those CLFLUSH bits of code are not built for non-x86 systems and thereby avoiding the build failures.

The code was part of this merge request now in Mesa 23.0. While it's enough to get the Intel Mesa drivers building for non-x86 targets, it's not necessarily going to run yet. There is still the rest of the kernel driver compatibility and in turn what other additional Mesa driver changes may be needed for the run-time support on other architectures. The MR simply commented, "Only fixing build, more changes may be needed. Also i915 kernel support is needed."
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week