drm-xe

The upstream xe driver repository. Maintained by Thomas Hellström, Lucas De Marchi, and Rodrigo Vivi, with a large pool of committers. Consists of drivers/gpu/drm/xe, include/drm/intel, and include/uapi/drm/xe_drm.h.

See the INTEL DRM XE DRIVER and INTEL DRM DISPLAY FOR XE AND I915 DRIVERS MAINTAINERS entries for current information on maintainers, mailing lists, bug reporting, etc.

Repository and Branches

https://gitlab.freedesktop.org/drm/xe/kernel

drm-xe-next

This is the branch where all drm/xe patches, both new features and fixes, are applied.

This branch “hides” the merge window from the drm/xe developers; patches are applied here regardless of the development phase of Linus’ upstream kernel. Pull requests to drm-next are sent as needed between -rc1 of the current kernel and the drm feature deadline (-rc5/-rc6 of the current kernel).

drm-xe-next-fixes

This branch contains drm/xe specific fixes to drm-next after the drm/xe features have been merged there. Fixes are first applied to drm-xe-next, and cherry-picked to drm-xe-next-fixes by maintainers. Valid from drm feature deadline (-rc5/-rc6 of the current kernel) to -rc1 of the next kernel.

Pull requests to drm-next are sent as needed, with no particular schedule.

drm-xe-fixes

This branch contains fixes to Linus’ tree after drm-next has been merged during the merge window. The fixes are then merged through drm-fixes. Valid from -rc1 to the kernel release.

Usually Linus releases each -rc on a Sunday, and drm-xe-fixes gets rebased on that the following Monday. Usually this is a fast-forward. The pull request to drm-fixes for new fixes is typically sent on the following Thursday. This is repeated until final release of the kernel.

This is the fastest path to getting fixes to Linus’ tree. It is generally for the regressions, cc:stable, black screens, GPU hangs only, and should pretty much follow the stable rules.

topic/core-for-CI

This branch contains hotfixes merged last on drm-tip to quickly address issues originating from outside of the DRM subsystem repositories. Typically local fixes to issues brought in from a -rc1 kernel, to ensure CI health. They may also be temporary cherry-picks from other subsystems until the commits hit the DRM subsystem via normal channels.

See Hotfixes in topic/core-for-CI for details.

Patch and Merge Flow

This chart describes the flow of patches to drm-intel and drm-xe branches, and the merge flow of the commits to drm and Upstream.

@startuml
title DRM Intel (i915 & Xe) patch flow (branch hierarchy)

skinparam defaultFontName Monospace
skinparam ArrowThickness 1.2
skinparam linetype polyline
left to right direction

rectangle "Patches (based on drm-tip) \n(**fixes & features**)" as PATCHES
rectangle "Mailing lists\n" as MAIL
rectangle "CI + Review" as CI

package "Xe (drm-xe)" {
  rectangle "drm-xe-next\n(xe core)" as XE_NEXT
  rectangle "drm-xe-fixes\n" as XE_FIXES
  rectangle "drm-xe-next-fixes\n" as XE_NEXT_FIXES
}

package "i915 (drm-intel)" {
  rectangle "drm-intel-next\n(**Display** & i915-general)" as INTEL_NEXT
  rectangle "drm-intel-gt-next\n(i915 GT/GEM core)" as INTEL_GT_NEXT
  rectangle "drm-intel-fixes\n" as INTEL_FIXES
  rectangle "drm-intel-next-fixes\n" as INTEL_NEXT_FIXES

}

package "DRM" {
  rectangle "drm-next\n(targets next (upcoming+1) release)" as DRM_NEXT
  rectangle "drm-fixes\n(weekly for upcoming release)" as DRM_FIXES
}

package "Linus master branch" {
  rectangle "Weekly during -rc fixes" as LINUS
  rectangle "During Merge Window" as LINUS_NEXT
}

PATCHES -[#purple]up-> MAIL
MAIL -> CI

INTEL_NEXT -[#blue]down-> INTEL_FIXES
INTEL_GT_NEXT -[#blue]down-> INTEL_FIXES
INTEL_NEXT -[#blue]down-> INTEL_NEXT_FIXES
INTEL_GT_NEXT -[#blue]down-> INTEL_NEXT_FIXES
XE_NEXT -[#blue]down-> XE_FIXES
XE_NEXT -[#blue]down-> XE_NEXT_FIXES

INTEL_NEXT -[#lightblue]down-> DRM_NEXT
INTEL_GT_NEXT -[#lightblue]down-> DRM_NEXT
XE_NEXT -[#lightblue]down-> DRM_NEXT
INTEL_FIXES -[#lightblue]right-> DRM_FIXES
XE_FIXES -[#lightblue]left-> DRM_FIXES
INTEL_NEXT_FIXES -[#lightblue]down-> DRM_NEXT
XE_NEXT_FIXES -[#lightblue]down-> DRM_NEXT

DRM_FIXES -[#red]down-> LINUS
DRM_NEXT -[#red]right-> LINUS_NEXT

CI -[#orange]down-> INTEL_NEXT
CI -[#orange]down-> INTEL_GT_NEXT
CI -[#orange]down-> XE_NEXT



note top of PATCHES
**Pre-merge CI** runs with **drm-tip**.
**Developers** (**<color:purple>------>**) should only use **drm-tip** for testing and development.
**Committers** (**<color:orange>------>**) only apply patches to the ***-next** trees
**Maintainers** (**<color:blue>------>**) cherry-pick **fixes** → *-fixes branches
**Maintainers** (**<color:lightblue>------>**) take care of pull-requests towards **DRM**
**DRM Maintainers** (**<color:red>------>**) take care of pull-requests towards **Linus**
end note

@enduml

Features

Features are picked up and pushed to drm-xe-next by committers and maintainers. See drm-intel Committer Guidelines for details. (The drm-intel guidelines apply also for drm-xe).

Fixes

Fixes are picked up and pushed to drm-xe-next by committers and maintainers, just like any other patches. This is to ensure fixes are pushed in a timely manner. Fixes that are relevant for stable, current development kernels, or drm-xe-next, will be cherry-picked by maintainers to drm-xe-fixes or drm-xe-next-fixes.

To make this work, patches should be labeled as fixes using the tags printed by “dim fixes <SHA1 of fixed commit>”, and extra care should be put into making fixes the first patches in series, not depending on preparatory work or cleanup.

topic/xe-for-CI

The topic/xe-for-CI branch is intended to only hold changes to drm-xe touching PCI-IDs and firmware version definitions required to get hardware not enabled in drm-xe-next running in public CI. The patches in this branch must not in any other way affect behaviour and features in drm-xe-next for any hardware. The topic/xe-for-CI branch may be rebased on drm-xe-next as needed and force-pushed in the same way as Hotfixes in topic/core-for-CI

Merge Timeline

For predictions on the future merge windows and releases, see https://jnikula.github.io/linux-kernel-tea-leaves/