Create an account


Poll: What should the release build "-march" flag be?
You do not have permission to vote in this poll.
Change it to Pentium 3 (i686, MMX, SSE)
81.82%
9 81.82%
Keep it as i686 with MMX, just in case someone else wants it
9.09%
1 9.09%
I actually have a Pentium 2, early Celeron or pre XP Athlon and run Xonotic on it
0%
0 0%
Something else
9.09%
1 9.09%
Total 11 vote(s) 100%
* You voted for this item. [Show Results]

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[SUGGESTION] Change x86 march flag to "pentium3"

#1
Taking a look at the makefile for darkplaces it looks as if the engine is built with -march=i686. I seem to remember from Nexuiz days that it was i686 with MMX that was a minimum so I assume this is the same.

What I am suggesting is change the -march flag to 'pentium3'. This will add SSE into the mix which from benchmarks I did under Nexuiz back in the day would give around 1-2% performance improvement.

It would mean that minimum requirements would exclude more systems. Pentium II systems (all the way up to a dizzying 450MHz) would no longer be able to run the game. AMD side things are worse as it was only in the Athlon XP that SSE was supported, hence a 1.4GHz Athlon would also be out of bounds.

Some Via processors would also be cut off but they would be substantially below spec.

It's only a small performance boost for x86 users but would help everyone not running a Pentium II, early Celeron, classic Athlon, K6, etc. As for those systems that would no longer be usable at all, my testing with a dual 1GHz P3 has shown that gameplay is seriously CPU limited regardless of graphics card so unless someone really does happen to have a 1.4GHz Athlon fitted with a 6800 Ultra or similar AGP card, they're not going to be running this game anyway.

Doesn't mean it can't be recompiled for earlier processor support - Slackware makes Xonotic available for i486:
http://darkstar.ist.utl.pt/slackware/add...SlackBuild

Thought I'd just put this idea out there and see if anyone else sees any mileage in it.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#2
afaik Xonotic use -march=native when built as release (./all compile -r). There is also a specific SSE code path for skeletal animations (one of the largest cpu hogs atm), so it should not matter *that* much. Still, i cant see any harm in this as its very unlikely to get things playable of less then a p3 anyway.
Reply

#3
-march=native was added as a feature to GCC 4.2 and just determines the architecture of the system that the compiler is running on. This is very sensible for people wanting to compile themselves. This won't be being used for the official build though as otherwise, let's say someone builds it native on a Core i7, it won't run on any less than a Core i3/i5/i7 processor.

Intel generally leads with new instruction sets and AMD follows, the big exception being x86-64 which went the other way. SSE was introduced by Intel for the Pentium 3 in 1999 but only implemented by AMD with the Athlon XP 1500+, Athlon 4 mobile processor 800MHz+ and Duron Morgan 900MHz+, all year 2001. Hence although a Pentium II 450MHz would be excluded, a 1.4GHz Athlon Thunderbird would also be excluded. Has anyone got something like this (or can overclock to this level) to test with? If it isn't playable anyway then might as well abandon support for anything non-SSE and get 1-2% better performance for the the person with the Athlon XP 1500+ to make it playable. SSE is quite influential in games.

As for newer instructions, the Pentium 4 introduced SSE2 but was only used by AMD for the Opteron and Athlon 64, hence it would exclude Athlon XP which would seem a bit harsh.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#4
I've now added a poll, just to open this up. Any reasons why it can't be changed to Pentium 3?
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#5
In this day and age if you've got anything less than a Pentium 3, you really should just upgrade it. I doubt changing the flag is really going to exclude that many people and if it does, they jolly well need an upgrade /new pc. Xonotic is supposed to be the best FOSS of its kind. The devs can't really achieve this is they still have to cater for the needs of people with of people with 14/15 year old hardware!

//OFF TOPIC

Omg, look at how expensive the Pentium II 300 was when it came out!
Reply

#6
The only reason I can think of to use p2 for xonotic would be for a dedicated server. I heard the server has really low cpu needs. But if somebody really has such old hardware and still uses it I think they can recompile the game for themselves.
My contributions to Xonotic: talking in the forum, talking some more, talking a bit in the irc, talking in the forum again, XSkie
Reply

