Blender Git Commit Log

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)

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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021