blender/intern/cycles
Lukas Stockner 4bde68cdd6 Cycles: Compress GPU kernels to reduce file size
Precompiled Cycles kernels make up a considerable fraction of the total size of
Blender builds nowadays. As we add more features and support for more
architectures, this will only continue to increase.

However, since these kernels tend to be quite compressible, we can save a lot
of storage by storing them in compressed form and decompressing the required
kernel(s) during loading.

By using Zstandard compression with a high level, we can get decent compression
ratios (~5x for the current kernels) while keeping decompression time low
(about 30ms in the worse case in my tests). And since we already require zstd
for Blender, this doesn't introduce a new dependency.

While the main improvement is to the size of the extracted Blender installation
(which is reduced by ~400-500MB currently), this also shrinks the download on
Windows, since .zip's deflate compression is less effective. It doesn't help on
Linux since we're already using .tar.xz there, but the smaller installed size
is still a good thing.

See #123522 for initial discussion.

Pull Request: https://projects.blender.org/blender/blender/pulls/123557
2024-06-23 00:52:30 +02:00
..
app Fix: Cycles standalone build failures 2024-06-04 19:04:29 +02:00
blender I18n: Extract and disambiguate a few messages 2024-06-13 12:15:55 +02:00
bvh Fix: Compiler warning about format string 2024-06-21 12:29:02 +02:00
cmake Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
device Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
doc License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
graph Fix #113777: Cycles IES texture not working for sphere lights 2023-10-18 20:40:07 +02:00
hydra Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
integrator Fix #123528: Cycles viewport denoiser not using GPU for CPU render 2024-06-21 14:06:50 +02:00
kernel Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
scene Cleanup: Correct Cycles code comment 2024-06-19 10:42:13 +02:00
session Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
subd Cleanup: use braces for sources in intern/ 2023-09-17 09:05:40 +10:00
test Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
util Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
CMakeLists.txt Extensions: Support online extensions and move add-ons outside Blender 2024-05-15 19:26:29 +02:00