You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reported issue is deterministic: W is capped at 55705, matching the lower split/input component, rather than allowing the endpoint to scale against the full input value. This is distinct from the earlier value-ramp collapse fixed by #2752.
Acceptance criteria
Add a focused regression test for the h315_s015_v100-style case or an equivalent deterministic fixture.
The strict sub-gamut output scales according to the intended input RGB endpoint/value, not the intermediate white-extraction split energy.
The fix remains analytical and MCU-friendly; no baked 3D LUT is required.
Follow-up 2: shared colorimetric solver plumbing and RGB colorimetric path
The #2748 follow-up discussion also proposes splitting portable solver logic out of rgbw_colorimetric.cpp.hpp into a shared colorimetric_response layer so RGBW, RGB, and future 5-channel+ paths can reuse the same matrix/profile/solver primitives.
Suggested phased direction from the discussion:
Land the RGBW sub-gamut endpoint-scaling fix above.
Move portable solver functions from rgbw_colorimetric into shared colorimetric_response files.
Implement an opt-in RGB colorimetric path using the same profile/source-space machinery.
Identify the correct integration point for RGB colorimetric dispatch without changing legacy/default RGB behavior.
Acceptance criteria
Shared code extraction does not change existing RGBW outputs except where explicitly covered by the endpoint-scaling fix.
RGB/RGBW colorimetric behavior remains opt-in and compile-time gated where needed for binary size.
Context
Issue #2748 reported several RGBW colorimetric solver divergences. The major regressions from that report were addressed by #2749 and #2752:
wx_lp_legacyis separated from boosted/overdrive mode.After #2752, the remaining discussion in #2748 identifies follow-up work that should be tracked separately from the original large report.
Follow-up 1: sub-gamut endpoint scaling
The current sub-gamut path can still scale outputs from the white-extraction split-channel energy rather than from the actual input RGB value.
Reported example from #2748:
The reported issue is deterministic: W is capped at
55705, matching the lower split/input component, rather than allowing the endpoint to scale against the full input value. This is distinct from the earlier value-ramp collapse fixed by #2752.Acceptance criteria
h315_s015_v100-style case or an equivalent deterministic fixture.Follow-up 2: shared colorimetric solver plumbing and RGB colorimetric path
The #2748 follow-up discussion also proposes splitting portable solver logic out of
rgbw_colorimetric.cpp.hppinto a sharedcolorimetric_responselayer so RGBW, RGB, and future 5-channel+ paths can reuse the same matrix/profile/solver primitives.Suggested phased direction from the discussion:
rgbw_colorimetricinto sharedcolorimetric_responsefiles.Acceptance criteria
Related
wx_lp_legacyseparation.