blender/intern
Brecht Van Lommel 523bbf7065 Cycles: generalize shader sorting / locality heuristic to all GPU devices
This was added for Metal, but also gives good results with CUDA and OptiX.
Also enable it for future Apple GPUs instead of only M1 and M2, since this has
been shown to help across multiple GPUs so the better bet seems to enable
rather than disable it.

Also moves some of the logic outside of the Metal device code, and always
enables the code in the kernel since other devices don't do dynamic compile.

Time per sample with OptiX + RTX A6000:
                                         new                  old
barbershop_interior                      0.0730s              0.0727s
bmw27                                    0.0047s              0.0053s
classroom                                0.0428s              0.0464s
fishy_cat                                0.0102s              0.0108s
junkshop                                 0.0366s              0.0395s
koro                                     0.0567s              0.0578s
monster                                  0.0206s              0.0223s
pabellon                                 0.0158s              0.0174s
sponza                                   0.0088s              0.0100s
spring                                   0.1267s              0.1280s
victor                                   0.0524s              0.0531s
wdas_cloud                               0.0817s              0.0816s

Ref D15331, T87836
2022-07-15 13:42:47 +02:00
..
atomic Intern/atomic: Fix const qualifier for atomic_load_ptr. 2022-05-31 21:05:15 +08:00
audaspace CMake: fix AUDASPACE disabling WITH_PYTHON for Blender 2022-05-20 11:18:49 +10:00
clog File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
cycles Cycles: generalize shader sorting / locality heuristic to all GPU devices 2022-07-15 13:42:47 +02:00
dualcon Cleanup: Compilation warnings 2022-03-18 12:07:08 +01:00
eigen File headers: manually convert files to use SPDX headers 2022-02-11 15:15:49 +11:00
ffmpeg Merge branch 'blender-v3.1-release' 2022-02-22 17:34:07 +01:00
ghost GHOST/Wayland: partial support for updating the UI scale 2022-07-15 15:42:24 +10:00
glew-mx File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
guardedalloc Cleanup: '*' prefix C-comment blocks 2022-06-01 15:38:48 +10:00
iksolver Cleanup: spelling in comments, capitalize tags 2022-05-13 09:29:25 +10:00
itasc Cleanup: remove argument to doxygen \file 2022-03-25 12:10:30 +11:00
libc_compat File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
libmv Cleanup: spelling in comments, capitalize tags 2022-05-13 09:29:25 +10:00
locale File headers: add missing copyright, add MIT to SPDX licenses 2022-02-11 14:56:03 +11:00
mantaflow Mantaflow: disable call to MANTA::terminateMantaflow 2022-06-29 17:34:39 +10:00
memutil File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
mikktspace Mikktspace: Reduce number of data queries to caller 2022-04-23 15:09:41 +02:00
opencolorio Cleanup: clarify what is scene linear color space in conversion conversion 2022-05-23 15:34:50 +02:00
opensubdiv Merge remote-tracking branch 'origin/blender-v3.2-release' 2022-05-31 12:15:37 +02:00
openvdb File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
quadriflow File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
rigidbody Cleanup: spelling in comments, capitalize tags 2022-05-13 09:29:25 +10:00
sky Cleanup: spelling in comments 2022-06-30 12:14:22 +10:00
utfconv Cleanup: use C++ comments for disabled code 2022-04-13 13:47:04 +10:00
wayland_dynload GHOST/Wayland: support dynamic loading libraries for Wayland 2022-07-06 15:30:47 +10:00
CMakeLists.txt GHOST/Wayland: support dynamic loading libraries for Wayland 2022-07-06 15:30:47 +10:00