Blender Git Loki
Git Commits -> Revision 4c7bcb1
Revision 4c7bcb1 by Michael Jones (lineart-shadow) December 8, 2021, 06:53 (GMT) |
Cycles: Metal host-side code This patch adds the Metal host-side code: - Add all core host-side Metal backend files (device_impl, queue, etc) - Add MetalRT BVH setup files - Integrate with Cycles device enumeration code - Revive `path_source_replace_includes` in util/path (required for MSL compilation) This patch also includes a couple of small kernel-side fixes: - Add an implementation of `lgammaf` for Metal [Nemes, Gerg? (2010), "New asymptotic expansion for the Gamma function", Archiv der Mathematik](https://users.renyi.hu/~gergonemes/) - include "work_stealing.h" inside the Metal context class because it accesses state now Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13423 |
Commit Details:
Full Hash: 4c7bcb12eca84ae7fa215f318a5ac59d98c4508b
Parent Commit: ab2223e
Committed By: YimingWu
Lines Changed: +4355, -32
14 Added Paths:
/intern/cycles/bvh/metal.h (+35, -0) (View)
/intern/cycles/bvh/metal.mm (+33, -0) (View)
/intern/cycles/device/metal/bvh.h (+66, -0) (View)
/intern/cycles/device/metal/bvh.mm (+813, -0) (View)
/intern/cycles/device/metal/device.h (+37, -0) (View)
/intern/cycles/device/metal/device.mm (+136, -0) (View)
/intern/cycles/device/metal/device_impl.h (+166, -0) (View)
/intern/cycles/device/metal/device_impl.mm (+1008, -0) (View)
/intern/cycles/device/metal/kernel.h (+168, -0) (View)
/intern/cycles/device/metal/kernel.mm (+523, -0) (View)
/intern/cycles/device/metal/queue.h (+97, -0) (View)
/intern/cycles/device/metal/queue.mm (+602, -0) (View)
/intern/cycles/device/metal/util.h (+101, -0) (View)
/intern/cycles/device/metal/util.mm (+241, -0) (View)
/intern/cycles/bvh/metal.mm (+33, -0) (View)
/intern/cycles/device/metal/bvh.h (+66, -0) (View)
/intern/cycles/device/metal/bvh.mm (+813, -0) (View)
/intern/cycles/device/metal/device.h (+37, -0) (View)
/intern/cycles/device/metal/device.mm (+136, -0) (View)
/intern/cycles/device/metal/device_impl.h (+166, -0) (View)
/intern/cycles/device/metal/device_impl.mm (+1008, -0) (View)
/intern/cycles/device/metal/kernel.h (+168, -0) (View)
/intern/cycles/device/metal/kernel.mm (+523, -0) (View)
/intern/cycles/device/metal/queue.h (+97, -0) (View)
/intern/cycles/device/metal/queue.mm (+602, -0) (View)
/intern/cycles/device/metal/util.h (+101, -0) (View)
/intern/cycles/device/metal/util.mm (+241, -0) (View)
20 Modified Paths:
/intern/cycles/blender/addon/engine.py (+1, -1) (Diff)
/intern/cycles/blender/addon/properties.py (+7, -5) (Diff)
/intern/cycles/blender/addon/ui.py (+5, -0) (Diff)
/intern/cycles/blender/CMakeLists.txt (+5, -0) (Diff)
/intern/cycles/blender/device.cpp (+4, -0) (Diff)
/intern/cycles/blender/python.cpp (+7, -2) (Diff)
/intern/cycles/bvh/bvh.cpp (+8, -2) (Diff)
/intern/cycles/bvh/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/cmake/external_libs.cmake (+14, -0) (Diff)
/intern/cycles/device/CMakeLists.txt (+38, -11) (Diff)
/intern/cycles/device/device.cpp (+39, -1) (Diff)
/intern/cycles/device/device.h (+3, -0) (Diff)
/intern/cycles/device/memory.h (+1, -0) (Diff)
/intern/cycles/device/multi/device.cpp (+3, -0) (Diff)
/intern/cycles/kernel/device/gpu/kernel.h (+4, -3) (Diff)
/intern/cycles/kernel/device/metal/compat.h (+1, -1) (Diff)
/intern/cycles/kernel/device/metal/kernel.metal (+6, -6) (Diff)
/intern/cycles/util/math.h (+14, -0) (Diff)
/intern/cycles/util/path.cpp (+164, -0) (Diff)
/intern/cycles/util/path.h (+3, -0) (Diff)
/intern/cycles/blender/addon/properties.py (+7, -5) (Diff)
/intern/cycles/blender/addon/ui.py (+5, -0) (Diff)
/intern/cycles/blender/CMakeLists.txt (+5, -0) (Diff)
/intern/cycles/blender/device.cpp (+4, -0) (Diff)
/intern/cycles/blender/python.cpp (+7, -2) (Diff)
/intern/cycles/bvh/bvh.cpp (+8, -2) (Diff)
/intern/cycles/bvh/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/cmake/external_libs.cmake (+14, -0) (Diff)
/intern/cycles/device/CMakeLists.txt (+38, -11) (Diff)
/intern/cycles/device/device.cpp (+39, -1) (Diff)
/intern/cycles/device/device.h (+3, -0) (Diff)
/intern/cycles/device/memory.h (+1, -0) (Diff)
/intern/cycles/device/multi/device.cpp (+3, -0) (Diff)
/intern/cycles/kernel/device/gpu/kernel.h (+4, -3) (Diff)
/intern/cycles/kernel/device/metal/compat.h (+1, -1) (Diff)
/intern/cycles/kernel/device/metal/kernel.metal (+6, -6) (Diff)
/intern/cycles/util/math.h (+14, -0) (Diff)
/intern/cycles/util/path.cpp (+164, -0) (Diff)
/intern/cycles/util/path.h (+3, -0) (Diff)