summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libvo/vo_opengl.c8
-rw-r--r--libvo/vo_opengl_shaders.glsl3
2 files changed, 11 insertions, 0 deletions
diff --git a/libvo/vo_opengl.c b/libvo/vo_opengl.c
index 0390955b5b..7b5289838f 100644
--- a/libvo/vo_opengl.c
+++ b/libvo/vo_opengl.c
@@ -1455,6 +1455,10 @@ static void check_gl_features(struct gl_priv *p)
bool have_fbo = gl->mpgl_caps & MPGL_CAP_FB;
bool have_srgb = gl->mpgl_caps & MPGL_CAP_SRGB_TEX;
+ // srgb_compand() not available
+ if (gl->glsl_version < 130)
+ have_srgb = false;
+
char *disabled[10];
int n_disabled = 0;
@@ -1488,6 +1492,10 @@ static void check_gl_features(struct gl_priv *p)
p->use_lut_3d = false;
disabled[n_disabled++] = "color management (FBO)";
}
+ if (!have_srgb && p->use_lut_3d) {
+ p->use_lut_3d = false;
+ disabled[n_disabled++] = "color management (sRGB)";
+ }
if (!have_fbo) {
p->use_scale_sep = false;
diff --git a/libvo/vo_opengl_shaders.glsl b/libvo/vo_opengl_shaders.glsl
index 5dd67bbd52..1f302889e4 100644
--- a/libvo/vo_opengl_shaders.glsl
+++ b/libvo/vo_opengl_shaders.glsl
@@ -37,11 +37,14 @@
# define in varying
#endif
+// Earlier GLSL doesn't support mix() with bvec
+#if __VERSION__ >= 130
vec3 srgb_compand(vec3 v)
{
return mix(1.055 * pow(v, vec3(1.0/2.4)) - vec3(0.055), v * 12.92,
lessThanEqual(v, vec3(0.0031308)));
}
+#endif
#!section vertex_all