summaryrefslogtreecommitdiffstats
path: root/video/out/gpu/video.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gpu/video.c')
-rw-r--r--video/out/gpu/video.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index fd870a2ffc..9cc889b401 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -1719,7 +1719,8 @@ static void pass_dispatch_sample_polar(struct gl_video *p, struct scaler *scaler
fallback:
// Fall back to regular polar shader when compute shaders are unsupported
// or the kernel is too big for shmem
- pass_sample_polar(p->sc, scaler, img.components, p->ra->glsl_version);
+ pass_sample_polar(p->sc, scaler, img.components,
+ p->ra->caps & RA_CAP_GATHER);
}
// Sample from image, with the src rectangle given by it.
@@ -3465,6 +3466,19 @@ static void check_gl_features(struct gl_video *p)
p->opts.compute_hdr_peak = 0;
MP_WARN(p, "Disabling HDR peak computation (no compute shaders).\n");
}
+ if (!(ra->caps & RA_CAP_FRAGCOORD) && p->opts.dither_depth >= 0 &&
+ p->opts.dither_algo != DITHER_NONE)
+ {
+ p->opts.dither_algo = DITHER_NONE;
+ MP_WARN(p, "Disabling dithering (no gl_FragCoord).\n");
+ }
+ if (!(ra->caps & RA_CAP_FRAGCOORD) &&
+ p->opts.alpha_mode == ALPHA_BLEND_TILES)
+ {
+ p->opts.alpha_mode = ALPHA_BLEND;
+ // Verbose, since this is the default setting
+ MP_VERBOSE(p, "Disabling alpha checkerboard (no gl_FragCoord).\n");
+ }
}
static void init_gl(struct gl_video *p)