Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_python.cpp
| Show First 20 Lines • Show All 494 Lines • ▼ Show 20 Lines | #ifdef WIN32 | ||||
| putenv("CYCLES_OPENCL_TEST=NONE"); | putenv("CYCLES_OPENCL_TEST=NONE"); | ||||
| #else | #else | ||||
| setenv("CYCLES_OPENCL_TEST", "NONE", 1); | setenv("CYCLES_OPENCL_TEST", "NONE", 1); | ||||
| #endif | #endif | ||||
| Py_RETURN_NONE; | Py_RETURN_NONE; | ||||
| } | } | ||||
| #endif | #endif | ||||
| static PyObject *debug_flags_update_func(PyObject * /*self*/, PyObject *args) | |||||
| { | |||||
| PyObject *pyscene; | |||||
| if(!PyArg_ParseTuple(args, "O", &pyscene)) { | |||||
| return NULL; | |||||
| } | |||||
| PointerRNA sceneptr; | |||||
| RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyscene), &sceneptr); | |||||
| BL::Scene b_scene(sceneptr); | |||||
| DebugFlagsRef flags = DebugFlags(); | |||||
| PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles"); | |||||
| /* Synchronize CPU flags. */ | |||||
| flags.cpu.avx2 = get_boolean(cscene, "debug_use_cpu_avx2"); | |||||
| flags.cpu.avx = get_boolean(cscene, "debug_use_cpu_avx"); | |||||
| flags.cpu.sse41 = get_boolean(cscene, "debug_use_cpu_sse41"); | |||||
| flags.cpu.sse3 = get_boolean(cscene, "debug_use_cpu_sse3"); | |||||
| flags.cpu.sse2 = get_boolean(cscene, "debug_use_cpu_sse2"); | |||||
| /* Synchronize OpenCL kernel type. */ | |||||
| switch(get_enum(cscene, "debug_opencl_kernel_type")) { | |||||
| case 0: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_DEFAULT; | |||||
| break; | |||||
| case 1: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_MEGA; | |||||
| break; | |||||
| case 2: | |||||
| flags.opencl.kernel_type = DebugFlags::OpenCL::KERNEL_SPLIT; | |||||
| break; | |||||
| } | |||||
| /* Synchronize OpenCL device type. */ | |||||
| switch(get_enum(cscene, "debug_opencl_kernel_type")) { | |||||
| case 0: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_NONE; | |||||
| break; | |||||
| case 1: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ALL; | |||||
| break; | |||||
| case 2: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_DEFAULT; | |||||
| break; | |||||
| case 3: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_CPU; | |||||
| break; | |||||
| case 4: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_GPU; | |||||
| break; | |||||
| case 5: | |||||
| flags.opencl.device_type = DebugFlags::OpenCL::DEVICE_ACCELERATOR; | |||||
| break; | |||||
| } | |||||
| /* Synchronize other OpenCL flags. */ | |||||
| flags.opencl.debug = get_boolean(cscene, "debug_use_opencl_debug"); | |||||
| Device::tag_update(); | |||||
| Py_RETURN_NONE; | |||||
| } | |||||
| static PyObject *debug_flags_reset_func(PyObject * /*self*/, PyObject * /*args*/) | |||||
| { | |||||
| DebugFlags().reset(); | |||||
| Device::tag_update(); | |||||
| Py_RETURN_NONE; | |||||
| } | |||||
| static PyMethodDef methods[] = { | static PyMethodDef methods[] = { | ||||
| {"init", init_func, METH_VARARGS, ""}, | {"init", init_func, METH_VARARGS, ""}, | ||||
| {"create", create_func, METH_VARARGS, ""}, | {"create", create_func, METH_VARARGS, ""}, | ||||
| {"free", free_func, METH_O, ""}, | {"free", free_func, METH_O, ""}, | ||||
| {"render", render_func, METH_O, ""}, | {"render", render_func, METH_O, ""}, | ||||
| {"bake", bake_func, METH_VARARGS, ""}, | {"bake", bake_func, METH_VARARGS, ""}, | ||||
| {"draw", draw_func, METH_VARARGS, ""}, | {"draw", draw_func, METH_VARARGS, ""}, | ||||
| {"sync", sync_func, METH_O, ""}, | {"sync", sync_func, METH_O, ""}, | ||||
| {"reset", reset_func, METH_VARARGS, ""}, | {"reset", reset_func, METH_VARARGS, ""}, | ||||
| #ifdef WITH_OSL | #ifdef WITH_OSL | ||||
| {"osl_update_node", osl_update_node_func, METH_VARARGS, ""}, | {"osl_update_node", osl_update_node_func, METH_VARARGS, ""}, | ||||
| {"osl_compile", osl_compile_func, METH_VARARGS, ""}, | {"osl_compile", osl_compile_func, METH_VARARGS, ""}, | ||||
| #endif | #endif | ||||
| {"available_devices", available_devices_func, METH_NOARGS, ""}, | {"available_devices", available_devices_func, METH_NOARGS, ""}, | ||||
| {"system_info", system_info_func, METH_NOARGS, ""}, | {"system_info", system_info_func, METH_NOARGS, ""}, | ||||
| #ifdef WITH_OPENCL | #ifdef WITH_OPENCL | ||||
| {"opencl_disable", opencl_disable_func, METH_NOARGS, ""}, | {"opencl_disable", opencl_disable_func, METH_NOARGS, ""}, | ||||
| #endif | #endif | ||||
| {"debug_flags_update", debug_flags_update_func, METH_VARARGS, ""}, | |||||
| {"debug_flags_reset", debug_flags_reset_func, METH_NOARGS, ""}, | |||||
| {NULL, NULL, 0, NULL}, | {NULL, NULL, 0, NULL}, | ||||
| }; | }; | ||||
| static struct PyModuleDef module = { | static struct PyModuleDef module = { | ||||
| PyModuleDef_HEAD_INIT, | PyModuleDef_HEAD_INIT, | ||||
| "_cycles", | "_cycles", | ||||
| "Blender cycles render integration", | "Blender cycles render integration", | ||||
| -1, | -1, | ||||
| ▲ Show 20 Lines • Show All 108 Lines • Show Last 20 Lines | |||||