Display Hackfest Intel

Topics from Intel

Pipe Joiner as a Power Optimization Mechanism

← 2026

1. Background

Display hardware may include features like Pipe/CRTC Joiner, where two display CRTCs are combined to drive a single output.

For example In Intel display hardware, pipe/CRTC joiner is primarily used when:

2. Problem Statement

In many real-world scenarios:

In these cases, a single CRTC configuration often leads to:

3. Solution via Joiner

Pipe joiner can be utilized for power optimization.

By distributing the display workload across two CRTCs:

Configuration CRTC Used Display Clocks Power Characteristics
Single Pipe 1 Higher Lower CRTC overhead, higher clock
Pipe Joiner 2 Lower Higher CRTC usage, lower clock

The goal is to optimize for net power savings, not just minimize hardware usage.

4. Open Questions and Design Directions


Combinatorial Nature of Joiners


Capability Representation (Discussion Point)

If drivers need to expose joiner capabilities to userspace, one possible model is:

struct drm_join_group {
    __u32 crtc_mask;   // bitmask of CRTCs participating in the join
};

struct drm_joiner_caps {
    __u32 num_crtcs;
    __u32 num_groups;
    struct drm_join_group groups[];
};

Drivers may expose:


caps.num_crtcs = 4;
caps.num_groups = 5;

groups = {
    { .crtc_mask = 0b0011 }, // A+B
    { .crtc_mask = 0b0110 }, // B+C
    { .crtc_mask = 0b1100 }, // C+D
    { .crtc_mask = 0b0111 }, // A+B+C
    { .crtc_mask = 0b1110 }, // B+C+D
};