godot/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
arvr_nodes.cpp
arvr_nodes.h
audio_stream_player_3d.cpp
audio_stream_player_3d.h
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
bone_attachment.h
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
collision_object.h
collision_polygon.cpp
collision_polygon.h
collision_shape.cpp
collision_shape.h
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
immediate_geometry.h
interpolated_camera.cpp
interpolated_camera.h
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
listener.h
mesh_instance.cpp
mesh_instance.h
multimesh_instance.cpp
multimesh_instance.h
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
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
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
path.h
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
physics_joint.h
portal.cpp
portal.h Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
position_3d.cpp
position_3d.h
proximity_group.cpp
proximity_group.h
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
reflection_probe.h
remote_transform.cpp
remote_transform.h
room_instance.cpp
room_instance.h Cleanup some #if 0'd code 2017-12-17 15:40:24 +01:00
scenario_fx.cpp
scenario_fx.h
SCsub
skeleton.cpp
skeleton.h
spatial_velocity_tracker.cpp
spatial_velocity_tracker.h
spatial.cpp Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
spatial.h
sprite_3d.cpp Fix Sprite3D alpha_cut member not being initialized 2017-12-17 22:07:43 +01:00
sprite_3d.h
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
visibility_notifier.cpp
visibility_notifier.h
visual_instance.cpp
visual_instance.h
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