Page 1 of 3

Springsettings optimization thread - Share and Compare

Posted: 17 Jan 2014, 17:22
by klapmongool
The goal of this thread is for users to share and compare their springsettings.cfg in order to get the fastest spring possible. There are a lot of settings that don't show up in the springsettings GUI. So I think it would be good to discuss what works best.

This is mine. Some settings might be deprecated or just plain bullshit. Feel free to comment :D. I know some settings could be lower so I'll give an explanation for those:

MaxNanoParticles = 3000 (This shows the buildspray and for me this is handy information to have during the game.)
UnitIconDist = 152 (This determines at which distance unit icons are shown instead of a normal unit. This distance is ok for me on mosts maps so that when I zoom out units turn to icons at the time they become indistinguishable).
UnitLodDist = 155 (has something to do with icon distance, forgot what it was exactly :D)
3DTrees = 0
AdvUnitShading = 0
Advmapshading = 0
BuildIconsFirst = 1
BumpWaterReflection = 0
BumpWaterRefraction = 0
BumpWaterShoreWaves = 0
BumpWaterTexSizeReflection = 0
BumpWaterUseDepthTexture = 0
DepthBufferBits = 16
Disable LUPS ingame = 0
FSAA = 0
GrassDetail = 0
GroundDecals = 0
GroundDetail = 122
InputTextGeo = 0.26 0.73 0.02 0.028
LoadingMT = 0
LuaShaders = 0
MaxDynamicMapLights = 0
MaxDynamicModelLights = 0
MaxNanoParticles = 3000
MaxParticles = 0
MinimapOnLeft = 0
ReflectiveWater = 0
SM3ForceFallbackTex = 0
ShadowMapSize = 1024
Shadows = -1
ShowClock = 0
ShowPlayerInfo = 0
SmoothLines = 0
SmoothPoints = 0
TreeRadius = 600
UnitIconDist = 152
UnitLodDist = 155
UsePBO = 0
VSync = -1
VerboseLevel = 0
Water = 0
buildCostsWidgetXPosition = 175
snd_general = 0
snd_volmaster = 46

Re: Springsettings optimization thread - Share and Compare

Posted: 17 Jan 2014, 19:50
by jK
First of all test /hardwarecusor ingame and see if your gpu driver supports it or not.
If not, issue the same command again.

Re: Springsettings optimization thread - Share and Compare

