summaryrefslogtreecommitdiffstats
path: root/TOOLS/appveyor-install.sh
diff options
context:
space:
mode:
authorBin Jin <bjin@ctrl-d.org>2019-03-18 11:33:14 +0000
committersfan5 <sfan5@live.de>2019-06-16 11:19:44 +0200
commitc9e7473d67893d9248bedf63530a1e0325a3036a (patch)
tree65b2922e49877226412bb010aeae6d7ba83b89de /TOOLS/appveyor-install.sh
parentf6fd127fe8f368c1d7484a4a60bab01f10e17a3b (diff)
downloadmpv-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 'TOOLS/appveyor-install.sh')
0 files changed, 0 insertions, 0 deletions