Bug 2578 - GCC -march=i686 apparently causes client hitching on Intel CPUs
Status: RESOLVED INVALID
Alias: None
Product: ioquake3
Classification: Unclassified
Component: Video
Version: 1.33 SVN
Hardware: PC Linux
: P2 normal
Assignee: Zachary J. Slater
QA Contact: ioquake3 bugzilla mailing list
URL:
Depends on:
Blocks:
 
Reported: 2006-01-10 20:29 EST by nixpenguin
Modified: 2009-09-14 06:56:00 EDT
1 user (show)

See Also:



Description nixpenguin 2006-01-10 20:29:08 EST
When playing the Urban Terror 3.7 mod online with icculus Q3, I experience repetitious visual stuttering. This usually occurs when I am close to and facing an enemy and we are both firing automatic weapons at each other. When this happens, the video will temporarily "freeze" and empty gaps will appear in the netgraph. Ordinarily this will happen multiple times over the course of a few seconds.

Additional information:
Pentium 4 2.53Ghz CPU, no HT, no 64-bit extensions
Linux kernel version 2.6.15
Ubuntu dapper
ioQ3 built with default optimizations

Workaround:
Building ioQ3 with -march=i586 instead of the default -march=i686 eliminates the problem.
Comment 1 Zachary J. Slater 2006-01-12 13:43:57 EST
Can't repro this on my amd32 machine.
Comment 2 nixpenguin 2006-01-13 18:34:51 EST
A few q3ut3 servers to test on:

84.41.146.12:27960
62.194.40.59:27960
161.76.99.106:22222
Comment 3 Tim Angus 2006-01-19 13:18:19 EST
This is very odd.
Comment 4 Zachary J. Slater 2006-03-22 12:03:06 EST
Shouldn't be a problem since like we're not doing -march=686. 
Comment 5 Zachary J. Slater 2006-03-22 12:40:36 EST
Oops.
Comment 6 Ryan C. Gordon 2007-05-21 11:21:55 EDT
Setting a QA contact on all ioquake3 bugs, even resolved ones. Sorry if you get a flood of email from this, it should only happen once. Apologies for the incovenience.

--ryan.

Comment 7 Tim Angus 2007-08-22 18:08:40 EDT
-march should be changed back to i686 and retested with a recent GCC. Could you do this nixpenguin@gmail.com?
Comment 8 nixpenguin 2007-08-22 19:29:55 EDT
I'll see what I can do, but keep in mind that my only Intel box is that same old P4. You may also want to seek input from people with newer-generation Intel CPUs (Prescott/C2D).
Comment 9 nixpenguin 2007-09-01 20:41:57 EDT
Yes, this does still seem to happen on the same machine. I built svn r1136 with gcc version 4.2.1 (Debian 4.2.1-4), using the default i386 OPTIMIZE flags except with -march=i686 instead of -march=i586. I then tested on a remote q3ut3 server with one bot. Let me know if I should try anything else.
Comment 10 Tim Angus 2007-09-02 16:04:54 EDT
Could you try some other -march settings please? e.g.:

           pentium2
               Intel Pentium2 CPU based on PentiumPro core with MMX instruc‐
               tion set support.

           pentium3, pentium3m
               Intel Pentium3 CPU based on PentiumPro core with MMX and SSE
               instruction set support.

           pentium-m
               Low power version of Intel Pentium3 CPU with MMX, SSE and SSE2
               instruction set support.  Used by Centrino notebooks.

           pentium4, pentium4m
               Intel Pentium4 CPU with MMX, SSE and SSE2 instruction set sup‐
               port.

           prescott
               Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and
               SSE3 instruction set support.
Comment 11 nixpenguin 2007-09-02 17:39:45 EDT
Done. Results:

pentium2, pentium3, pentium-m, and pentium4 have the same problem.

prescott dies with "Illegal instruction".
Comment 12 Amanieu d'Antras 2008-11-28 17:50:11 EST
-march=i686 works fine with gcc 4.3, but mingw still uses 4.2, so windows builds won't works with -march=i686
Comment 13 Tim Angus 2009-09-14 06:56:00 EDT
Closing due to lack of information, it's not reproducible, we supposedly have a work around in place and it's probably not even our bug in the first place ;).