Replaced use of rcp() and rsqrt() functions with non-approximating re…
Replaced use of rcp() and rsqrt() functions with non-approximating reciprocal and reciprocal-sqrt as the approximating versions produce subtly different results on different CPU architectures causing non-deterministic output (Intel Xeon vs. AMD Ryzen was observed to differ)
Differing output can be a big problem for patching tools for example if building a game on one machine produces different binary data than on another resulting in patches that are considerably larger than they need to be.
I've left comments in the code so future developers don't see replacing them with approximating versions as a potential optimization.
+1 for this - producing bit-identical output regardless of which machine performed the particular compression is important in asset build pipelines.
Note that fastmath should also be off for this to work.
Maybe the bit-exact behavior needs to be opt-in - I can imagine environments where it's not necessary, and the performance cost is not acceptable.