Cycles: network render code updated for latest changes and improved

This actually works somewhat now, although viewport rendering is broken and any
kind of network error or connection failure will kill Blender.

* Experimental WITH_CYCLES_NETWORK cmake option
* Networked Device is shown as an option next to CPU and GPU Compute
* Various updates to work with the latest Cycles code
* Locks and thread safety for RPC calls and tiles
* Refactored pointer mapping code
* Fix error in CPU brand string retrieval code

This includes work by Doug Gale, Martijn Berger and Brecht Van Lommel.

Reviewers: brecht

Differential Revision: http://developer.blender.org/D36
This commit is contained in:
2013-12-07 02:29:53 +01:00
committed by Brecht Van Lommel
parent 5c07f62fab
commit 85a0c5d4e1
22 changed files with 490 additions and 152 deletions

View File

@@ -482,12 +482,34 @@ void *CCL_python_module_init()
Py_INCREF(Py_False);
#endif
#ifdef WITH_NETWORK
PyModule_AddObject(mod, "with_network", Py_True);
Py_INCREF(Py_True);
#else /* WITH_NETWORK */
PyModule_AddObject(mod, "with_network", Py_False);
Py_INCREF(Py_False);
#endif /* WITH_NETWORK */
return (void*)mod;
}
CCLDeviceInfo *CCL_compute_device_list(int opencl)
CCLDeviceInfo *CCL_compute_device_list(int device_type)
{
ccl::DeviceType type = (opencl)? ccl::DEVICE_OPENCL: ccl::DEVICE_CUDA;
ccl::DeviceType type;
switch(device_type) {
case 0:
type = ccl::DEVICE_CUDA;
break;
case 1:
type = ccl::DEVICE_OPENCL;
break;
case 2:
type = ccl::DEVICE_NETWORK;
break;
default:
type = ccl::DEVICE_NONE;
break;
}
return ccl::compute_device_list(type);
}