Remove work on my GPU shoulders
Alunduyn
Italy Join Date: 2014-12-05 Member: 199963Members
There has been tons of threads about performance on NS2. Read many of them and the main problem seems to be CPU. Not mine tho.
I have awful FPS drops, from 50 to 2 in any moment, mostly fight but not exclusively. My settings are already to super low (decals lifetime to 0, everything off except physics multithreading, GPU Texture RAM to 1GB, VSync) and I downscaled the resolution from 1920x1080 to 1600x900. I won't whine about "OMG I've 9k FPS on *insert game*", but I really need a hint right now. Game is unplayable as it is now, and I'd really want to keep up (14hrs on record).
Bottleneck is totally GPU : my wait time is from 0 to 5ms during the smooth times, and it grows to 20 or even 50ms, making the framerate drop to 5/10 fps.
I was thinking about lightning : r_stats states always 13 lights rendered. Is there any way to manually remove part of them? My GPU (GTX 260M) is pretty outdated, even if vRAM is 1GB, so texture handling should not be the problem. I guess that remoning things to calculate would make its life easier. Simplifying effects could also help. Could not find any option, be it in game or in config.
Is there any chance to act directly on these? If not, I don't see many chances of playing this jewel well. Reducing the resolution just always increases the FPS by 5 (if at 1920 I go from 45 to 3, at 1600 I go from 50 to 8), so playing at 800x600 would probably make the drops just temporary nuisances, but I'd really like to not go down 1600x900 as resolution.
Thanks for reading
edit : CPU is an intel i7 1.6GHz x4. Not essential to know I guess, but sharing doesn't hurt.
I have awful FPS drops, from 50 to 2 in any moment, mostly fight but not exclusively. My settings are already to super low (decals lifetime to 0, everything off except physics multithreading, GPU Texture RAM to 1GB, VSync) and I downscaled the resolution from 1920x1080 to 1600x900. I won't whine about "OMG I've 9k FPS on *insert game*", but I really need a hint right now. Game is unplayable as it is now, and I'd really want to keep up (14hrs on record).
Bottleneck is totally GPU : my wait time is from 0 to 5ms during the smooth times, and it grows to 20 or even 50ms, making the framerate drop to 5/10 fps.
I was thinking about lightning : r_stats states always 13 lights rendered. Is there any way to manually remove part of them? My GPU (GTX 260M) is pretty outdated, even if vRAM is 1GB, so texture handling should not be the problem. I guess that remoning things to calculate would make its life easier. Simplifying effects could also help. Could not find any option, be it in game or in config.
Is there any chance to act directly on these? If not, I don't see many chances of playing this jewel well. Reducing the resolution just always increases the FPS by 5 (if at 1920 I go from 45 to 3, at 1600 I go from 50 to 8), so playing at 800x600 would probably make the drops just temporary nuisances, but I'd really like to not go down 1600x900 as resolution.
Thanks for reading
edit : CPU is an intel i7 1.6GHz x4. Not essential to know I guess, but sharing doesn't hurt.
Comments
And your cpu is ways below the minimum requirements. Believe me playing ns2 is mostly impossible without having at least more than 2 Ghz per core.
Try out enabling physic multi-threading (might help a little bit) and if you want further support please take a screen-shot of your r_stats.
Some additional ways you might pull a few fps more is by playing on servers that use ns2+ mod. With it you can set a low lights option, reduce atmospherics, and some other minor performance tweaks. I really don't think this will help you enough to make the game playable. Ns2+ also has a tons of other cool features too.
Also, I would recommend playing on smaller servers (16 people) if possible. The more players, the worse your performance can be in those large battles especially in the late game. I recommend this not because of gameplay, but just performance. Even with that I don't think it would be enough.
Also, the minimum required specifications for the game are almost universally agreed as being too low, just for your information.
I'd consider the "Recommended" specs being the bare minimum; A core 2 duo 3 ghz is still going to be slow and together with that 450 gpu you wont even be able to hold 60 fps.
So, in general I would say that your laptop is just too weak to play NS2 enjoyably, unfortunately. You probably have issues running other modern games (that aren't on the source engine) like the new assassins creeds, witcher 2, crysis, metro, shadow of mordor etc?
My condolences if you got tricked into buying that laptop; I really hate retailers who sell "gaming laptops" to people who are unfamiliar, and generally sell low clockrate CPUs and bottom of the current generation GPUs. So many friends of mine have had this happen to them.
If you end up needing any help building a new rig, feel free to ask
Currently have this
Processor Intel® Core™ i5-2320 CPU @ 3.00GHz
Video Card NVIDIA GeForce GTX 550 Ti
Memory 8.2 GB
and am ordering a GTX 970.
Do I need to get a new processor? Will an SSD help with FPS? I load pretty quickly despite my HDD.
Also, if that is a bottleneck, why don't I need a new processor?
There is no "waiting for cpu" anymore in the r_stats due to the fact that ns2 is now somewhat supporting multi-threading.
So "waiting for world update" = waiting for cpu to calculate the world status of the current tick (basically calculate what is going on based on incoming network packages and client input etc. in-game) and pass it to the GPU so that the GPU can start rendering.
Hope that answers your question
As for the Laptop CPU, that is indeed trickery.
Says turbo clock is 2.8 GHz on intel site for i7-720QM. If the Bios allows it (prob won't), straight out oc to 3.2 (optional slight undervolt) might help. As others have said getting even that to playable levels.. tough.
@ATF I'm not familiar or comfortable with overclocking though. I'm not really technically competent. Would it not be safer to get a new processor? Worried about overheating and stuff.
I don't know, I feel like fumbling around installing factory stuff is easier than modiyfing existing stuff.
That's to some point true depending on if you did build your pc with oc'ing in mind or not. Meaning do you have Z77 board, also what cpu cooler do you use etc. .
Overall over-clocking a i5 non k cpu is never the best idea these days as the gain vs power need and heat is not very effective.
So in your case i guess OC'ing wouldn't really help you a lot at all
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.
Indeed, I'm waiting for my GPU, all other values aren't that bad (1/2 ms worst cases).
I attached 3 screenhots of my r_stats. I was spectating. First one is in an easy landscape.<img src="https://us.v-cdn.net/5019629/uploads/FileUpload/c7/79fb2adfe1e199c35b575ca2a013c2.jpg" />
Second one is in fight, but smooth.<img src="https://us.v-cdn.net/5019629/uploads/FileUpload/aa/90ef60850ac7d3f9e14b8b9f46e9cc.jpg" />
Third one is just after a great spike (wasn't able to capture exactly in the middle due to the spike itself). GPU waiting time is going back to 0, but a 22 is visible, showing that it was quite higher. FPSs are still 10 and other 2 "waiting for" are not that bad (7 in world theter, because CPU is not great, but non even close to the 22+ of the GPU).<img src="https://us.v-cdn.net/5019629/uploads/FileUpload/2c/72add7c0b59a772365f3dda240f37d.jpg" />
Hope these can help.
Will check NS2+, was considering adding it universally, features looked quite awesome, this definitively convinced me.
I read about the minimum being not-enough minimum, but I don't feel like being on an Extremely Low-End RIG. I know it's a laptop, it can't even stand a chance against a desktop, I was knowing that when buying, but portability questions and price convinced me. I wasn't misinformed, I didn't regret the choice at all, being able to move it is priceless, and I need to move a lot. Besides, yes, my PC has 5 to 6 years now, but it was a high-end piece of hardware when it came out. The problem might just be hardware failure, but it looks weird because I haven't any problem with other new games (at low specs obvs, can't afford to play Witcher 2 at High, but I don't suffer of insane FPS drops. Metro 2033 is Mid-Graphics, too, and have a great 60 FPS experience. Don't own other games, but I could mention DotA2, Warframe, PoE and Sanctum 2 being played at low-mid settings without problems. Oh, and resolution was 1920x1080 on every one).
About the CPU, is it that crucial? The game makes so little use of multiple cores? Minimum states 4GHz of computation required, with my 4 cores I can get 6,4GHz (1,6x4), but never thought that 3rd and 4th core could not be even used. Is it that necessary to have high clocks on fewer cores? ty for pointing out.
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.
The idea that a quad core at 2Gz == 1 core @ 8Ghz ... does not square with reality.
Not for most programs, but most definitely not for NS2.
Basically, for NS2 your laptop is way too low in specs to be able to brute force it, other engines simply aren't as dependent on sheer brute force of the CPU. Spark might be one of the most modable engines out there and perfect for small dev teams, but it pays the price of having high requirements on minimum settings. Also NS2's content is mostly what is causing this AFAIK, remove powergrid/infestation and the engine suddenly runs a lot smoother (NS2:Combat for instance)
"Powerful" is not a great word to describe performance behavior. The fact that most of the time is 50 FPS with sudden drops to 5 FPS makes even wonder how much less powerful it may really be, or how much performance Unknown Worlds has got out of their game. I'd like to point back the topic on "what to do", not "how big is your RIG". I already stated that I know it's outdated hardware, I know I can't expect 360FPS at HIGH, I'm asking about removing stuff from the render Q, to release my GPU from work. Or CPU. I was quite sure the problem was the first but I'm not that sure anymore.
I know the story of the cores stuff, but 1core 3GHz > 4core 1,6GHz for NS2? I'm guessing this from these posts, but it sounds quite insane, even having spoke of not high-fps-oriented engine.
How many cores are used by a program depends on the program. The NS2 client was designed to use two cores, because that was the target platform. Considering how small the UWE NS2 team was and how difficult it has been to get it to run reasonably well on two cores, it did not make any sense whatsoever of spending resource to make it run better on quad cores.
A 2 core 3Ghz platform will run NS2 "reasonably" (for a generous value of reasonable) well. A 4 core 1.6Ghz platform ... won't.
That being said, I'd guess that a quad 1.6Ghz runs the game pretty much as well as a 2x3Ghz did on release. Which is to say, not very well... things have improved a lot since release (no lua JIT _at all_ back then, and a whole load of tiny improvements in performance).
It is highly unlikely that things ever will improve enough to make a quad 1.6Ghz a viable platform though.
Sorry, but that's just reality.
Mobile GPUs better than yours at that time: GTX 275, GTX 280, GTX 285, GTX 295 (not counting AMD)
Mobile CPUs better than yours at that time: (Yours was actually at the bottom of available CPUs) Core i7-740QM, Core i7-820QM, Core i7-840QM, Core i7-920XM, Core i7-940XM and 11 more in the "Arrandale" category..
Two very resourceful sites that help compare CPUs and GPUs (prices, performance, value) :
http://videocardbenchmark.net/
http://cpubenchmark.net/
*Laptops will always be inferior when it comes to gaming, unfortunately, just do to the power requirements and heat dissipation issues they face.
That's besides the actual difference in similar hardware, too. Here's a good example: Your card versus the desktop version
I've owned (needlessly wasted $) an Alienware laptop and build my own... so let me just say that if you're looking for bare bones systems that give you a good deal for a lot of power, check out http://www.sagernotebook.com/
You won't get Dell level of customer support, but you'll get good prices for the hardware. (and they are less likely to offer BS configurations)
I'm not whining, game is great as it is, I was just digging for more specific informations, and these are. Thanks for sharing. Will consider Overclocking tho, maybe getting those to 2 may help a little.
Let's not bring the talk out of contest. It's a laptop, and due to this hardware will always be forced to face more trouble than a desktop (these being room and heat), and thus a "high tier" graphic card for a desktop will always beat a laptop one. But comparing a desktop and a laptop makes no more sense than comparing a cluster Supercomputer with a really high end desktop. They are completely different platforms (not exactly to be totally honest, those are just clusters, but I'm sure you can get the point). Alienware laptops are not exactly what a gaming RIG should be, but as I stated before portability was not an option, and assembling my personal laptop was kind of out of discussion, considering that heat dissipation and room issues would have still be present. I'll take the fault and rephrase my sentence : "Besides, yes, my PC has 5 to 6 years now, but it was a high-end piece of laptop hardware when it came out." About having spent well or not my money, I'd say this was worth. Thanks for the sites tho, will check them, but I really don't think I will be going for hardware update, nor for a desktop anytime soon, mostly because I can't afford both an hardcore Desktop and a mobile laptop.
P.S.: I hate BBCode. I really do. I had to rewrite all my posts at least once. Sad me is sad.
Might aswell reply as the question was directed at me personally:
I suppose I can outsource the technical difficulties away, but I probably don't need manners in that case.
Kidding aside, I have been recommended a cpu below my maximum budget and been advised that I have to watch out for bottlenecking my gpu as well. Thanks for the help though. Appreciate it.
I do not recommend this advice.
It's the same exact amount as Vsync, but instead of capped frames it can give a few more fps in some cases, so the delay amount will vary.
Actually just about everyone in AusNS who has used it and on Australian servers aren't reporting this mysterious 32ms of input lag? neither am i so i'm wondering why it is so laggy for you and not laggy for us at r_sync 1, actually anything about 1 will give you larger input lag and won't actually help your fps, it lowers it in some cases, which is why i said it was broken on February second this year (4 patches before that latest update)
"Yep, which is why i mentioned if you're already getting higher FPS this will only add to your input lag, which is why i recommended to just disable it.
the input lag is minimal if your fps is around your refresh rate i've found, that means even if my refresh rate is currently 93(modified with cru 1.0) then even 120 fps the input lag is barely noticible, however any higher and it seems to feel like mouth smoothing is on because of how it interacts with the frames."
Anyway, what ever man, Just let op decide what he wants, your hardware is different to his.
http://esreality.com/post/2640619/input-lag-tests-ql-csgo/
The 16-32ms are simple to calculate. 16ms is for 60 fps (1second / 60 = 16ms) and 32 is for 30 fps (1 second / 30 = 32 ms). That also simple math.
Now the debate is of course if those 16-32ms ADDITIONAL inputlag (which are added on top of your monitor delay) is acceptable or not. For some it is, for some its not, thats why some people use double buffering, some dont.
So while your suggestion is interesting, as the r_sync command was previously unknown to me, just dont forget that it adds, by its nature, input lag.
You can test it yourself by setting r_sync to a higher value, then you will have a very noticeable input lag.
Test case, most gamers are using over 125hz default mouse-rate, something closer to 500hz-1000hz, when it all adds up the engine is using around 10ms itself, r_sync at default engine values allows for rendering at 3-4% in quiet environments, with flip queue set to 1 instead of 3 (amd+nvidia both default on 3) you get 1% rendering but also more skipping, but the mouse input is technically non-existant, the difference between flip queue 1 and 3 is barely noticible, only difference is you lose 30-50fps depending on your setup.
Input lag at the core of things, it's only affecting the mouse. and 500hz, 1000hz polling rates (most gamers use is enough to bypass this including with other mouse fixes, whoever uses 125hz deserves to be shot in the foot tbh.
edit:Did i mention when changing flip queue in the registry, my FPS wasn't dropping like psycho, before-hand it was dropping down 30 fps then back up now it's pretty minute.