Posted: 17 Jan 2014, 21:05
by malric
jK wrote:First of all test /hardwarecusor ingame and see if your gpu driver supports it or not.
This is a bit too cryptic :-) . After you test it, what should you do in respect with performance (in either of the cases) ?

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 00:53
by Forboding Angel
It's worth noting, that if you do streaming like I do and set hardware cursor to true, the people on your stream won't be able to see your mouse cursor.

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 13:03
by Silentwings
I use all the default settings except that I disable GroundDecals and Shadows (because I don't like them).

I don't think there is much to achieve by comparing springsettings.cfg files because the perf needs of several settings is heavily dependent on the particular system.

This list might be helpful: http://springrts.com/phpbb/viewtopic.ph ... 14#p551764.

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 14:26
by klapmongool
Silentwings wrote:I use all the default settings except that I disable GroundDecals and Shadows (because I don't like them).

I don't think there is much to achieve by comparing springsettings.cfg files because the perf needs of several settings is heavily dependent on the particular system.

This list might be helpful: http://springrts.com/phpbb/viewtopic.ph ... 14#p551764.
Well, I think it is good to share best practices between players. If a setting doesn't improve performance for someone no harm done.

You have comments on my springsettings?

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 14:36
by Silentwings
I don't see anything odd in your springsettings, just lots of things turned off, so no!

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 18:12
by Beherith
If you are going for max performance, I also recommend you set both AllowMapDeferredRendering and AllowModelDeferredRendering to 0

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 18:28
by jK
malric wrote:
jK wrote:First of all test /hardwarecusor ingame and see if your gpu driver supports it or not.
This is a bit too cryptic :-) . After you test it, what should you do in respect with performance (in either of the cases) ?
1. Spring mostly has a responsiveness problem and less a performance one, and hw cursor massively increase the user experience in that case
2. this thread is bullshit, as said Spring has rarely a performance problem (except on low-end laptops, which aren't recommended and Spring won't ever optimize for those). Ppl often claim too less FPS in 8v8 - 16v16 matches, which Spring isn't either optimized for (not long ago there was a 8 player cap!). And disabling shadows in such huge matches won't increase your FPS at all, cause Spring is _cpu-limited_ -> the simulation is eating all cpu time and cause of Spring's sync-system you can't influence that at all!

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 20:03
by klapmongool
jK wrote: 2. this thread is bullshit, as said Spring has rarely a performance problem
Really? Don't claim stuff that is obviously not true. It makes it hard to take you serious. I experience serious performance issues every other game. You don't need many players to get these issues either. Just many units in game, doing lots of stuff.

This thread has a purpose. Spring has a lot of hidden settings that aren't available through a GUI. Nor is it clear what all settings actually do. It seems a good idea to talk about what settings work and what settings don't.
Beherith wrote:If you are going for max performance, I also recommend you set both AllowMapDeferredRendering and AllowModelDeferredRendering to 0
Thx, forgot those!

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 20:27
by Silentwings
lot of hidden settings that aren't available through a GUI. Nor is it clear what all settings actually do.
See http://springrts.com/wiki/Springsettings.cfg, many are explained there.
AllowMapDeferredRendering and AllowModelDeferredRendering to 0... Thx, forgot those!
These will have no effect for you since you have already disabled them as a consequence of other settings.

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 20:28
by smoth
klapmongool wrote:This thread has a purpose. Spring has a lot of hidden settings that aren't available through a GUI. Nor is it clear what all settings actually do.
spring --list-config-vars >>vars.txt

ex
vars.txt wrote: "AtiHacks": {
"declarationFile": "../../rts/Rendering/GlobalRendering.cpp",
"declarationLine": 19,
"description": "Enables graphics drivers workarounds for users with ATI video cards.\n -1:=runtime detect, 0:=off, 1:=on",
"defaultValue": -1,
"minimumValue": -1,
"maximumValue": 1,
"type": "int"
},
go away

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 23:43
by klapmongool
Silentwings wrote:
lot of hidden settings that aren't available through a GUI. Nor is it clear what all settings actually do.
See http://springrts.com/wiki/Springsettings.cfg, many are explained there.
AllowMapDeferredRendering and AllowModelDeferredRendering to 0... Thx, forgot those!
These will have no effect for you since you have already disabled them as a consequence of other settings.
Cool. Handy list, even though a lot lack description. Either way good to have the info.

Smoth, are you saying that all vars have a description somewhere in spring? So every player has to look that up for himself and check all vars in order to find and apply the best settings for him?

This thread already provided useful information for me. I'm sure others will have some use for this info as well. Thanks!

Re: Springsettings optimization thread - Share and Compare

Posted: 18 Jan 2014, 23:56
by FLOZi
What smoth posted is essentially what automatically generates that wiki page.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 00:24
by smoth
FLOZi wrote:What smoth posted is essentially what automatically generates that wiki page.
^ this.
klapmongool wrote:Smoth, are you saying that all vars have a description somewhere in spring? So every player has to look that up for himself and check all vars in order to find and apply the best settings for him?
But hey, it's ok normally you are such an jerk klap I don't bother to read your posts. this time I did. So there. As JK said, your posts are rubbish. There is a simple and easy way to acquire all spring commands if you are too lazy/don't know how to click the WIKI link at the top of the page. I am sorry that playing in settings is a difficult ordeal, that is FUNDAMENTAL to what makes pc gaming more powerful. However, if you would rather have a more turn key experience, I am sure a console or cellular phone is more your speed.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 07:23
by klapmongool
smoth wrote:
FLOZi wrote:What smoth posted is essentially what automatically generates that wiki page.
^ this.
klapmongool wrote:Smoth, are you saying that all vars have a description somewhere in spring? So every player has to look that up for himself and check all vars in order to find and apply the best settings for him?
But hey, it's ok normally you are such an jerk klap I don't bother to read your posts. this time I did. So there. As JK said, your posts are rubbish. There is a simple and easy way to acquire all spring commands if you are too lazy/don't know how to click the WIKI link at the top of the page. I am sorry that playing in settings is a difficult ordeal, that is FUNDAMENTAL to what makes pc gaming more powerful. However, if you would rather have a more turn key experience, I am sure a console or cellular phone is more your speed.
I don´t want a turn key experience. Would I make a thread about sharing obscure Spring settings with other players otherwise? I am looking to manually change Springsettings.cfg in order to have better performance. Not very 'consoly', now is it?

Having part of the information available through commands in the engine doesn't solve any problem here since many of the descriptions are lacking.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 11:21
by Silentwings
Having part of the information available through commands in the engine doesn't solve any problem here since many of the descriptions are lacking.
Imo that's nonsense and a bit insulting to the people who took the trouble to write those descriptions - I've used that info before (my other machine is ATI and is infected with ATI-fail) and found it extremely helpful. I've also used it several times to help other people who couldn't load spring.

Basically the only cases in which doing anything beyond the blindingly obvious to springsettings (i.e. turn graphical stuff off) will help/speed up spring is (1) ATI-fail or other driver/os/hw fail and (2) when some user already fiddled with their settings, didn't know what they were doing and accidentally did smth dumb.

Most of the useful settings have a description and most of the ones that don't are either from groups of all covering some common thing or where the name is entirely self explanatory. At worst you get a link to the relevent pos in the souce code, which is still very handy.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 11:38
by Jools
Silentwings wrote: Most of the useful settings have a description and most of the ones that don't are either from groups of all covering some common thing or where the name is entirely self explanatory. At worst you get a link to the relevent pos in the souce code, which is still very handy.
I think that if we start asking our users to look at the source code, then something is wrong (maybe time time visit a psychologist). Obvious settings should be accessible from a menu ideally. If that doesn't work, then in-game commands are also okay, and so are editing config files. But asking users to look at source code is not okay.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 11:41
by Silentwings
Jools wrote:But asking users to look at source code is not okay.
silentwings wrote:Most of the useful settings have a description and most of the ones that don't are either from groups of all covering some common thing or where the name is entirely self explanatory.
Sorry? Where did your standards come from? What did you think the point of open source was? Players are _not_ asked to read engine source anywhere, as you'd know from above if you'd bothered to read what I wrote. Game devs _are_ and _should_ be expected to check the engine source when wiki fails, at least the not-very-complicated bits. Neither of those facts have much to do with this thread.

Re: Springsettings optimization thread - Share and Compare

Posted: 19 Jan 2014, 12:03
by jK
klapmongool wrote:I don´t want a turn key experience. Would I make a thread about sharing obscure Spring settings with other players otherwise? I am looking to manually change Springsettings.cfg in order to have better performance. Not very 'consoly', now is it?

Having part of the information available through commands in the engine doesn't solve any problem here since many of the descriptions are lacking.
We can discuss the most important config parameters.
But sentences as "disable this to get twice FPS" are just bullshit. RTS aren't Shooters, there is a fundamental divergence between CPU & GPU & RAM/Bandwidth limitation, disabling GPU stuff when you are CPU limited doesn't help you at all.
First you need to say _what_ you want to optimize (startgame, midgame, endgame, ...) and then you need to identify what limits it (startgame is pure GPU & Lua, midgame is a mix of all, endgame is pure CPU & Lua). So we can discuss optimization possiblities for low-end systems (intel gpu, <120$ gpus, ram restricted systems, ...) and AMD driver workarounds, but there are no magic config tags to increase FPS in a 16v16 on speedmetal!