mpv/video/out/opengl
Niklas Haas ebe798a333 vo_opengl: increase 3DLUT accuracy at lower LUT sizes
This code had the exact same texture indexing bug that the original
scaler code had before the introduction of the LUT_POS macro to fix it.

We can re-use this same macro here, and the performance drop is
virtually entirely negligible. The benefit is greatly improved LUT
accuracy as the 3DLUT size decreases - in particular, the old LUT
started introducing more and more black crush the lower your LUT size is
(because the error was essentially an over-contrast bias, with a
magnitude linearly related to the lut size).

The new code improves black stability as the LUT size decreases, and
only at very low values (16 and below) do black levels start noticeably
getting affected (due to crude linearization of the nonlinear response
curve).

The default value of 3dlut-size is definitely generous enough for this
to make no difference out of the box, but it also causes no performance
drop at all on my machine so I see no harm in improving the logic.
Furthermore, this means we could easily decrease the default 3dlut size
in a future commit, perhaps even down to 64x64x64 as a default. (But
more testing is warranted here)
2016-07-25 10:26:45 +02:00
..
angle_dynamic.c
angle_dynamic.h
common.c vo_opengl: improve missing function warning 2016-06-22 21:55:00 +02:00
common.h vo_opengl: vdpau interop without RGB conversion 2016-06-19 19:58:40 +02:00
context.c
context.h vo_opengl: allow backends to provide callbacks for custom event loops 2016-07-20 20:42:30 +02:00
context_angle.c vo_opengl: angle: use WARP if there are no hw adapters 2016-07-12 20:26:41 +10:00
context_cocoa.c vo_opengl: use standard functions to retrieve display depth 2016-06-14 10:35:43 +02:00
context_drm_egl.c
context_dxinterop.c vo_opengl: dxinterop: render to gl->main_fb 2016-06-18 23:51:57 +10:00
context_rpi.c
context_rpi.h
context_w32.c vo_opengl: use standard functions to retrieve display depth 2016-06-14 10:35:43 +02:00
context_wayland.c wayland: port to the new wakeup/wait_events framework 2016-07-21 14:45:38 +02:00
context_x11.c x11: stop using vo.event_fd 2016-07-20 20:52:08 +02:00
context_x11egl.c x11: stop using vo.event_fd 2016-07-20 20:52:08 +02:00
egl_helpers.c vo_opengl: use standard functions to retrieve display depth 2016-06-14 10:35:43 +02:00
egl_helpers.h vo_opengl: use standard functions to retrieve display depth 2016-06-14 10:35:43 +02:00
formats.c
formats.h
header_fixes.h vo_opengl: manually add the GL_BACK_LEFT constant for GLES 2016-06-20 19:24:42 +02:00
hwdec.c video: remove d3d11 video processor use from OpenGL interop 2016-05-29 19:00:55 +02:00
hwdec.h vo_opengl: vdpau interop without RGB conversion 2016-06-19 19:58:40 +02:00
hwdec_d3d11egl.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_d3d11eglrgb.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_dxva2.c
hwdec_dxva2egl.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_dxva2gldx.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_osx.c videotoolbox: add yuv420p to --videotoolbox-format 2016-07-15 13:04:17 +02:00
hwdec_vaegl.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_vaglx.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
hwdec_vdpau.c vo_opengl: hwdec: reset hw_subfmt field 2016-07-15 13:04:17 +02:00
lcms.c vo_opengl: cleanup icc + runtime option changing behavior 2016-06-04 17:52:10 +02:00
lcms.h vo_opengl: cleanup icc + runtime option changing behavior 2016-06-04 17:52:10 +02:00
osd.c vo_opengl: remove caching GL_MAX_TEXTURE_SIZE value 2016-07-03 17:33:59 +02:00
osd.h
user_shaders.c vo_opengl: move eval_szexpr to user_shaders.c 2016-07-03 19:42:52 +02:00
user_shaders.h vo_opengl: move eval_szexpr to user_shaders.c 2016-07-03 19:42:52 +02:00
utils.c vo_opengl: use ringbuffer of PBOs 2016-07-03 16:34:32 +02:00
utils.h vo_opengl: use ringbuffer of PBOs 2016-07-03 16:34:32 +02:00
video.c vo_opengl: increase 3DLUT accuracy at lower LUT sizes 2016-07-25 10:26:45 +02:00
video.h vo_opengl: remove prescaling framework with superxbr prescaler 2016-06-18 19:17:28 +02:00
video_shaders.c csp: document deviations from the references where they occur 2016-07-05 19:16:49 +02:00
video_shaders.h vo_opengl: generalize HDR tone mapping mechanism 2016-07-03 19:42:52 +02:00