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.
