Fix T63415: no Cycles displacement update when updating OSL code
[blender.git] / intern / cycles / render / graph.cpp
index c284c64..e5fd39f 100644 (file)
@@ -721,6 +721,13 @@ void ShaderGraph::compute_displacement_hash()
       int link_id = (input->link) ? input->link->parent->id : 0;
       md5.append((uint8_t *)&link_id, sizeof(link_id));
     }
+
+    if (node->special_type == SHADER_SPECIAL_TYPE_OSL) {
+      /* Hash takes into account socket values, to detect changes
+       * in the code of the node we need an exception. */
+      OSLNode *oslnode = static_cast<OSLNode *>(node);
+      md5.append(oslnode->bytecode_hash);
+    }
   }
 
   displacement_hash = md5.get_hex();