Am 26.07.2017 um 15:18 schrieb Vitaly Bondar:
Lets assume i want to have calibration to sRGB and to have accurate display profile.
I do next steps: 1. apply "generic rgb profile" to display 2. make calibration to sRGB 3. apply copy of generic profile + vcgt 4. measure everything and calculate icc v4 profile 5. apply icc v4 profile + vcgt
After point 3 i have calibrated display, but not accurate profile.
Is your goal to implement a calibration/profiling solution? I guess what you're trying to achieve in steps 1 through 3 is a 'null' transform, but technically you can just tag the pixel buffer of your test patch window with the current display profile color space (CGColorSpace derived from ColorSyncProfileRef) and then set the gamma table using CGSetDisplayTransferByTable (as long as you remember that this is transient while the calling process is alive, not persistent), without first changing the actual display profile.
After point 5 my display is not sRGB anymore. It is gamma 1.8, the same as in Generic RGB profile.
Well, no. If you look at the tone response graph of the generated profile, you should see it follows the sRGB curve (at least it should if a null transform was used and the calibration was set during the characterization measurements).
This happens because XYZ->RGB transformation from my profile is now used before graphics-board will apply LUTs from vcgt.
And this is how it needs to be for the profile to produce the intended result, because the correct RGB numbers that need to be sent to the display to produce the intended intensity (or color) will only be arrived at after going through the videoLUT. Florian.