[libgens] CrazyEffect: Improved performance by using a faster RNG.
authorDavid Korth <gerbilsoft@gerbilsoft.com>
Thu, 3 Sep 2015 04:54:57 +0000 (00:54 -0400)
committerDavid Korth <gerbilsoft@gerbilsoft.com>
Thu, 3 Sep 2015 04:54:57 +0000 (00:54 -0400)
commit051a079be9a83eed957cd60dbeebce11653b02cd
tree36512f8a19a991fa4fe488440bef936f643d890b
parenta494aba62e54e30cc3bc929f040300de87310e5f
[libgens] CrazyEffect: Improved performance by using a faster RNG.

Xorshift+ is significantly faster than both glibc's and MSVC 2010's
rand() function. On my ThinkPad T60p, the Linux rand() version usually
runs at around 45-50 fps if something else is running, but the new
Xorshift+ version runs at 56-60 fps.

This version also helps to reduce the CPU load a bit.

TODO: Cache the upper bits of Xorshift+'s result so we can get
at least two 15-bit values out of a single iteration.
src/libgens/Effects/CrazyEffect.cpp
src/libgens/Effects/CrazyEffect.hpp