diff options
author | Jan Ekström <jeebjp@gmail.com> | 2018-05-31 23:46:08 +0300 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-07-08 16:49:23 +0300 |
commit | 1a893e8257236b3beca80c0f53d7b6b972fede5c (patch) | |
tree | eb7cdcd9724da282f7cde7eb1b65c71e53b8ed54 | |
parent | 93ec08cc7f2122f365469d8eb82b9bfbdbb2c4f8 (diff) | |
download | mpv-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.rst | 9 | ||||
-rw-r--r-- | video/out/gpu/video.c | 2 |
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") |