1
0
Fork 0

Merge pull request #100364 from RandomShaper/fix_mtl_mt_deadlock_4.3

[4.3] Fix deadlock possibility in threaded load of materials
This commit is contained in:
Rémi Verschelde 2024-12-14 18:15:19 +01:00 committed by GitHub
commit 63e0fb55f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 3 deletions

View File

@ -157,9 +157,13 @@ void CanvasItemMaterial::flush_changes() {
}
void CanvasItemMaterial::_queue_shader_change() {
if (!_is_initialized()) {
return;
}
MutexLock lock(material_mutex);
if (_is_initialized() && !element.in_list()) {
if (!element.in_list()) {
dirty_materials.add(&element);
}
}

View File

@ -1886,9 +1886,13 @@ void BaseMaterial3D::flush_changes() {
}
void BaseMaterial3D::_queue_shader_change() {
if (!_is_initialized()) {
return;
}
MutexLock lock(material_mutex);
if (_is_initialized() && !element.in_list()) {
if (!element.in_list()) {
dirty_materials.add(&element);
}
}

View File

@ -1164,9 +1164,13 @@ void ParticleProcessMaterial::flush_changes() {
}
void ParticleProcessMaterial::_queue_shader_change() {
if (!_is_initialized()) {
return;
}
MutexLock lock(material_mutex);
if (_is_initialized() && !element.in_list()) {
if (!element.in_list()) {
dirty_materials.add(&element);
}
}