AMD's Suballocator Helper Gets Ready To Help Intel's New Xe Linux Graphics Driver
Among the early changes sent in via today's drm-misc-next pull request for what will be Linux 6.4 material is moving around of AMD's suballocator helper code used by the Radeon and AMDGPU kernel graphics drivers. This AMD suballocator helper code is being "promoted" to the core Direct Rendering Manager (DRM) infrastructure area so that it can be used by other drivers.
In particular, this suballocator is moving to the DRM common area so that it can be easily used by the upcoming Intel Xe Linux kernel graphics driver. Intel previously looked at adapting AMD's suballocator for use by the existing i915 kernel driver while now they are going ahead with plans to make use of it but for their newer Xe kernel driver. This suballocation manager isn't dependent upon any AMD-specific implementation details and can be easily used generically by other drivers. This is just a few hundred lines of code to deal with suballocating a buffer object.
This "drm_suballoc" will be used by the Xe kernel graphics driver for modern Intel integrated/discrete GPUs. We'll hopefully see the Xe kernel driver merged later this year at least in experimental form and it's for Gen12 Tigerlake graphics and newer. The i915 kernel driver will continue to exist for older Intel graphics hardware.
This isn't the first time that AMD kernel graphics driver code has been promoted to DRM core so that it can be used by other open-source kernel graphics drivers. For example, the AMDGPU scheduler code was previously promoted to DRM core too so that other drivers could make use of it including the Intel driver. That's just the nature of open-source and code sharing in areas where it makes sense to avoid code duplication.
Aside from this DRM suballocator work, today's drm-misc-next pull request also has DisplayID 2.0 parsing updates, GEM memory management code changes, and other random small changes. Expect more significant Linux 6.4 DRM changes to surface in the weeks ahead. See this pull request for today's patches.