I have a texture SRV with a BC7_SRGB format. I write the content of this texture to a RTV with a R16G16B16A16_FLOAT format, which will be written to a RTV (my back buffer) with a R10G10V10A2_UNORM format, after applying a custom gamma correction. The result only looks correct if I use a custom gamma exponent of 1 (=no-op) for gamma correction?
MSDN says:
- If a texture has sRGB content, ensure the ShaderResourceView has the _SRGB format modifier so when you read from the ShaderResourceView into the shader, you convert the texture content from gamma 2.2-corrected color space to linear color space.
So if they just use an approximate sRGB to linear conversion by raising to the power of 2.2. A simple raising to the power of 1.0/2.2 should be a no-op instead of raising to the power of 1.0?