#7
(06-13-2012, 02:57 AM)Cyber Killer Wrote: The only reason I can think of to use p2 for xonotic would be for a dedicated server. I heard the server has really low cpu needs.
Cryptographic signing does need a bit of CPU time now. It is actually possible to cause the server to think it is receiving a DDOS attack on a very slow CPU just because of the CPU time needed for crypto. Take a look at the crypto_* cvars.

My point is actually much less about a Pentium 2, it's actually more about pre-XP Athlons as these are the fastest CPUs that don't support SSE. Does anyone have a 1.4GHz Athlon? Are they likely to try Xonotic? What is the gameplay experience going to be like?
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#8
(06-13-2012, 04:13 AM)edh Wrote:
(06-13-2012, 02:57 AM)Cyber Killer Wrote: The only reason I can think of to use p2 for xonotic would be for a dedicated server. I heard the server has really low cpu needs.
Cryptographic signing does need a bit of CPU time now. It is actually possible to cause the server to think it is receiving a DDOS attack on a very slow CPU just because of the CPU time needed for crypto. Take a look at the crypto_* cvars.

Crypto... I have yet to see a Xonotic server that will encrypt the connection. Even the ones that have the AES icon, shown in the server list, say "supported, won't encrypt" when you'll look in the info box ;-P
My contributions to Xonotic: talking in the forum, talking some more, talking a bit in the irc, talking in the forum again, XSkie
Reply

#9
Quote:Does anyone have a 1.4GHz Athlon? Are they likely to try Xonotic? What is the gameplay experience going to be like?

I can tell you know, with that CPU, the gameplay definitely would be poor and the kind of people that have that processor would probably just stick to playing small 2D indie games or oldies like Quake 3.

