diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-02-14 20:11:47 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-02-14 20:11:47 +0400 |
commit | adbd84c320d8b0781e97d09055f6cde4920b79f8 (patch) | |
tree | 4df5496bd2d96a0115aa45526555097f73caad3c /intern/cycles/render/mesh.cpp | |
parent | a47af30561ea9b0b2933a4af202a560b3576ee11 (diff) |
Fix #34121: OSL + persistent images option was not freeing shader memory properly,
causing memory to increase continuously during animation render.
Diffstat (limited to 'intern/cycles/render/mesh.cpp')
-rw-r--r-- | intern/cycles/render/mesh.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 57776e4cfa6..3a6fba32b34 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -966,6 +966,14 @@ void MeshManager::device_free(Device *device, DeviceScene *dscene) dscene->attributes_map.clear(); dscene->attributes_float.clear(); dscene->attributes_float3.clear(); + + OSLGlobals *og = (OSLGlobals*)device->osl_memory(); + + if(og) { + og->object_name_map.clear(); + og->attribute_map.clear(); + og->object_names.clear(); + } } void MeshManager::tag_update(Scene *scene) |