Passing camera background color to a shader, linear / gamma correction issue

My project uses linear rendering. I’m passing the camera background color into a shader. If I simply return that same color from the shader, the color is much brighter - see the square in this image (running in the editor):

I would expect that square to be essentially invisible. (This is an example, of course - I don’t actually want to render invisible objects.)
It turns out, if I apply GammaToLinearSpace() to the color before returning it, the result is correct.

So, I am unsure why this is necessary. If I sample the background color from the screen, the values are exactly the same that I see in the camera inspector, suggesting there isn’t any gamma correction at all (as I would expect).

I am a little confused about what is going on here, and would be grateful for pointers / explanations.

Thanks!

Not sure if this is the cause, but try changing the color space in Player Settings.

The problem doesn’t appear with gamma color space. I’d just really like to know why I have to make this correction when using linear rendering. The documentation is a little sparse on the topic.