Then again, those Athlons might be okay on Damn Small Xonotic (if it's still being maintained)?
Reply

#10
(06-13-2012, 05:26 AM)Cyber Killer Wrote: Crypto... I have yet to see a Xonotic server that will encrypt the connection.
Ironic I know but local games do use cryptographic signing including on campaign mode. This means with a slow enough CPU if you try and start the campaign you may get a DDOS warning. It can be fixed by fiddling with cvars but if out of the box a system can't run the campaign mode then clearly it isn't powerful enough. I've only seen this problem on a P3-550 and a Via C3-2 1.2GHz.

My point in same ways here is why not set a hard barrier that the game absolutely won't run below? The dedicated server is a seperate binary so this is really about the game engine itself.

I see someone has voted for keeping i686 MMX so it would be great to hear why.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#11
From another thread:
onemoar Wrote:march=pentium 3 ... seriously do you have any fking Idea how slow that is
I think you've missed the point here. It is currently built for i686 with MMX. I am suggesting upping this to Pentium 3. As for speed comparisons, I have done this before and it will gain 1-2%. I would be happy to dig out the benchmarks I did with Nexuiz if you have any benchmarks to the contrary.
onemoar Wrote:xonotic should be using SSE2 at the very least
You're forgetting a few things here. This is for the x86 build, NOT the x86-64. Anyone with a 64-bit processor should be running the x86-64 build anyway so we should forget about optimising to infinity for them. The x86 build needs to target those with Athlon XP and pre-EMT64 Pentium 4 systems. As the Athlon XP does not support SSE2, doing as you suggest would wipe out support for Athlon XP. SSE remains the highest common denomenator for x86 systems, hence -march=pentium3 being the most sensible choice. Adding any -mtune=pentium4 or -mtune=athlonxp would detriment one or other so should not be done.
onemoar Wrote:as I have seen 20% performance gains simply by adding -O2 -march=AMDFAM10 -mtune=AMDFAM10 -SSE2
Firstly a 20% gain is the sort of thing you might get by switching -O2 on (they're all fairly similar, I have benchamrks) instead of no O flag at all. Unless you are comparing with some very broken build, I would not expect 20% performance improvement but of course if you have benchmarks, please provide them.

Building -march=AMDFAM10 is also totally out of the question. For a start that's a 64-bit architecture and you be using the x86-64 build instead. Also this is about the x86 build. But most importantly, building -march=AMDFAM10 will exclude support for any AMD processors pre-Phenom and all Intel processors. That simply isn't going to happen.

As for -mtune=AMDFAM10, this is redundant in your CFLAGS. -mtune is for tuning for an architecture different from -march whilst not excluding a lower architecture. For example if I was to build -march=pentium3 -mtune=pentium4 it would run on a Pentium 3 but would run more efficiently on a Pentium 4. Making -mtune the same as -march does nothing. -SSE2 is also redundant in your example as -march=AMDFAM10 includes support for SSE2.

onemoar Wrote:you are suggesting a 30% loss in performance to save haft a MB
No, I'm suggesting a 1-2% performance gain coupled with a 1-2% reduction in binary size.
onemoar Wrote:bandwidth inst that expensive in fact I would like to see xonotic more heavy optimist-ed for recent hardware more use of SSE4 sets and more cpu dependent opflags its 2012
Your understanding here of the effect of different CFLAGS is not entirely correct. Typically when you up the -march flag you actually make the binary SMALLER. An analogy would be rewriting a book with a larger vocabulary allowing you to be more concise. If you are adding in many extra CFLAGS and getting anecdotal performance improvements coupled with massive bloat in the binary then you are doing things wrong.
onemoar Wrote:Pentium 3's and x86 are pretty much dead
Look, we have the x86-64 build. This is for 64-bit processors and anyone using a modern system should be using this. We also have the x86 build. While this is still maintained it needs to be targetted at those who need it most: Athlon XP and Pentium 4 users. -march=pentium3 is the highest common denominator for these 2 processors and no across the board improvement will be had with any further instruction sets.

There is of course nothing stopping people recompiling themselves as you have done to tune for there own systems but the release binaries need to be kept universal. I'm just suggesting tightening that up a bit.

For future reference you may want to check out the Gentoo safe CFLAGS page:
http://en.gentoo-wiki.com/wiki/Safe_Cflags
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#12
edh Wrote:Look, we have the x86-64 build. This is for 64-bit processors and anyone using a modern system should be using this. We also have the x86 build. While this is still maintained it needs to be targetted at those who need it most: Athlon XP and Pentium 4 users. -march=pentium3 is the highest common denominator for these 2 processors and no across the board improvement will be had with any further instruction sets.

You are forgetting all the 32bit OS users on modern hardware - windblows xp 32bit is still in wide use and many Linux distros keep on stupidly recommending the 32bit version (I'm looking at you *buntu!) :-P.
My contributions to Xonotic: talking in the forum, talking some more, talking a bit in the irc, talking in the forum again, XSkie
Reply

#13
(06-18-2012, 04:53 AM)Cyber Killer Wrote: You are forgetting all the 32bit OS users on modern hardware - windblows xp 32bit is still in wide use and many Linux distros keep on stupidly recommending the 32bit version (I'm looking at you *buntu!) :-P.
Yes, I know they're still there although Ubuntu is now finally recommending x86-64. Only about 7 and half years late!

While I accept that a 32-bit OS remains popular, it is difficult to target those running on newer hardware. Doing so will effect performance on older hardware and is difficult to do without detrimenting one brand of CPU or another as each have integrated different instruction sets at each time. A bigger problem though is the mere fact that someone is running a 32-bit OS is more of a performance issue than the improvement they might get by building a 32-bit binary specific for their architecture. It kind of misses the point to do so.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply

#14
Quote:although Ubuntu is now finally recommending x86-64.
No, it's still not. Goto ubuntu.com → download → desktop → see the dropdown list with selected line '32bit (recommended)'. So they still fail ;-).

Anyway I agree that ppl should upgrade their OS'es.
My contributions to Xonotic: talking in the forum, talking some more, talking a bit in the irc, talking in the forum again, XSkie
Reply

#15
the flags posted where just a example and not a copy and paste of my makefile ofc ... and it takes more then slapping a compiler flag on it to put the full benefit of sse2 or beyond to use and yes you would not want to use a cpu-specific flag in a general release.
and to hell with performance on older hardware make a -generic build and call it a day
even on lowest settings @ 1024x768 xonotic requires at least a 2.8Gz P4 and a 6600GT AGP if someone is running something that old then to hell with them sorry but it is what it is you can't please everyone and I see no sense in putting forth more then marginal effort so dog slow machines can run at 30fps vrs 25Fps not in a twitch based game like xonotic
Reply

#16
Sorry to interrupt the discussion for something so trivial, but can you please use punctuation?
Reply

#17
(06-18-2012, 12:06 PM)Mr. Bougo Wrote: Sorry to interrupt the discussion for something so trivial, but can you please use punctuation?

nope
Reply

#18
(06-18-2012, 06:40 AM)Cyber Killer Wrote: No, it's still not. Goto ubuntu.com → download → desktop → see the dropdown list with selected line '32bit (recommended)'. So they still fail ;-)

There has been some movement but as you have pointed out, it isn't far enough:

Quote:Unless you have specific reasons to choose 32-bit, we recommend 64-bit to utilise the full capacity of your hardware.
https://help.ubuntu.com/community/32bit_and_64bit

An exception I would consider making is the first 64-bit Pentium 4 processors. They tend to be slower in 64-bit than 32-bit and were not around for long before being replaced with the first Core processor.

Onemoar Wrote:and it takes more then slapping a compiler flag on it to put the full benefit of sse2

Now you may be talking about writing code specific for instruction sets. This would be possible and there is already some SSE specific code paths in place but all of this requires engine changes with multiple code paths being written in. This will happen more and more in time but obviously coders have other, higher return things to be doing.

Onemoar Wrote:even on lowest settings @ 1024x768 xonotic requires at least a 2.8Gz P4 and a 6600GT AGP

I beg to differ. I've tried Xonotic on an Athlon XP 2400+ with a 6600GT and it is VERY playable. 80fps on low settings at 1024x768, 50fps on normal even at 1600x1200, no crazy tweaks, no overclocking, just the default settings on The Big Benchmark. If you have benchmark results to the contrary I'd be happy to show you how to set your computer up properly ;-) .

Onemoar Wrote:if someone is running something that old then to hell with them sorry but it is what it is you can't please everyone and I see no sense in putting forth more then marginal effort so dog slow machines can run at 30fps vrs 25Fps not in a twitch based game like xonotic

I'm seeing a whole load of attitude here and no substance to back it up. You also outright, rudely decline the polite request of a moderator that you punctuate your posts. Searching through your past posts shows the same issues throughout. Please bear in mind this kind of attitude is not welcome.
I'm at least a reasonably tolerable person to be around - Narcopic
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  [SUGGESTION] Flag Carrier Roaming for Bots Antares* 3 3,643 07-05-2017, 02:38 PM
Last Post: BuddyFriendGuy
  [SUGGESTION] Display Flag Beagle 3 4,358 06-28-2016, 05:23 PM
Last Post: Mario
  [SUGGESTION] Change HUD for 0.8 machine! 6 7,758 01-05-2015, 08:53 AM
Last Post: Antibody
  [SUGGESTION] Flag notification frostwyrm333 5 7,084 10-11-2014, 05:54 PM
Last Post: frostwyrm333
  [SUGGESTION] Change the clockwatch position/look raffi98 5 6,700 01-06-2014, 12:41 PM
Last Post: sev
  [SUGGESTION] Country flag next to user login on forums Majki 9 10,060 04-10-2012, 07:25 AM
Last Post: unfa
Lightbulb [SUGGESTION] Time limit for flag carrier forseti 19 22,980 10-26-2010, 11:26 AM
Last Post: Erusavion
  [SUGGESTION] Variations in CTF, like manual flag return Dokujisan 12 14,602 09-24-2010, 03:38 AM
Last Post: Bundy
  [SUGGESTION] hold the flag tux9656 9 10,080 07-27-2010, 08:13 AM
Last Post: Halogene
  [SUGGESTION] Console during map-change -Lo- 27 27,768 06-05-2010, 04:10 PM
Last Post: XV22

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-