Cycles: Fix crash when rendering with OSL on multiple GPUs
The `MultiDevice` implementation of `get_cpu_osl_memory` returns a nullptr when there is no CPU device in the mix. As such access to that crashed in `update_osl_globals`. But that only updates maps that are not currently used on the GPU anyway, so can just skip that when the CPU is not used for rendering. Maniphest Tasks: T104216
This commit is contained in:
parent
87a923fdb6
commit
129093fbce
@ -306,6 +306,11 @@ void GeometryManager::update_osl_globals(Device *device, Scene *scene)
|
||||
{
|
||||
#ifdef WITH_OSL
|
||||
OSLGlobals *og = (OSLGlobals *)device->get_cpu_osl_memory();
|
||||
if (og == nullptr) {
|
||||
/* Can happen when rendering with multiple GPUs, but no CPU (in which case the name maps filled
|
||||
* below are not used anyway) */
|
||||
return;
|
||||
}
|
||||
|
||||
og->object_name_map.clear();
|
||||
og->object_names.clear();
|
||||
|
Loading…
Reference in New Issue
Block a user