Code: Select all
[ 0] Sync warning: MXCSR 0x1FB6 instead of 0x1D00 or 0x1F80 ("Finalizing")
[ 0] Sync warning: FPUCW 0x027F instead of 0x003A or 0x003F ("Finalizing")
But two days I investigated it further and found out it happens in LuaUI namely in LuaLobby::Connect (I have a demo lualobby widget that gets started during loading). Now this function can get called at any time in the game and Spring won't auto reset the FPU flags after the loading stage, so it can't be ignored anymore.
And here the code that cause these invalid FPU flags, rts/lib/lobby/Connection.cpp:
Code: Select all
void Connection::Connect(...)
{
...
ip::address tempAddr = ip::address::from_string(server, err);
...
}
Further checking shows that it is also used in Socket.h
I don't know when the affected function gets called and if it can cause desyncs there, too.
I also tested this on linux and it didn't happened there, so it have to be a problem with the precompiled boost libs in the mingwlibs git repo.
To be on the safe side I will commit a patch to reset the FPU state in LuaLobby, still I don't know what to do with Socket.h.