Fix severe bugs in mul128 implementation which was breaking the Lehmer RNG.
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 28 Nov 2016 03:56:16 +0000 (03:56 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 28 Nov 2016 03:56:16 +0000 (03:56 +0000)
commitbbb2827707bfbc2d2a7d3304473cafadffac5da5
tree5042bf0fe0bf09412015918cd1f3a68cb0611be1
parentb7d92f696edebeb716e32e2179894dea483cb3ac
Fix severe bugs in mul128 implementation which was breaking the Lehmer RNG.

Added gcc specific implementation of mul128 using __int128 intrinsic type.

Added unit tests for mul128 implementation.

Added r_shadow_bouncegrid_normalizevectors cvar, default on, this slightly brightens typical scenes, some more affected than others.

Changed the behavior of r_shadow_bouncegrid_dynamic_stablerandom to also affect static mode, changed it to use the light position as the RNG seed, and changed the meaning of stablerandom 1 to be lhcheeserandom again as it is fast and of sufficient quality, the Lehmer RNG is available as stablerandom 2 but it has a framerate hit in dynamic mode that I can't ignore.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12301 d7cf8633-e32d-0410-b094-e92efae38249
mathlib.c
mathlib.h
r_shadow.c
r_shadow.h