godot/scene
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
..
2d Merge pull request #13991 from CyanBlob/master 2017-12-16 16:38:59 +01:00
3d Prevent false sharing in lightbaker RNG state 2017-12-20 14:37:00 +01:00
animation Revert property changes in "[DOCS] AnimationPlayer new props, members/methods" 2017-12-14 00:36:41 +01:00
audio Made Vector::ptrw explicit for writing, compiler was sometimes using the wrong function, 2017-11-25 00:09:40 -03:00
gui Added font oversampling support 2017-12-19 18:48:30 -03:00
main Make dynamic font oversampling fully dynamic. 2017-12-19 21:58:32 -03:00
resources Make dynamic font oversampling fully dynamic. 2017-12-19 21:58:32 -03:00
SCsub disable caching for targets using helper functions 2017-11-28 23:24:12 -04:00
register_scene_types.cpp Make dynamic font oversampling fully dynamic. 2017-12-19 21:58:32 -03:00
register_scene_types.h
scene_string_names.cpp Unify degree members and properties 2017-11-10 12:52:07 +01:00
scene_string_names.h