What is the rationale for replacing gamma correction with something that works completely differently?
One reason to change gamma was #4160 (well, Duzenko probably has another idea?).
The old version changed gamma setting directly in Windows, and then reverted this change back when the engine shut down.
It means that if you change gamma setting in windowed TDM, then all the other windows and desktop also become brighter/darker.
Even worse, if the game crashes, then the desktop is left in the brighter state until the user reboots machine.
I personally hated this concept much during development, and eventually had to set gamma to 1 on developement installation just to make sure that TDM does not mess my desktop when I stop execution.
Maybe I don't understand what is being done but isn't that kind of a bad thing?
I think it is a good thing if done right, but the current implementation is not right.
Do people "want" the power function? I.e. does the power function "looks better" than simpler methods? I am reluctant to apply costly full-screen postprocessing or shader stages because of their FPS impact. We should at least offer a low-end option for this. I don't object in principle for implementing slower alternatives for high-end systems.
I think yes, people want power function.
In fact, the best solution is to restore old behavior (I mean only the visible result, not the means of doing it), unless everyone agrees that the new one is better.
By the way, TDM already has bloom for a long time, which is most likely a fullscreen postprocessing. So if you are worrying about performance of fullscreen gamma-correction, you can just add gamma-correction to the end of the bloom shader, thus avoiding additional pass.
I'm considering universal post-process for the multi-light shader. Adding this to the single-light shader probably does not make sense.
Multi-light shader is a very experimental thing (shadow maps only, hard shadows only, etc), which is unlikely to become default in the near future. So the current default is the main thing everyone worries about.
The gamma correction should not be done in any intermediate shaders like ambient/interaction, it should be done as the very last full screen postprocessing.