Skip to content

cmm: color pipeline preparations - #1105

Merged
mahkoh merged 5 commits into
masterfrom
jorth/cp-cmm
Jul 18, 2026
Merged

cmm: color pipeline preparations#1105
mahkoh merged 5 commits into
masterfrom
jorth/cp-cmm

Conversation

@mahkoh

@mahkoh mahkoh commented Jul 18, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings July 18, 2026 13:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR prepares the color-management pipeline by making “no-op / embeddable” decisions render-intent-aware, and by adding infrastructure to reason about whether a target gamut/luminance is contained in a source description.

Changes:

  • Thread RenderIntent into ColorDescription::embeds_into / LinearColorDescription::embeds_into checks and update call sites (Vulkan renderer, scanout path).
  • Add cached LinearColorDescription::target_contained_in_primary() and supporting triangle containment algorithm.
  • Extend CMM tests to cover target containment behavior and add a ColorMatrix::IDENTITY constant.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/gfx_apis/vulkan/renderer.rs Updates embed checks to pass an explicit render intent for blend-buffer elision and color-transform caching.
src/gfx_api.rs Makes direct-scanout eligibility checks intent-aware via embeds_into(..., ct.render_intent).
src/cmm/cmm_transform.rs Adds a reusable identity matrix constant for future pipeline steps.
src/cmm/cmm_tests.rs Adds tests validating target_contained_in_primary() across multiple primaries/luminance edge cases.
src/cmm/cmm_primaries.rs Adds Primaries::about_equal() for approximate comparisons used by embed checks.
src/cmm/cmm_manager.rs Initializes the new target_contained_in_primary cache field when creating descriptions.
src/cmm/cmm_luminance.rs Refactors white-balance math helpers and adds Luminance::embeds_into(..., intent) for intent-aware identity checks.
src/cmm/cmm_description.rs Adds cached target-containment computation and updates embed logic to use approximate primaries + luminance embedding.
algorithms/src/triangles.rs Introduces a triangle containment helper used by the target-containment computation.
algorithms/src/lib.rs Exposes the new triangles module from the algorithms crate.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread algorithms/src/triangles.rs
Comment thread algorithms/src/triangles.rs
@mahkoh
mahkoh merged commit 24885e7 into master Jul 18, 2026
14 checks passed
@mahkoh
mahkoh deleted the jorth/cp-cmm branch July 18, 2026 13:27
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.

2 participants