Re: [CI] drm/i915/display: change pipe allocation order for discrete platforms

Jani Nikula
2026-04-02T09:44:03Z

On Mon, 30 Mar 2026, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Mon, Mar 30, 2026 at 02:37:47PM +0300, Jani Nikula wrote:
>> On Mon, 16 Mar 2026, Jani Nikula <jani.nikula@intel.com> wrote:
>> > When big joiner is enabled, it reserves the adjacent pipe as the
>> > secondary pipe. This happens without the user space knowing, and
>> > subsequent attempts at using the CRTC with that pipe will fail. If the
>> > user space does not have a coping mechanism, i.e. trying another CRTC,
>> > this leads to a black screen.
>> >
>> > Try to reduce the impact of the problem on discrete platforms by mapping
>> > the CRTCs to pipes in order A, C, B, and D. If the user space reserves
>> > CRTCs in order, this should trick it to using pipes that are more likely
>> > to be available for and after joining.
>> >
>> > Limit this to discrete platforms, which have four pipes, and no eDP, a
>> > combination that should benefit the most with least drawbacks.
>>
>> Ville, I think it's time to review and, pretty soon, merge this.
>>
>> Our IGT changes to deconflate CRTCs and pipes have been merged, and
>> there's the removal of invalid igt_crtc_t at [1] left. The trybot CI
>> results on i915 for swapping pipes B and C on all platforms, not just
>> discrete like here, didn't break anything either anymore [2].
>>
>> I'm contemplating slapping Cc: stable on this too.
>>
>> There's the FIXME on the CRTC index warning.
>
> IIRC we already concluded that the WARN is unnecessary. I'd have to
> look through the previous mails to see what I actually said there.
>
>> With the A+C and B+D
>> pairing there's no issue, the CRTC indexes remain in that order. But can
>> we ever really end up with B+C pairing?
>
> It might be rare if userspace picks crtcs in order. But IIRC we had
> bugs where it was clear userspace was just picking random crtcs willy
> nilly. IIRC it was sway doing it, and I think I even proposed a
> uapi documentation update to suggest using crtcs in order. Can't
> remember that happened to that one.
>
> But I think we still want the "walk the crtcs in pipe order" change,
> mainly to keep the more optimal commit sequence. Also I'm not quite
> 100% convinced we don't have some subtle assumption somewhere about
> the order.

You mean convert all for_each_intel_crtc*() iterators to pipe order?

BR,
Jani.

>
> BTW I just realized that DG2 may also get a slight extra benefit from
> the reordering because A+C has twice the dbuf space compared to A+B.

--
Jani Nikula, Intel