Where's my bottleneck?

BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
So I just upgraded from an old GeForce GT 610 to a 750TI, and my game's running a hell of a lot better. I put most of the settings up to max, and am playing at my native resolution just fine (before I had everything turned off and was downscaling to 960x540 to get 25 FPS at the menu screen) and I get about 30-ish FPS, minimum of 28 in extreme scenarios. That's more than acceptable, but if it's at all possible I'd like to look into OC'ing either my GPU or CPU, depending on which is the bottleneck. Attached is a screenshot of my r_stats.

Comments

  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    Looks like your gpu is your bottleneck since you are waiting 9ms for gpu. I see you have 30fps too.

    What is your cpu? I currently play ns2 on a 3570k @4.6ghz and a 750ti overclocked. A 750ti is not enough of a gpu to push ns2 to max settings.
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    *preparing for probable shaming* I am using an FX-8320 OC'd to 4.4 for my CPU. I know how much people like to hate on AMD processors but my 8320 has never given me trouble in a game yet. I could definitely OC it higher (I have in the past) but my rig has pretty poor cooling currently; it's just an air cooler for the CPU and GPU, and no case fans. I got it up to 4.8 but the temps were 65+ degrees in 8-thread operations so I dialed it back.
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    Just for the convenience of anyone else taking a look, here's a screenfetch output for my system.
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    Boolean wrote: »
    *preparing for probable shaming* I am using an FX-8320 OC'd to 4.4 for my CPU. I know how much people like to hate on AMD processors but my 8320 has never given me trouble in a game yet. I could definitely OC it higher (I have in the past) but my rig has pretty poor cooling currently; it's just an air cooler for the CPU and GPU, and no case fans. I got it up to 4.8 but the temps were 65+ degrees in 8-thread operations so I dialed it back.

    The 8320 is a great cpu, but not for ns2. Ns2 relies heavily on single threaded performance, which amd is weak on. Ns2 does. I will reference this thread with a 9590 and a 560ti which is comparable to a 750ti. An overclocked 8320 although not ideal, is ok for ns2.

    To explain ns2's cpu performance:
    matso wrote: »
    The client on average uses about 2.5 cpu. It makes use of upto 4 cores with physics multithreading on, but only in short bursts. Most of the time, the speed of the game will increase linearly by Ghz. Performance will improve by a little with a third core, not much by the fourth core and nothing beyond that.

    Still though you are gpu limited at least by what I see in your r_stats. So overclocking your 750ti will net you the most gains. Your 8320 probably won't give you much gains if overclocked more.

    Things that will help performance:
    Turn multithreaded physics on. It give you a slight increase.
    Lower your graphics settings. Specifically turn off shadows and ambient occlusion as these are some of the harder hitting settings. Other settings will raise your fps but it seems you value high graphics settings. Not only will this increase fps because you are not using your gpu as much, it will help cpu performance somewhat too.
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    Nordic wrote: »
    Boolean wrote: »
    *preparing for probable shaming* I am using an FX-8320 OC'd to 4.4 for my CPU. I know how much people like to hate on AMD processors but my 8320 has never given me trouble in a game yet. I could definitely OC it higher (I have in the past) but my rig has pretty poor cooling currently; it's just an air cooler for the CPU and GPU, and no case fans. I got it up to 4.8 but the temps were 65+ degrees in 8-thread operations so I dialed it back.

    The 8320 is a great cpu, but not for ns2. Ns2 relies heavily on single threaded performance, which amd is weak on. Ns2 does. I will reference this thread with a 9590 and a 560ti which is comparable to a 750ti. An overclocked 8320 although not ideal, is ok for ns2.

    To explain ns2's cpu performance:
    matso wrote: »
    The client on average uses about 2.5 cpu. It makes use of upto 4 cores with physics multithreading on, but only in short bursts. Most of the time, the speed of the game will increase linearly by Ghz. Performance will improve by a little with a third core, not much by the fourth core and nothing beyond that.

    Still though you are gpu limited at least by what I see in your r_stats. So overclocking your 750ti will net you the most gains. Your 8320 probably won't give you much gains if overclocked more.

    Things that will help performance:
    Turn multithreaded physics on. It give you a slight increase.
    Lower your graphics settings. Specifically turn off shadows and ambient occlusion as these are some of the harder hitting settings. Other settings will raise your fps but it seems you value high graphics settings. Not only will this increase fps because you are not using your gpu as much, it will help cpu performance somewhat too.

    If I interpreted your posts right, and the world update or render is indicative of CPU performance, my 8320 doing a damn fine job. 1 ms or 0 ms of wait on the CPU? That's better than a lot of r_stats screenshots I see around here, even from some Intel processors. I admit I use an 8 core processor more for compiling than gaming, but that looks pretty good to me. I mostly value framerate over graphics, and thanks for telling me which ones help bring framerates up most; I'll turn those off and give it a go.
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    matso wrote: »
    NS2 has a somewhat complex performance profile.

    Main sequence of steps in generating a frame:
    1. Check if the GPU is overloaded (has too many outstanding frames of data) , waiting until the GPU catches up
    2. Setup for rendering (draining stuff from the Lua world into the Spark engine)
    3. Split off a WorldUpdateJob in its own thread, which will use the Lua VM to prepare data for the next step
    4. Do the actual rendering pipeline work (which does not use the Lua VM, it's all C++)
    5. Wait for the Update Job to finish.
    6. Finish off the frame (using the Lua VM)
    7. Present it to the GPU and wait until the GPU has accepted it (driver pushing data to the graphics card)

    Note that as the LuaVM is not multithreaded, it has to be handed off between threads, with only one thread using it at a time.

    There are three wait points here which are shown on r_stats
    - waiting for GPU : shows how much time the thread spends waiting for the GPU in #1 + #7
    - wait for renderer > 0 : shows the time between the end of the UpdateWorldJob and when the render finished, so step #4 is the bottleneck
    - wait for update > 0 : is time spent in step #5, ie the UpdateWorldJob is the CPU bottleneck.

    Note that while in any one frame, only one of wait for update/render can be > 0, what is shown is the average. So a little bit of flickering between renderer/update thread shows that they are balanced.

    The UpdateWorldJob is normally the CPU bottleneck in lategame, while the render is usually the CPU bottleneck in the early game.

    You can use these to figure out where your bottleneck is and what you can do to improve performance.

    Only measure during lategame combat stuff; measuring when the game is idling is useless.

    1. If the GPU limits you during lategame, try dropping graphics settings.
    2. If the render thread is the limit during lategame, drop graphics settings
    3. If the update world job is the limit ... make sure you have physics multithreading on, that's the only one that affects the world update job speed. Then increase your graphics options until things are balanced.
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    ^^That^^ is good info to know. Clearly then it's my GPU. I just realized that physx GPU acceleration was off. Will that bump my framerates up a bit when I turn it on?
  • GhoulofGSG9GhoulofGSG9 Join Date: 2013-03-31 Member: 184566Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Supporter, WC 2013 - Supporter, Pistachionauts
    edited December 2014
    Question from my site as your screen-fetch is from Linux mint. Do you play at windows or linux.

    Because if you do play at linux there the gpu is overall the bottleneck due to the fact that the opengl render has some issues currently.
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    edited December 2014
    Question from my site as your screen-fetch is from Linux mint. Do you play at windows or linux.

    Because if you do play at linux there the gpu is overall the bottleneck due to the fact that the opengl render has some issues currently.

    Yes, I'm playing on Linux Mint. I know the OpenGL renderer is still in beta, hopefully any kinks are worked out relatively soon. I really love this game when I find a good server with knowledgeable comms.

    Very helpful members here, glad I joined the forums.
  • IronHorseIronHorse Developer, QA Manager, Technical Support & contributor Join Date: 2010-05-08 Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
    Be sure to keep Ambient Occlusion and Atmospherics off to help with GPU performance (and mouse input timing)
    Just asking because your FPS in that shot was 29.59 ... are you using Vsync?

    Because that will incur mouse delay as well, and when the game cannot hold 60 fps (your monitor's refresh) it will automatically cap your FPS to 30.. (often 29.x)
    So you may be artificially limiting your fps.
    Hard to tell without your techsupport zip file though ;)
  • BooleanBoolean ? Join Date: 2014-12-06 Member: 199982Members
    edited December 2014
    IronHorse wrote: »
    Be sure to keep Ambient Occlusion and Atmospherics off to help with GPU performance (and mouse input timing)
    Just asking because your FPS in that shot was 29.59 ... are you using Vsync?

    Because that will incur mouse delay as well, and when the game cannot hold 60 fps (your monitor's refresh) it will automatically cap your FPS to 30.. (often 29.x)
    So you may be artificially limiting your fps.
    Hard to tell without your techsupport zip file though ;)

    Vsync, Ambient occlusion and atmospherics are all off.

    Tell me what process I need to go through to help you guys. I recently found a better r_stats during a period of intense lag late-game, and it may be my CPU after all. I'll likely turn down some settings anyhow, all this is just out of my own curiosity.
  • IronHorseIronHorse Developer, QA Manager, Technical Support & contributor Join Date: 2010-05-08 Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
    What Ghoul said is very true, you're going to run into sub optimal performance with the OpenGL renderer, unfortunately.
    It is very much known, and Linux fixes have been trickling in lately in the prior patches and it looks like this next one may as well.
    However, while we have theories on why the rendering isn't ideal, (like that it may be running in a windowed mode, even when fullscreen) there is no immediate solution submitted at this time.

    If r_stats reports anything other than "0 ms" for "Waiting on GPU" - then you are definitely GPU bound.
    It's typical for some users to not have polarizing hardware (Fast CPU with slow gpu etc or vice versa) and in these cases it would be expected that you would be GPU bound in the early game, but CPU bound late in the round when there are lots of entities.

    Just in case though, could you provide your options.xml and system_options.xml files? I am unsure where they are located on Linux, but I bet you can find them :)
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    edited December 2014
    Boolean wrote: »
    IronHorse wrote: »
    Tell me what process I need to go through to help you guys. I recently found a better r_stats during a period of intense lag late-game, and it may be my CPU after all. I'll likely turn down some settings anyhow, all this is just out of my own curiosity.

    You will end up cpu bound eventually. My 3570k @4.6ghz is quite a strong cpu but even with my weaker albeit excellent 750 ti I become cpu bound late game. Even the latest haswell cpu's at 4.6ghz will still be cpu bound in ns2.
Sign In or Register to comment.