diff --git a/kitty/linear2srgb.glsl b/kitty/linear2srgb.glsl index 637632d55..63e2fe5c0 100644 --- a/kitty/linear2srgb.glsl +++ b/kitty/linear2srgb.glsl @@ -14,8 +14,10 @@ float linear2srgb(float x) { return mix(lower, upper, step(0.0031308f, x)); } -vec3 linear2srgb(vec3 c) { - return vec3(linear2srgb(c.r), linear2srgb(c.g), linear2srgb(c.b)); +vec3 linear2srgb(vec3 x) { + vec3 lower = 12.92 * x; + vec3 upper = 1.055 * pow(x, vec3(1.0f / 2.4f)) - 0.055f; + return mix(lower, upper, step(0.0031308f, x)); } vec3 srgb2linear(vec3 c) {