Yes they are done in the shader unit. Most tonemapping have some calculate of the average brightness or something similar they use to scale the image with some how thats what I was talking about by "exposure" constants. If you don't use any form of tone mapping ( simplest being linear scaling ) then you simply take the 0.0 1.0 range of your image and display it. Obivously if it is an overly bright screen your aren't going to get as much "information" out of it as if it was tone mapped. However it can improve rendering particular in scenarios such as motion blur.
I don't tone map, what I do is I render my scene, read back the colour values, grab the largest one, render the scene again, this time normalise all the colours values.
I don't tone map, what I do is I render my scene, read back the colour values, grab the largest one, render the scene again, this time normalise all the colours values.
I don't tone map, what I do is I render my scene, read back the colour values, grab the largest one, render the scene again, this time normalise all the colours values.
This is a tone mapper, a very inefficient (and primitive) one. You could just use you max colour value in the subsequent frame, without re-rendering your scene.