diff options
author | Bin Jin <bjin@ctrl-d.org> | 2019-03-18 11:33:14 +0000 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2019-06-16 11:19:44 +0200 |
commit | c9e7473d67893d9248bedf63530a1e0325a3036a (patch) | |
tree | 65b2922e49877226412bb010aeae6d7ba83b89de /.github | |
parent | f6fd127fe8f368c1d7484a4a60bab01f10e17a3b (diff) | |
download | mpv-c9e7473d67893d9248bedf63530a1e0325a3036a.tar.bz2 mpv-c9e7473d67893d9248bedf63530a1e0325a3036a.tar.xz |
vo_gpu: process three component together in error diffusion
This started as a desperate attempt to lower the memory requirement
of error diffusion, but later it turns out that this change also
improved the rendering performance a lot (by 40% as I tested).
Errors was stored in three uint before this change, each with 24bit
precision. This change encoded them into a single uint, each with 8bit
precision. This reduced the shared memory usage, as well as number of
atomic operations, all by three times.
Before this change, with the minimum required 32kb shared memory, only
the `simple` kernel can be used to render 1080p video, which is mostly
useless compare to `--dither=fruit`. After this change, 32kb can
handle `burkes` kernel for 1080p, or `sierra-lite` for 4K resolution.
Diffstat (limited to '.github')
0 files changed, 0 insertions, 0 deletions