[SUGGESTION] Change x86 march flag to "pentium3" - Printable Version +- Xonotic Forums (https://forums.xonotic.org) +-- Forum: Creating & Contributing (https://forums.xonotic.org/forumdisplay.php?fid=10) +--- Forum: Xonotic - Suggestion Box (https://forums.xonotic.org/forumdisplay.php?fid=20) +--- Thread: [SUGGESTION] Change x86 march flag to "pentium3" (/showthread.php?tid=3024) |
Change x86 march flag to "pentium3" - edh - 05-18-2012 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/addon/slackbuilds/13.37/games/xonotic/xonotic.SlackBuild Thought I'd just put this idea out there and see if anyone else sees any mileage in it. RE: Change x86 march flag to "pentium3" - tZork - 05-19-2012 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. RE: Change x86 march flag to "pentium3" - edh - 05-19-2012 -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. RE: Change x86 march flag to "pentium3" - edh - 06-12-2012 I've now added a poll, just to open this up. Any reasons why it can't be changed to Pentium 3? RE: Change x86 march flag to "pentium3" - rocknroll237 - 06-12-2012 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! RE: Change x86 march flag to "pentium3" - Cyber Killer - 06-13-2012 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. RE: Change x86 march flag to "pentium3" - edh - 06-13-2012 (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? RE: Change x86 march flag to "pentium3" - Cyber Killer - 06-13-2012 (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 RE: Change x86 march flag to "pentium3" - rocknroll237 - 06-13-2012 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)? RE: Change x86 march flag to "pentium3" - edh - 06-13-2012 (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. RE: Change x86 march flag to "pentium3" - edh - 06-18-2012 From another thread: onemoar Wrote:march=pentium 3 ... seriously do you have any fking Idea how slow that isI 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 leastYou'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 -SSE2Firstly 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 MBNo, 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 2012Your 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 deadLook, 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 RE: Change x86 march flag to "pentium3" - Cyber Killer - 06-18-2012 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. RE: Change x86 march flag to "pentium3" - edh - 06-18-2012 (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. RE: Change x86 march flag to "pentium3" - Cyber Killer - 06-18-2012 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. RE: Change x86 march flag to "pentium3" - Onemoar - 06-18-2012 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 RE: Change x86 march flag to "pentium3" - Mr. Bougo - 06-18-2012 Sorry to interrupt the discussion for something so trivial, but can you please use punctuation? RE: Change x86 march flag to "pentium3" - Onemoar - 06-18-2012 (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 RE: Change x86 march flag to "pentium3" - edh - 06-18-2012 (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. |