Originally Posted by zoyd
I don't know why you say that, Graeme explicitly states for madVR flow:
madVR needs the video level encoding generated by dispread -K in 0-255 systems otherwise the level spacing will be incorrect. This is the point I mentioned earlier, madVR expects the 3dLUT to be in 220 step resolution not 255 step. The -e and -E switches in collink then determine how to map the 220 step resolution to the full lut resolution.
What other reason are you thinking -E is for?
There are 3 possible HTPC level configurations, when using madVR:
(1) Display wants 0-255. GPU and madVR are consequently also both set to 0-255.
This is the most recommended setup because it doesn't (shouldn't) have any banding problems, and still has all video, desktop and games with correct black/white levels. In this case test patterns need to have black at 0,0,0, obviously.
(2) Display wants 16-235. GPU is set to 16-235. madVR has to be set to 0-255.
This is not recommended, because the GPU stretches the madVR output, probably in 8bit without dithering, so banding could be introduced. However, this is not a big problem for ArgyllCMS. Argyll still needs to create test patterns with black at 0,0,0. The GPU will then stretch the test patterns from 0-255 to 16-235, so the display will get 16,16,16, although Argyll rendered 0,0,0. So the levels are correct.
(3) Display wants 16-235. GPU is set to 0-255. madVR is set to 16-235.
This is the recommended setup for best image quality if your display can't do 0-255. This setup results in banding-free madVR image quality. However, levels for desktop and games will be incorrect, because desktop and games will render black at 0,0,0, while the display expects black at 16,16,16. This is a problem for ArgyllCMS, because Argyll will create test patterns with black at 0,0,0, and the display will also receive these at 0,0,0. So basically Argyll test patterns will have wrong levels, which will screw up the whole calibration.
It is my understanding that Graeme implemented the -E switch specifically for (3), because without the -E switch Argyll test patterns would send wrong levels to the display. Basically the -E switch tells Argyll to render test patterns with black at 16,16,16 and white at 235,235,235, which Argyll never had to do before. When using VMR/EVR, you usually switch your GPU to 0-255 or 16-235. In both cases Argyll can render test patterns with black at 0,0,0, and they will still be sent to the display with the correct levels. However, due to my recommendation to use (3) if your display doesn't support 0-255, Argyll suddenly needs to render test patterns differently. Hence Graeme implemented the -E switch.
So my understanding is that -E should be used only for (3) and in no other situation. If you use the -E switch for (1), Argyll will create test patterns with black at 16,16,16 which would be incorrect!
@Graeme, please correct me if I'm wrong.