Skip to content

Conversation

@kanlihu
Copy link
Contributor

@kanlihu kanlihu commented Sep 24, 2025

Tracked-On: OAM-134123

@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci
Copy link

SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci sysopenci added Engineering Build Successful Engineering Build Successful and removed Engineering Build Not Started Engineering Build Not Started labels Oct 13, 2025
@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci
Copy link

FAILURE: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci sysopenci added Engineering Build Failed and removed Engineering Build Successful Engineering Build Successful labels Oct 20, 2025
ALOGI(" red %f %f" ,primaries[0].x, primaries[0].y);
ALOGI(" grean %f %f" ,primaries[1].x, primaries[1].y);
ALOGI(" blue %f %f" ,primaries[2].x, primaries[2].y);
ALOGI(" write %f %f" ,whitepoint.x, whitepoint.y);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there typo? write -> white

ALOGI(" red %f %f" ,primaries[0].x, primaries[0].y);
ALOGI(" grean %f %f" ,primaries[1].x, primaries[1].y);
ALOGI(" blue %f %f" ,primaries[2].x, primaries[2].y);
ALOGI(" write %f %f" ,whitepoint.x, whitepoint.y);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there typo? write -> white

Copy link

@feijiang1 feijiang1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need split this pr into two different commits, one focus one normal HDR display support, another for H3C monitor.

@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci sysopenci requested a review from feijiang1 October 21, 2025 09:00
@sysopenci
Copy link

SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci
Copy link

SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

Enable High Dynamic Range (HDR) display support in the DRM hardware composer.
The feature is controlled via the new runtime property
vendor.hwc.drm.enable_hdr_display (default: false).
When enabled, the implementation leverages EDID parsing through
the libdisplay_info library to dynamically enumerate
HDR capabilities, color modes, and output metadata.
Key changes include:
Integration of libdisplay_info for EDID-based color gamut and HDR metadata
 retrieval.
Conditional enumeration of HDR color modes and capabilities in HwcDisplay.
Updates to EDID wrapper interfaces for luminance and primaries handling.
Simplified metadata setup with BT.2020 fallbacks and logging for debugging.
This addresses HDR output requirements for enhanced display pipelines.

Tracked-On: OAM-134123
Change-Id: Idf227b382925af81a2919e033393eabb78c0cb20
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
Introducing support for SDR-to-HDR switching in the hardware composer
(HWC) of the display system. Enhancements include pipeline updates,
the addition of degamma/gamma Look-Up Table (LUT) handling,
and support for building HDR metadata, gamma transformations, and color space
conversions. Additionally, the patch refactors code to adjust HDR property
management and integrates new classes and utility methods for HDR processing.

Key aspects of the patch include:

Added HdrPipeline module to handle HDR-specific degamma, gamma, and
color matrix operations.
Updated DrmAtomicStateManager to support HDR properties,
degamma/gamma LUT blobs, and relevant atomic properties during frame commits.
Enhanced the HwcDisplay class to manage HDR metadata, degamma/gamma LUTs, HDR
activation states, and to support the configuration of HDR output metadata.
Fixed the issue where HDR settings weren't being properly cleared during SDR
mode, resolving transition errors.

Tracked-On: OAM-134123
Change-Id: Iad06253762c0f6245cfe425e799ae9758d162782
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
Backend::ValidateDisplay
Check for a single HDR video layer via IsHDRLayer().
If unique, attempt device composition and validate with a test commit.
On success, keep as device; else, fallback to client.
For multiple layers including HDR, force HDR to client.

HwcDisplay::CreateComposition
If single HDR device layer, disable HDR pipeline (identity CTM, no LUTs)
for direct scanout. For client or mixed cases, enable full pipeline.

Metadata and Capabilities:
Use EDID to fetch HDR types/luminance, with fallbacks for edge cases.
Sets SDR-like luminance (100 nits) if no HDR support;
for specific LG TV models ("LG TV SSCR"), overrides low/invalid max luminance
with typical HDR values (1000 nits) to handle EDID bugs.
Support HDR10 fully; HLG partially (no LUTs).

Tracked-On: OAM-134123
Change-Id: Ice8ed4c5f7bc433add6de7a645a84686b34319bf
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

@sysopenci
Copy link

SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

Backend::ValidateDisplay
Check for a single HDR video layer via IsHdrVideoLayer().
If unique, attempt device composition and validate with a test commit.
On success, keep as device; else, fallback to client.
For multiple layers including HDR, force all layers to client.

Tracked-On: OAM-134602
Change-Id: I5351421b9326c52b908810b2bd1f0f8bb27416b7
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
To ensure proper reset and reinitialization of the HDR (High Dynamic Range)
pipeline during hotplug events
(e.g., when a display connector is plugged or unplugged).
This prevents potential issues like stale HDR configurations persisting
across display changes.
The changes refactor EDID (Extended Display Identification Data) handling for
better modularity and add explicit HDR reset logic in the display
deinitialization and color mode switching paths. This improves reliability for
HDR-enabled displays during dynamic connector updates, such as in multi-monitor
setups or docking scenarios.

Test-done:
Verification was performed on a system with both SDR and HDR displays.
The displays were alternately hotplugged (inserted and removed) multiple
times to simulate dynamic scenarios.

Tracked-On: OAM-134602
Change-Id: I2615b85545cde7f4af73f295ab5861d63d04f855
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
@sysopenci
Copy link

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web for more details.

Tracked-On: OAM-134123
Change-Id: I5be22c0c6c846607fc128f51becee16a41bcbecc
Signed-off-by: Kanli Hu <kanli.hu@intel.com>
@sysopenci
Copy link

SUCCESS: Android CI has completed Engineering Build for this issue.Please check the linked Tracked-On issue/Android CI Web for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Engineering Build Successful Engineering Build Successful Pending Developer Approval Pending Developer Approval Pending PR Review Pending PR Review Valid commit message

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants