mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 21:51:22 +00:00 
			
		
		
		
	Add mutex when adding geometry instances to the dirty list in the Forward Clustered renderer
This commit is contained in:
		
							parent
							
								
									9f74f0f6c5
								
							
						
					
					
						commit
						a804556ab9
					
				
					 2 changed files with 7 additions and 3 deletions
				
			
		|  | @ -2824,7 +2824,9 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul | ||||||
| 						InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data); | 						InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data); | ||||||
| 
 | 
 | ||||||
| 						ERR_FAIL_NULL(geom->geometry_instance); | 						ERR_FAIL_NULL(geom->geometry_instance); | ||||||
|  | 						cull_data.cull->lock.lock(); | ||||||
| 						geom->geometry_instance->set_softshadow_projector_pairing(geom->softshadow_count > 0, geom->projector_count > 0); | 						geom->geometry_instance->set_softshadow_projector_pairing(geom->softshadow_count > 0, geom->projector_count > 0); | ||||||
|  | 						cull_data.cull->lock.unlock(); | ||||||
| 						idata.flags &= ~uint32_t(InstanceData::FLAG_GEOM_PROJECTOR_SOFTSHADOW_DIRTY); | 						idata.flags &= ~uint32_t(InstanceData::FLAG_GEOM_PROJECTOR_SOFTSHADOW_DIRTY); | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
|  | @ -2891,7 +2893,9 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul | ||||||
| 							sh[j] = sh[j].lerp(target_sh[j], MIN(1.0, lightmap_probe_update_speed)); | 							sh[j] = sh[j].lerp(target_sh[j], MIN(1.0, lightmap_probe_update_speed)); | ||||||
| 						} | 						} | ||||||
| 						ERR_FAIL_NULL(geom->geometry_instance); | 						ERR_FAIL_NULL(geom->geometry_instance); | ||||||
|  | 						cull_data.cull->lock.lock(); | ||||||
| 						geom->geometry_instance->set_lightmap_capture(sh); | 						geom->geometry_instance->set_lightmap_capture(sh); | ||||||
|  | 						cull_data.cull->lock.unlock(); | ||||||
| 						idata.instance->last_frame_pass = frame_number; | 						idata.instance->last_frame_pass = frame_number; | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2963,9 +2963,9 @@ void RenderingServer::init() { | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_depth", PROPERTY_HINT_RANGE, "16,512,1"), 64); | 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_depth", PROPERTY_HINT_RANGE, "16,512,1"), 64); | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/use_filter", PROPERTY_HINT_ENUM, "No (Faster),Yes (Higher Quality)"), 1); | 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/use_filter", PROPERTY_HINT_ENUM, "No (Faster),Yes (Higher Quality)"), 1); | ||||||
| 
 | 
 | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/update_iterations_per_frame", PROPERTY_HINT_RANGE, "0,1024,1"), 10); | 	GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/update_iterations_per_frame", PROPERTY_HINT_RANGE, "0,1024,1"), 10); | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/threaded_cull_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1"), 1000); | 	GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "rendering/limits/spatial_indexer/threaded_cull_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1"), 1000); | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/limits/forward_renderer/threaded_render_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1"), 500); | 	GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "rendering/limits/forward_renderer/threaded_render_minimum_instances", PROPERTY_HINT_RANGE, "32,65536,1"), 500); | ||||||
| 
 | 
 | ||||||
| 	GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/limits/cluster_builder/max_clustered_elements", PROPERTY_HINT_RANGE, "32,8192,1"), 512); | 	GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/limits/cluster_builder/max_clustered_elements", PROPERTY_HINT_RANGE, "32,8192,1"), 512); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 clayjohn
						clayjohn