summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/video.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-04-08 16:38:56 +0200
committerwm4 <wm4@nowhere>2017-04-08 16:43:56 +0200
commit759ac6cc93bd1895a8f9233b8e9256889bdef6aa (patch)
tree86f3a5c58a695f936f06e62c754dc29286479851 /video/out/opengl/video.c
parente7940ddbf35cd752bbac793c0896463c2c58e599 (diff)
downloadmpv-759ac6cc93bd1895a8f9233b8e9256889bdef6aa.tar.bz2
mpv-759ac6cc93bd1895a8f9233b8e9256889bdef6aa.tar.xz
vo_opengl: add option for caching shaders on disk
Mostly because of ANGLE (sadly). The implementation became unpleasantly big, but at least it's relatively self-contained. I'm not sure to what degree shaders from different drivers are compatible as in whether a driver would randomly misbehave if it's fed a binary created by another driver. The useless binayFormat parameter won't help it, as they can probably easily clash. As usual, OpenGL is pretty shit here.
Diffstat (limited to 'video/out/opengl/video.c')
-rw-r--r--video/out/opengl/video.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index 38d3d413e2..251a3d4f8b 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -389,7 +389,7 @@ const struct m_sub_options gl_video_conf = {
OPT_SUBSTRUCT("", icc_opts, mp_icc_conf, 0),
OPT_CHOICE("opengl-early-flush", early_flush, 0,
({"no", 0}, {"yes", 1}, {"auto", -1})),
-
+ OPT_STRING("opengl-shader-cache-dir", shader_cache_dir, 0),
{0}
},
.size = sizeof(struct gl_video_opts),
@@ -3362,6 +3362,7 @@ static void reinit_from_options(struct gl_video *p)
check_gl_features(p);
uninit_rendering(p);
+ gl_sc_set_cache_dir(p->sc, p->global, p->opts.shader_cache_dir);
gl_video_setup_hooks(p);
reinit_osd(p);