View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0001102 | Spring engine | General | public | 2008-10-10 13:45 | 2011-08-25 03:31 | ||||
Reporter | AMDmi3 | ||||||||
Assigned To | abma | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | unable to reproduce | ||||||
Product Version | 0.77b2 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0001102: `FPUCW 0x107F instead of 0x003A or 0x003F' message spamming the console on FreeBSD | ||||||||
Description | On FreeBSD, game console and log file are constantly spammed with those messages: Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::SimFrame") Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update") not quite sure what requirements on FPU behavior spring has, but seems like it's either too paranoid in it's checks or some FPU initialization is missing. The difference from expected CW state are apparently bit 0x1000 (infinity control) and 0x0040 - not sure what it is. | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|||||||||||
|
![]() |
|
imbaczek (reporter) 2008-10-10 14:16 |
spring has to be paraoind about setting the FPU control word since different results lead to desynced games, see butterfly effect etc. if you look around here or on the forums, you'll see that it's not a new problem with FreeBSD. |
AMDmi3 (reporter) 2008-10-10 14:52 |
I've only found thread about similar issue on windows, without any useful fix. Any way I can help with fixing this? |
tvo (reporter) 2008-10-10 15:35 |
This has been patches already in 0000938, but I will only apply the patch when it has been confirmed to not break sync. (The 0x0040 seems new tho..) |
AMDmi3 (reporter) 2008-10-10 16:13 Last edited: 2008-10-10 16:32 |
0x0040 is marked as reserved in both Pentium4 (which I use) and Core2duo (as a modern processr) manuals from Intel. Also (from core2duo manual): 8.1.6 Infinity Control Flag The infinity control flag (bit 12 of the x87 FPU control word) is provided for compati- bility with the Intel 287 Math Coprocessor; it is not meaningful for later version x87 FPU coprocessors or IA-32 processors. See Section 4.8.3.3, ?óÔé¼?ôSigned Infinities,?óÔé¼?Ø for information on how the x87 FPUs handle infinity values. So I think it's safe to ignore both. |
AMDmi3 (reporter) 2009-05-31 22:55 |
Sorry, why was this closed? The issue is still there, Sync warning: MXCSR 0x1FB7 instead of 0x1D00 or 0x1F80 ("CGame::Update") Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::Update") Sync warning: MXCSR 0x1FB7 instead of 0x1D00 or 0x1F80 ("CGame::SimFrame") Sync warning: FPUCW 0x107F instead of 0x003A or 0x003F ("CGame::SimFrame") |
Kloot (developer) 2009-06-01 15:12 Last edited: 2009-06-01 15:16 |
It's still there because the 0000938 patch to ignore 0x1000 was never applied (since the submitter didn't report back about testing it). Likewise nobody has yet tried to test sync without 0x0040 set. And although probably neither of the two flags is important, we do rather need absolute guarantees. PS. until test data is available, you could of course just #ifdef out the logOutput lines... |
AMDmi3 (reporter) 2009-06-01 15:31 |
Ok, thanks for clarification. Changing mask 0x1F3F -> 0x0F3F works for me for now. |
imbaczek (reporter) 2009-06-01 15:58 |
please explicitly confirm that it works in multiplayer without desyncs. |
AMDmi3 (reporter) 2009-06-01 16:01 |
I didn't test on multiplayer yet, will try today. |
hoijui (reporter) 2009-07-25 11:15 |
..how did the test go? :D |
AMDmi3 (reporter) 2009-11-01 00:35 |
Sorry for delay, finally I've managed to get my hands on it. There are sync errors between FreeBSD and Linux. FreeBSD<->FreeBSD seem to work without problems (on the same host). Btw, all floats ingame are sometimes dispalyed as 1.0000000000000312 instead of 1, maybe that's related. |
hoijui (reporter) 2009-11-01 10:59 |
mmm ok... maybe you could do sync debugging then. instructions can be found here: http://springrts.com/wiki/Debugging_sync_errors you may come to the dev channel on the lobby (#sy) if you have problmes, qeustions, or want to discuss the results. |
AMDmi3 (reporter) 2009-11-01 22:40 |
Here's syncdebug output: http://amdmi3.ru/files/springsync/ ===> Mon Nov 2 00:23:19 2009 <=== Server: got checksum response from 1 Client: checksum response sent Server: got checksum response from 0 Server: queuing block requests Server: blocks: 2047 equal, 1 not equal Server: checksum responses received; 1 block requests queued Client: block response sent for block 0 addr2line command : 'addr2line "--exe=/home/amdmi3/projects/spring/bin/spring" --functions --demangle --inline 0x83109e4 0x82ffde2 0x839da73 0x839e5ce 0x88fa55d' Server: block responses received Server: position in history: 1153 Server: chk C189D275 instead of 473DBD64 frame 000000, (value=90be48c2 -7.50538872e-29) backtrace 1 in "copyunsigned int" Server: chks: 2047 equal, 1 not equal Server: === Backtrace 1 === Server: #0 SyncedPrimitive [/home/amdmi3/projects/spring/spring_0.80.5.1/rts/System/Sync/SyncedPrimitive.h:103] Server: #1 CGame [/home/amdmi3/projects/spring/spring_0.80.5.1/rts/Game/Game.cpp:459] Server: #2 CPreGame::UpdateClientNet() [/home/amdmi3/projects/spring/spring_0.80.5.1/rts/Game/PreGame.cpp:236] Server: 0000003 CPreGame::Update() [/home/amdmi3/projects/spring/spring_0.80.5.1/rts/Game/PreGame.cpp:154] Server: 0000004 SpringApp::Update() [/home/amdmi3/projects/spring/spring_0.80.5.1/rts/System/SpringApp.cpp:850] Server: Done! |
abma (administrator) 2011-08-25 03:31 |
uhm... please retry with current spring master, maybe its fixed |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2008-10-10 13:45 | AMDmi3 | New Issue | |
2008-10-10 14:16 | imbaczek | Note Added: 0002756 | |
2008-10-10 14:52 | AMDmi3 | Note Added: 0002763 | |
2008-10-10 15:32 | tvo | Relationship added | related to 0000948 |
2008-10-10 15:32 | tvo | Relationship added | related to 0000341 |
2008-10-10 15:32 | tvo | Relationship deleted | related to 0000948 |
2008-10-10 15:33 | tvo | Relationship added | related to 0000938 |
2008-10-10 15:35 | tvo | Note Added: 0002766 | |
2008-10-10 16:13 | AMDmi3 | Note Added: 0002772 | |
2008-10-10 16:13 | AMDmi3 | Note Edited: 0002772 | |
2008-10-10 16:32 | AMDmi3 | Note Edited: 0002772 | |
2009-03-31 15:55 | Auswaschbar | Status | new => closed |
2009-03-31 15:55 | Auswaschbar | Resolution | open => suspended |
2009-05-31 22:55 | AMDmi3 | Note Added: 0003571 | |
2009-05-31 22:55 | AMDmi3 | Status | closed => new |
2009-05-31 22:55 | AMDmi3 | Resolution | suspended => reopened |
2009-06-01 15:12 | Kloot | Note Added: 0003581 | |
2009-06-01 15:15 | Kloot | Note Edited: 0003581 | |
2009-06-01 15:16 | Kloot | Note Edited: 0003581 | |
2009-06-01 15:31 | AMDmi3 | Note Added: 0003582 | |
2009-06-01 15:58 | imbaczek | Note Added: 0003584 | |
2009-06-01 16:01 | AMDmi3 | Note Added: 0003585 | |
2009-07-25 11:15 | hoijui | Note Added: 0003760 | |
2009-07-25 11:15 | hoijui | Status | new => feedback |
2009-11-01 00:35 | AMDmi3 | Note Added: 0004283 | |
2009-11-01 10:59 | hoijui | Note Added: 0004284 | |
2009-11-01 22:40 | AMDmi3 | Note Added: 0004285 | |
2011-08-25 03:31 | abma | Note Added: 0007287 | |
2011-08-25 03:31 | abma | Status | feedback => resolved |
2011-08-25 03:31 | abma | Resolution | reopened => unable to reproduce |
2011-08-25 03:31 | abma | Assigned To | => abma |