04-17-2013, 10:45 PM
More knowledge
On x86, there's no measurable difference between using a double and a float for the noise functions.
But on ARM, there's a 20% performance increase when using floats. So we'll be sticking to floats for now.
If anyone could compile and run the $/Tests/NoiseTest project on x64 with both NOISE_DATATYPE set to float and then double (in $/source/Noise.h), and post both results, that would be awesome.
Here's both results when run on a RasPi (ARM, stock config):
On x86, there's no measurable difference between using a double and a float for the noise functions.
But on ARM, there's a 20% performance increase when using floats. So we'll be sticking to floats for now.
If anyone could compile and run the $/Tests/NoiseTest project on x64 with both NOISE_DATATYPE set to float and then double (in $/source/Noise.h), and post both results, that would be awesome.
Here's both results when run on a RasPi (ARM, stock config):
Code:
With NOISE_DATATYPE set to double:
[12:29:16] --- Started Log ---
[12:29:21] cCubicNoise generating 1000 * 256x256 values took 4650000 ticks (4.65 sec)
[12:30:16] cNoise generating 1000 * 256x256 values took 54610000 ticks (54.61 sec)
[12:30:16] New method is 11.74x faster
With NOISE_DATATYPE set to float:
[12:36:52] --- Started Log ---
[12:36:56] cCubicNoise generating 1000 * 256x256 values took 3760000 ticks (3.76 sec)
[12:37:50] cNoise generating 1000 * 256x256 values took 53840000 ticks (53.84 sec)
[12:37:50] New method is 14.32x faster