diff options
Diffstat (limited to 'intern/cycles/blender/python.cpp')
-rw-r--r-- | intern/cycles/blender/python.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/intern/cycles/blender/python.cpp b/intern/cycles/blender/python.cpp index 012122cf9e3..024dae306b0 100644 --- a/intern/cycles/blender/python.cpp +++ b/intern/cycles/blender/python.cpp @@ -906,16 +906,18 @@ static PyObject *enable_print_stats_func(PyObject * /*self*/, PyObject * /*args* static PyObject *get_device_types_func(PyObject * /*self*/, PyObject * /*args*/) { vector<DeviceType> device_types = Device::available_types(); - bool has_cuda = false, has_optix = false, has_hip = false; + bool has_cuda = false, has_optix = false, has_hip = false, has_metal = false; foreach (DeviceType device_type, device_types) { has_cuda |= (device_type == DEVICE_CUDA); has_optix |= (device_type == DEVICE_OPTIX); has_hip |= (device_type == DEVICE_HIP); + has_metal |= (device_type == DEVICE_METAL); } - PyObject *list = PyTuple_New(3); + PyObject *list = PyTuple_New(4); PyTuple_SET_ITEM(list, 0, PyBool_FromLong(has_cuda)); PyTuple_SET_ITEM(list, 1, PyBool_FromLong(has_optix)); PyTuple_SET_ITEM(list, 2, PyBool_FromLong(has_hip)); + PyTuple_SET_ITEM(list, 3, PyBool_FromLong(has_metal)); return list; } @@ -944,6 +946,9 @@ static PyObject *set_device_override_func(PyObject * /*self*/, PyObject *arg) else if (override == "HIP") { BlenderSession::device_override = DEVICE_MASK_HIP; } + else if (override == "METAL") { + BlenderSession::device_override = DEVICE_MASK_METAL; + } else { printf("\nError: %s is not a valid Cycles device.\n", override.c_str()); Py_RETURN_FALSE; |