summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
Diffstat (limited to 'video/out')
-rw-r--r--video/out/gl_video.c5
-rw-r--r--video/out/gl_video_shaders.glsl12
2 files changed, 5 insertions, 12 deletions
diff --git a/video/out/gl_video.c b/video/out/gl_video.c
index 12dc4d503a..af9e759f40 100644
--- a/video/out/gl_video.c
+++ b/video/out/gl_video.c
@@ -1124,10 +1124,7 @@ static void compile_shaders(struct gl_video *p)
shader_def_opt(&header_final, "USE_3DLUT", p->use_lut_3d);
// 3DLUT overrides SRGB
shader_def_opt(&header_final, "USE_SRGB", p->opts.srgb && !p->use_lut_3d);
- shader_def_opt(&header_final, "USE_CONST_LUMA_INV_APPROX",
- use_const_luma && !use_cms && p->opts.approx_gamma);
- shader_def_opt(&header_final, "USE_CONST_LUMA_INV_BT2020",
- use_const_luma && !use_cms && !p->opts.approx_gamma);
+ shader_def_opt(&header_final, "USE_CONST_LUMA_INV", use_const_luma && !use_cms);
shader_def_opt(&header_final, "USE_DITHER", p->dither_texture != 0);
shader_def_opt(&header_final, "USE_TEMPORAL_DITHER", p->opts.temporal_dither);
diff --git a/video/out/gl_video_shaders.glsl b/video/out/gl_video_shaders.glsl
index 1549539d2c..2f5940c26f 100644
--- a/video/out/gl_video_shaders.glsl
+++ b/video/out/gl_video_shaders.glsl
@@ -453,14 +453,10 @@ void main() {
// Adapt and compand from the linear BT2020 source to the sRGB output
color = srgb_compand(color);
#endif
- // If none of these options took care of companding again, we have to do
- // it manually here for the previously-expanded channels. This again
- // comes in two flavours, one for the approximate gamma system and one
- // for the actual gamma system.
-#ifdef USE_CONST_LUMA_INV_APPROX
- color = pow(color, vec3(1.0/1.95));
-#endif
-#ifdef USE_CONST_LUMA_INV_BT2020
+ // If none of these options took care of companding again (ie. CMS is
+ // disabled), we still need to re-compand const luma signals, because
+ // they always come out as linear light (and we can't simply output that).
+#ifdef USE_CONST_LUMA_INV
color = bt2020_compand(color);
#endif
#ifdef USE_DITHER