28-30 September 2026
America/Toronto timezone

Demo: Interactive HDCP Diagnostic Tool for Linux DRM/KMS stack.

30 Sep 2026, 15:20
10m
Demo (10 minutes) Demo Main Track

Speaker

santhosh reddy SANTHOSH GUDDATI

Description

HDCP (High Bandwidth Digital Content Protection) failures during real-world playback are difficult to reproduce and harder to triage. When protected content breaks on a user’s machine, there is rarely a quick way to tell whether the fault lies in the kernel driver or in user space or in the display link itself. Such failures are often intermittent, they surface only after a session has been active for some time, and they depend on the monitor, cable, and content-type combination and display configuration in use which makes them easy to miss with a conventional pass/fail test (eg: kms_content_protection IGT) that runs once and exits.

HDCP Tool is an IGT (IGT GPU Tools) command line tool designed to identify the early issues that might occur on a Linux users’ machine. Its primary purpose is to confirm that content protection stays enabled for the full duration of an active playback session. By continuously polling the link it makes integrity failures easy to identify the moment they occur clearly showing whether the protected link stayed up and, if it dropped, exactly when. It also supports compliance validation while sessions are active, letting HDCP behavior be exercised and confirmed under realistic conditions.

Current User Flow:
The tool runs as an interactive, menu-driven application rather than a one-shot pass/fail test. Once started, it displays a menu on the connected screen and waits for operator input. Using single-key commands, the user can request a specific protection mode, query the status, or end the session. Each command takes effect immediately, so content protection can be enabled, changed, or disabled while the display session remains active.

  1. Get HDCP Information
    Retrieves and displays a detailed per-connector summary, including the encoder, connection status, connector type, sink device HDCP capabilities, current protection status, and active content type.
  2. Enable HDCP 1.4
    Initiates HDCP 1.4 protection by setting the Content Protection property to DESIRED and configuring the Content Type to 0.
  3. Enable HDCP 2.2 (Type 0)
    Requests HDCP 2.2 protection for Type 0 content by setting Content Protection = DESIRED and Content Type = 0.
  4. Enable HDCP 2.2 (Type 1)
    Requests HDCP 2.2 protection for Type 1 content by setting Content Protection = DESIRED and Content Type = 1.
  5. Disable HDCP
    Disables content protection by setting the Content Protection property to UNDESIRED, thereby removing HDCP enforcement.
    Q. Terminates the application session and releases all allocated display resources.

The overlay is also helpful to color vision deficiency operators: because every mode and status is shown as on-screen text (mode name plus an Enabled/Desired/Disabled string), no critical information depends on distinguishing the background colors.

Future Plans of Tool Enhancement:
1. Improvements are planned for DP-MST setups to better handle multiple displays.
2. Support for display hot-plug events (hpds) will allow testing when monitors are connected or disconnected during playback.
3. Enhanced diagnostics, including detailed HDCP state-transition logging and failure reporting.

Code of Conduct Yes
GSoC, EVoC or Outreachy No
In-person or virtual presentation Virtual

Primary authors

Presentation Materials

There are no materials yet.
2026 Platinum Sponsor
Arm
2026 Gold Sponsors
AMD
Collabora
Microsoft
NVIDIA
Raspberry Pi
2026 Silver Sponsors
CodeWeavers
Igalia
Netflix
Qualcomm
Specs
The Linux Foundation
2026 Bronze Sponsors
Imagination Technologies
Khronos Group
Libre Computer
Linaro
LunarG