From 2fe43a3bd80da0fe843010e55519a19ac6112ff2 Mon Sep 17 00:00:00 2001 From: Igor Kordiukiewicz Date: Thu, 27 Jan 2022 18:56:22 +0100 Subject: Fix SelfList::remove error when animating Sprite3D --- scene/resources/material.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index f3e5ece1f9..b74f44c52f 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -2215,7 +2215,9 @@ BaseMaterial3D::EmissionOperator BaseMaterial3D::get_emission_operator() const { RID BaseMaterial3D::get_shader_rid() const { MutexLock lock(material_mutex); - ((BaseMaterial3D *)this)->_update_shader(); + if (element.in_list()) { // _is_shader_dirty() would create anoder mutex lock + ((BaseMaterial3D *)this)->_update_shader(); + } ERR_FAIL_COND_V(!shader_map.has(current_key), RID()); return shader_map[current_key].shader; } -- cgit v1.2.3