virtualx-engine/scene/3d
Hein-Pieter van Braam 0db5123548 Prevent false sharing in lightbaker RNG state
The previous commit corrected the RNG behavior for the lightbaker but
also made it significantly slower on high core count systems. Due to the
vector of states being physically close together in RAM we force a cache
synchronization across all cores whenever we call for the next random
number to be generated.

This will create a temporary local copy of the RNG state before entering
the loop and then saving it back to the global state when done. This
will preserve the per-thread RNG state (and random number quality) while
significantly improving performance.

On my 16 thread box it saves 3 minutes baking the Sponza scene, bringing
performance back in line to before the various RNG fixes were
introduced, being slightly faster than the first implementation.
2017-12-20 14:37:00 +01:00
..
area.cpp Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
area.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
arvr_nodes.cpp Adding rumble support to ARVR controllers (if implemented on the ARVR interface) 2017-11-01 23:59:14 +11:00
arvr_nodes.h Adding rumble support to ARVR controllers (if implemented on the ARVR interface) 2017-11-01 23:59:14 +11:00
audio_stream_player_3d.cpp Made Vector::ptrw explicit for writing, compiler was sometimes using the wrong function, 2017-11-25 00:09:40 -03:00
audio_stream_player_3d.h Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00
baked_lightmap.cpp doc: Sync classref with current source 2017-12-18 08:13:58 +01:00
baked_lightmap.h Added baked light support for gridmaps. 2017-12-18 00:35:20 -03:00
bone_attachment.cpp Remove assignment and declarations in if statements 2017-09-08 14:59:15 +02:00
bone_attachment.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
camera.cpp [DOCS] Camera property changes 2017-12-11 12:48:41 -06:00
camera.h [DOCS] Camera property changes 2017-12-11 12:48:41 -06:00
collision_object.cpp Fix: CollisionObject shape owner indexing is inconsistent 2017-09-24 15:55:45 +07:00
collision_object.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
collision_polygon.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
collision_polygon.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
collision_shape.cpp Remove assignment and declarations in if statements 2017-09-08 14:59:15 +02:00
collision_shape.h Fix files header 2017-09-01 21:07:55 +07:00
gi_probe.cpp -Add lightmapper 2017-12-14 09:01:27 -03:00
gi_probe.h -Add lightmapper 2017-12-14 09:01:27 -03:00
immediate_geometry.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
immediate_geometry.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
interpolated_camera.cpp Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00
interpolated_camera.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
light.cpp -Add lightmapper 2017-12-14 09:01:27 -03:00
light.h -Add lightmapper 2017-12-14 09:01:27 -03:00
listener.cpp Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
listener.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
mesh_instance.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
mesh_instance.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
multimesh_instance.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
multimesh_instance.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
navigation.cpp Renamed navmesh/poly_create to navmesh/poly_add since no navmesh is created. 2017-12-15 15:09:06 -05:00
navigation.h Renamed navmesh/poly_create to navmesh/poly_add since no navmesh is created. 2017-12-15 15:09:06 -05:00
navigation_mesh.cpp Renamed navmesh/poly_create to navmesh/poly_add since no navmesh is created. 2017-12-15 15:09:06 -05:00
navigation_mesh.h Recast integration. 2017-09-04 21:41:57 +01:00
particles.cpp particles spread/flatness fixes, pi factorization 2017-12-15 23:53:53 +01:00
particles.h -Fix particles with size==0, closes #13931 2017-12-06 19:51:13 -03:00
path.cpp Fix PathFollow rotations. 2017-10-21 12:51:49 -04:00
path.h Fix PathFollow rotations. 2017-10-21 12:51:49 -04:00
physics_body.cpp Fixed bad bindings 2017-12-11 01:42:16 +01:00
physics_body.h Implemented physics linear and angular lock 2017-12-10 17:21:14 +01:00
physics_joint.cpp Fix joints collision exceptions 2017-08-29 23:46:44 +02:00
physics_joint.h Dead code tells no tales 2017-08-27 22:13:45 +02:00
portal.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
portal.h Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
position_3d.cpp Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
position_3d.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
proximity_group.cpp Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
proximity_group.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
ray_cast.cpp Ported 'Exclude Parent' from Raycast2D to Raycast 2017-11-30 20:01:19 +01:00
ray_cast.h Ported 'Exclude Parent' from Raycast2D to Raycast 2017-11-30 20:01:19 +01:00
reflection_probe.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
reflection_probe.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
remote_transform.cpp Fix files header 2017-09-01 21:07:55 +07:00
remote_transform.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
room_instance.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
room_instance.h Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
scenario_fx.cpp Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
scenario_fx.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
SCsub Fix disable_3d=yes compile errors 2017-10-22 21:24:20 +03:30
skeleton.cpp Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
skeleton.h Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
spatial.cpp Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
spatial.h Unify degree members and properties 2017-11-10 12:52:07 +01:00
spatial_velocity_tracker.cpp Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00
spatial_velocity_tracker.h Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00
sprite_3d.cpp Fix Sprite3D alpha_cut member not being initialized 2017-12-17 22:07:43 +01:00
sprite_3d.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
vehicle_body.cpp Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
vehicle_body.h Added VehicleWheel::get_skidinfo(). 2017-09-30 03:02:16 +02:00
visibility_notifier.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
visibility_notifier.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
visual_instance.cpp Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
visual_instance.h Rename Rect3 to AABB. 2017-11-17 11:01:41 -05:00
voxel_light_baker.cpp Prevent false sharing in lightbaker RNG state 2017-12-20 14:37:00 +01:00
voxel_light_baker.h Fix lightmapper rng 2017-12-20 12:09:09 +01:00