summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Ekström <jeebjp@gmail.com>2018-05-31 23:46:08 +0300
committerJan Ekström <jeebjp@gmail.com>2018-07-08 16:49:23 +0300
commit1a893e8257236b3beca80c0f53d7b6b972fede5c (patch)
treeeb7cdcd9724da282f7cde7eb1b65c71e53b8ed54
parent93ec08cc7f2122f365469d8eb82b9bfbdbb2c4f8 (diff)
downloadmpv-1a893e8257236b3beca80c0f53d7b6b972fede5c.tar.bz2
mpv-1a893e8257236b3beca80c0f53d7b6b972fede5c.tar.xz
gpu: prefer 16bit floating point FBO formats to 16bit integer ones
According to earlier discussions, this can improve visual quality. This only changes the preferred order of the formats, not the formats themselves.
-rw-r--r--DOCS/man/options.rst9
-rw-r--r--video/out/gpu/video.c2
2 files changed, 7 insertions, 4 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 7162e6ecf0..e03f783b90 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -5005,9 +5005,12 @@ The following video options are currently all specific to ``--vo=gpu`` and
Selects the internal format of textures used for FBOs. The format can
influence performance and quality of the video output. ``fmt`` can be one
of: rgb8, rgb10, rgb10_a2, rgb16, rgb16f, rgb32f, rgba12, rgba16, rgba16f,
- rgba16hf, rgba32f. Default: ``auto``, which maps to rgba16 on desktop GL,
- and rgba16f or rgb10_a2 on GLES (e.g. ANGLE), unless GL_EXT_texture_norm16
- is available.
+ rgba16hf, rgba32f.
+
+ Default: ``auto``, which first attempts to utilize 16bit float
+ (rgba16f, rgba16hf), and falls back to rgba16 if those are not available.
+ Finally, attempts to utilize rgb10_a2 or rgba8 if all of the previous formats
+ are not available.
``--gamma-factor=<0.1..2.0>``
Set an additional raw gamma factor (default: 1.0). If gamma is adjusted in
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index 3fb460469d..7594c2b04a 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -3519,7 +3519,7 @@ static void check_gl_features(struct gl_video *p)
bool have_ssbo = ra->caps & RA_CAP_BUF_RW;
bool have_fragcoord = ra->caps & RA_CAP_FRAGCOORD;
- const char *auto_fbo_fmts[] = {"rgba16", "rgba16f", "rgba16hf",
+ const char *auto_fbo_fmts[] = {"rgba16f", "rgba16hf", "rgba16",
"rgb10_a2", "rgba8", 0};
const char *user_fbo_fmts[] = {p->opts.fbo_format, 0};
const char **fbo_fmts = user_fbo_fmts[0] && strcmp(user_fbo_fmts[0], "auto")