Hello. I've been working on a q3 mod, which for some modifications on the
game code it uses a binary instead of a qvm, but the client still uses the
qvm. So far works good, however, we started to feel little differences on
the "feeling" of the physics, and they are not entirely wrong: we have
noticed small differences on the results on the predicted pmove executions
and the snapshots from the server.

Reading a little bit we found out that setting gcc with both -O and
-ffast-math flags causes some floating point discrepancy, however we think
that the real root of the problem is the architecture of the virtual machine
used by the qvm. As far as we've read (correct me if I'm wrong), the qvm
calculates floating point operation as single precision float (32 bits),
while the binary makes them as double precision and just truncates them when
casting or assigning to float. So my question is basically if there is some
flags (or combination of flags) i can check on gcc (i'm using v3.4) so the
floating point operations are as close as possible to the ones made by the
qvm.

Regards
-- 
Rabindranath
_______________________________________________
ioquake3 mailing list
[email protected]
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to