Intel Mesa Driver Changes Land For Building On Non-x86 CPUs
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."