Skip to content

Unify handling of dynamic range checks #98

Description

@DrHurt

What should the engine do?

All macOS 26+ devices and all iOS 26+ devices run in HDR mode by default on built in displays. Native apps & OS UI are all mastered in HDR.

The OS transparently tone maps SDR-only apps and if needed, system can also physically switch displays to SDR which is instant and seamless as there is no HDMI handshake like TVs.

Intel Macs are SDR-only on internal displays and do the reverse with HDR apps.

Sodalite on iOS devices currently runs in SDR mode.


The better alternative in my opinion would be to enable high EDR headroom in Sodalite (or the engine) via .allowedDynamicRange(.high) in the appropriate views before checking currentEDRHeadroom which should then return > 1 on HDR displays & == 1 on SDR displays.

This would create a simpler, unified dynamic-range detection algorithm across all supported devices and displays (including external ones)

Ideally this should be engine-side so it makes it to all host apps but will need testing.

Thanks again and good luck

Motivating media or use case

Unified & simplified cross platform approach

Area

HDR / Dolby Vision

Host app / integration context

No response

Would you be willing to open a PR?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions