diff options
author | Niklas Haas <git@haasn.xyz> | 2017-07-17 21:39:06 +0200 |
---|---|---|
committer | Niklas Haas <git@haasn.xyz> | 2017-07-24 17:19:31 +0200 |
commit | b196cadf9f9f6ea210db9236c2b26523a9a2719f (patch) | |
tree | 7faa5a77c65d84e45c074eb248fe0b54a62288ad /video/out/opengl/utils.h | |
parent | aad6ba018a17eded2b3f4af2212e0123cfb29b79 (diff) | |
download | mpv-b196cadf9f9f6ea210db9236c2b26523a9a2719f.tar.bz2 mpv-b196cadf9f9f6ea210db9236c2b26523a9a2719f.tar.xz |
vo_opengl: support HDR peak detection
This is done via compute shaders. As a consequence, the tone mapping
algorithms had to be rewritten to compute their known constants in GLSL
(ahead of time), instead of doing it once. Didn't affect performance.
Using shmem/SSBO atomics in this way is extremely fast on nvidia, but it
might be slow on other platforms. Needs testing.
Unfortunately, setting up the SSBO still requires OpenGL calls, which
means I can't have it in video_shaders.c, where it belongs. But I'll
defer worrying about that until the backend refactor, since then I'll be
breaking up the video/video_shaders structure anyway.
Diffstat (limited to 'video/out/opengl/utils.h')
-rw-r--r-- | video/out/opengl/utils.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/video/out/opengl/utils.h b/video/out/opengl/utils.h index 3dc7e5d72d..f2c405fa9a 100644 --- a/video/out/opengl/utils.h +++ b/video/out/opengl/utils.h @@ -149,6 +149,8 @@ void gl_sc_uniform_tex(struct gl_shader_cache *sc, char *name, GLenum target, void gl_sc_uniform_tex_ui(struct gl_shader_cache *sc, char *name, GLuint texture); void gl_sc_uniform_image2D(struct gl_shader_cache *sc, char *name, GLuint texture, GLuint iformat, GLenum access); +void gl_sc_ssbo(struct gl_shader_cache *sc, char *name, GLuint ssbo, + char *format, ...); void gl_sc_uniform_f(struct gl_shader_cache *sc, char *name, GLfloat f); void gl_sc_uniform_i(struct gl_shader_cache *sc, char *name, GLint f); void gl_sc_uniform_vec2(struct gl_shader_cache *sc, char *name, GLfloat f[2]); |