diff options
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r-- | intern/cycles/blender/addon/properties.py | 12 | ||||
-rw-r--r-- | intern/cycles/blender/device.cpp | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 1afb321da3d..01e73d7ed03 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -1374,6 +1374,12 @@ class CyclesPreferences(bpy.types.AddonPreferences): default=False, ) + use_metalrt: BoolProperty( + name="MetalRT (Experimental)", + description="MetalRT for ray tracing uses less memory for scenes which use curves extensively, and can give better performance in specific cases. However this support is experimental and some scenes may render incorrectly", + default=False, + ) + def find_existing_device_entry(self, device): for device_entry in self.devices: if device_entry.id == device[2] and device_entry.type == device[1]: @@ -1519,6 +1525,12 @@ class CyclesPreferences(bpy.types.AddonPreferences): row.use_property_split = True row.prop(self, "peer_memory") + if compute_device_type == 'METAL': + row = layout.row() + row.use_property_split = True + row.prop(self, "use_metalrt") + + def draw(self, context): self.draw_impl(self.layout, context) diff --git a/intern/cycles/blender/device.cpp b/intern/cycles/blender/device.cpp index d39381ac6f1..d7feb7d66b2 100644 --- a/intern/cycles/blender/device.cpp +++ b/intern/cycles/blender/device.cpp @@ -118,6 +118,10 @@ DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scen device.has_peer_memory = false; } + if (get_boolean(cpreferences, "use_metalrt")) { + device.use_metalrt = true; + } + return device; } |