1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-22 07:46:55 +00:00
mpv/video/out
Bin Jin ca2f193671 vo_gpu: implement error diffusion for dithering
This is a straightforward parallel implementation of error diffusion
algorithms in compute shader. Basically we use single work group with
maximal possible size to process the whole image. After a shift
mapping we are able to process all pixels column by column.

A large ring buffer are allocated in shared memory to speed things up.
However the size of required shared memory depends linearly on the
height of video window (or screen height in fullscreen mode). In case
there is no enough shared memory, it will fallback to `--dither=fruit`.

The maximal allowed work group size is hardcoded as 1024. Ideally we
could query `GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS`. But for whatever
reason, it seems most high end card from nvidia and amd support only
the minimal required value, so I guess we can stick to it for now.
2019-06-16 11:19:44 +02:00
..
cocoa cocoa: fix drawing on macOS 10.14 2018-11-13 21:14:29 +02:00
cocoa-cb cocoa-cb: remove all force unwrappings of optionals 2019-04-25 23:02:19 +03:00
d3d11 vo_gpu: d3d11: use the SPIRV-Cross C API directly 2019-06-12 23:03:55 +03:00
gpu vo_gpu: implement error diffusion for dithering 2019-06-16 11:19:44 +02:00
hwdec vo/gpu: hwdec_cuda: Refactor gpu api specific code into separate files 2019-05-03 18:02:18 +02:00
opengl drm_common: Add proper help option to drm-mode 2019-05-04 14:17:11 +02:00
placebo vo/gpu: ra_pl: Add helper to get pl_fmt from ra_format 2019-04-21 23:55:22 +03:00
vulkan vo_gpu: vulkan: Add back context_win for libplacebo 2019-04-21 23:55:22 +03:00
win32
aspect.c
aspect.h
bitmap_packer.c
bitmap_packer.h
cocoa_cb_common.swift cocoa-cb: fix quit in fs with none native fs 2019-05-11 12:54:44 +02:00
cocoa_common.h
cocoa_common.m {mac,cocoa}: trim trailing null out of macosx_icon when loading it 2018-10-02 00:20:43 +03:00
d3d_shader_420p.h
d3d_shader_yuv.hlsl
dither.c
dither.h
dr_helper.c vo: move DR helper code to a separate source file 2018-04-29 02:21:32 +03:00
dr_helper.h vo: move DR helper code to a separate source file 2018-04-29 02:21:32 +03:00
drm_atomic.c drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_atomic.h drm: rename plane options to better, invariant, names 2018-12-01 15:42:20 +02:00
drm_common.c drm_common: Support --drm-mode=<preferred|highest|N|WxH[@R]> 2019-05-04 14:17:11 +02:00
drm_common.h drm_common: Don't export functions only being used internally 2019-05-04 14:17:11 +02:00
drm_prime.c
drm_prime.h
filter_kernels.c
filter_kernels.h
libmpv.h vo_libmpv: support render performance data 2018-11-13 20:43:29 +02:00
vo_caca.c
vo_direct3d.c
vo_drm.c drm_common: Add proper help option to drm-mode 2019-05-04 14:17:11 +02:00
vo_gpu.c vo: use a struct for vsync feedback stuff 2018-12-06 10:30:25 +01:00
vo_image.c
vo_lavc.c encode: get rid of the output packet queue 2018-05-03 01:08:44 +03:00
vo_libmpv.c vo_libmpv: fix null pointer dereference 2019-03-11 01:55:59 +02:00
vo_mediacodec_embed.c vo_mediacodec_embed: fix forgotten VO_CAP_NOREDRAW→VO_CAP_NORETAIN 2018-02-20 01:59:20 +02:00
vo_null.c
vo_rpi.c vo_gpu: add internal ability to skip osd/subs for rendering 2018-02-11 17:45:51 -08:00
vo_sdl.c vo_sdl: add support for screensaver VOCTRL's 2018-06-02 23:34:38 +03:00
vo_tct.c sws_utils: don't force callers to provide option struct 2018-01-18 00:59:07 -08:00
vo_vaapi.c
vo_vdpau.c vo_vdpau: fix resizing and rotation problems 2018-03-08 17:12:32 -08:00
vo_x11.c vo_x11: fix return value in resize() error paths 2018-11-17 00:53:56 +01:00
vo_xv.c
vo.c vo, vo_gpu, glx: correct GLX_OML_sync_control usage 2018-12-06 10:32:27 +01:00
vo.h vo, vo_gpu, glx: correct GLX_OML_sync_control usage 2018-12-06 10:32:27 +01:00
w32_common.c w32_common: avoid unnecessary sprintfs 2019-05-10 20:47:05 +10:00
w32_common.h
wayland_common.c wayland: fix segfault on uninit 2019-05-26 11:09:16 +02:00
wayland_common.h wayland_common: rename “shell” into “wm_base” 2019-02-17 23:44:34 +02:00
win_state.c video: change some remaining vo_opengl mentions to vo_gpu 2018-01-20 14:43:49 -08:00
win_state.h
x11_common.c x11: fix cursor hiding initial state 2019-03-16 21:17:32 +01:00
x11_common.h x11: fix cursor hiding initial state 2019-03-16 21:17:32 +01:00