Skip to content

Stacked on seedds/nxnative#1383: the game is told the device's HDR peak (1,600 nits by model), not a fixed 1,000 - #8

Closed
oliverames wants to merge 2 commits into
pr-1383-headfrom
hdr-device-peak
Closed

oliverames wants to merge 2 commits into
pr-1383-headfrom
hdr-device-peak

Conversation

@oliverames

Copy link
Copy Markdown
Owner

Stacked on seedds#1383 (not mergeable into main yet: main has no HDR presentation code, it lives in seedds#1383 / seedds#1249 / seedds#1176). Not fully tested. The base branch pr-1383-head is seedds#1383's head (e8ac7386); this PR adds two commits on it, so it can be rebased onto whichever HDR PR lands.

  1. 8c646e2f (earlier): front_ios.m reads the hardware model and publishes the device's peak HDR brightness (1,600 nits for the iPhone 12 Pro and later, 1,200 for the iPhone 10 and 11, the M-series iPad XDR panels), and the layers' mastering metadata can top out at it when it is below the game's own 1,000; DM_HDR_EDR_MAX (a ratio of paper white) overrides.
  2. acaedf15: the game is also told that peak. QueryDisplayHdrStatus answered a fixed 1,000, so a game tone-mapped to a 1,000-nit display on a panel that reaches 1,600; it now answers dm_hdr_mastering_peak() (the model peak when published, else 1,000), and the layer metadata carries the same value. DM_HDR_EDR_MAX still caps it.

Checked. Built into an iOS Release build and run on a physical iPhone 19,4 (potential EDR headroom 8.0, paper white 203, so about 1,624 nits): the log line reads vi HDR: enabled (EDR display), virtual peak 1600 nits, and the owner reports the picture looks good in a race.

Not checked. No side-by-side against the 1,000-nit value, no measurement of nits, no Mac run, and the unit tests were not run (the build tree has the PR's own docs-index failure at e8ac7386, docs/agents/game-patches.md out of date, unrelated to this change). A model missing from the table keeps 1,000. A brightness or heat cost of the higher EDR peak was not measured: the slow GPU state in the same runs is unexplained and HDR load has not been ruled out as a contributor (a DM_HDR=0 run is planned).

Oliver Ames added 2 commits November 7, 2026 12:34
…front_ios.m reads the hardware model; 1,600 nits on the modern panels), and DM_HDR_EDR_MAX overrides
QueryDisplayHdrStatus and the layer's mastering metadata now report the front end's model peak when it published one
(1,600 nits for the iPhone 12 Pro and later), else the virtual 1,000. DM_HDR_EDR_MAX still caps it. Stacked on seedds#1383.
@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-07T17:34:55.472584Z
We couldn’t complete this review. Comment @codex review to try again.
acaedf1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@oliverames

Copy link
Copy Markdown
Owner Author

Folded into #9, which carries this change rebuilt on seedds#1176's HDR design (the HDR code this was stacked on, seedds#1383's, is a different implementation) together with the launcher rows and the packed-conversion probe.

@oliverames oliverames closed this Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant