(Posted in PA bug tracker) If some of you could test and try to reproduce, then post feedbacks, that would be nice I have noticed this since the very beginning of Alpha, and i can reproduce it at will : My configuration first : Core i7 3770K 32gigs of memory 660TI Desktop graphic card The test : Building 6 kbots factories and producing 1200 Kbots. When all this is produced i can reproduce these performance issues at will : 1) While i'm at ~25FPS, i zoom out, double click on 1 kbot unit in order to select them all As soon as this is done, FPS suddenly drops down to 4FPS. Still in full zoom out, i left click on the ground in order to unselect them all : FPS increases back to ~25 FPS I can repeat this at will. Eventually, at some point, even clicking on the ground will not make FPS increasing back to 25 FPS but stuck at 2/4 FPS. This can be also done by drawing a square around all kbots. 2) While i'm at ~25FPS, instead of selecting all Kbots (by double clicking on 1 kbot), I select a small group of units and make it patrol => FPS do not drop. I repeat this for all remaining kbots in order to have 10 group of units patrolling. The FPS slowly decreases down to 15 FPS and i have my 1200 kbots patrolling together. But there's more : 3) I use the chorno cam in order to move backward in the past and i can see all my 1200 kbots patrolling all together with a very nice 25FPS. When i reach the current moment in time my FPS drops down to 15/25 FPS. So it's obvious : * If splitting my 1200 kbots within 10 group of units and making them patrol at the same time (around the same location so that they have to be displayed all together), having 15FPS * Selecting all of them with a double click an having FPS dropping down to 4FPS * Using the chronocam and watch these 1200 kbots running smoothly while in the past Then it's not a problem of graphic card not being able to handle the workload. It looks like related either to PA client bug (when having to work with a single large pool of units) or maybe simulation not being able to work with a single large pool of units when it's about sending the information to the PA client. Using the chronocam and being able to have my 1200 kbots running smoothly at 25FPS makes me believe the simuation is able to simulate everything in real time, PA client is able to handle the workload sent by chronocam, but at soon as we're back to ream time PA client does not seem to properly handle the workload. This leads to the following temporary conclusion that one can experiment a very nice game provided not all units are selected at the same time, and playing with many small groups of units.
Please alpha testers, try the same test as i did and let me know if you have the same issue, unless garat or anyone else confirms this is a normal behaviour related to being in alpha. Would appreciate you provide your feedback by testing yourself this scenario. The simple thing you have to do is launch a game with 3 AIs, then build lots of powergen and mass extrators, build 6 L1 kbots factories and make them produce each at least 100 kbots. Then test. I confirm i can make this happen any time. Thanks
I think the most likely explanation is that when you have all those units selected the game needs to draw 1200 selection boxes around those units. SupCom had a similar issue when you had range rings enabled for each individual unit. It extremely killed the fps to have a few houndred red rings displayed at the same time.
It's a long way off from any perf - 1200 units in a small space is gonna push the envelope. Heck - dragging the window border to make the window larger drops perf down to 5fps.
Ok but here additional information : 1) When i'm double-clicking i'm in max zoom out : there's nothing to display yet however FPS suddenly drop from 25FPS down to 4FPS : what is to be displayed except strategic icons when i'm in max zoom out ? 2) Still in max zoom out, i left click on the ground (in order to unselect all units) : FPS increases from 4FPS up to 25FPS. still : what is to be undisplayed ? 3) When double clicking (zooming in enough to see the 1200 kbots displayed) all the squares are instantaneously displayed. There's no lag to display them. So how can FPS be impacted that much ? This is driving me a little bit crazy : how can rendering 1200 squares would impact FPS ? If it's really the case, i would be happy to have a technical explaination Last but not least : While making small group of 50units patrolling (1200 units as a total) it does not impact the framrate this way. So 1200 Kbots patrolling in the same zone, all being visible at the same time, being animated at the same time does not impact FPS while simply displaying 1200 squares (because selected alltogether) would impact FPS that much ? Sorry but i'm missing something. I want to be clear : i'm not complaining about this happening. I'm simply wondering if this is a bug or not. There's of course another test i can do : Selecting the 1200 units as a single group , make it patrol and left click on the ground to unselect them. They should be moving, squares should not be displayed anymore and FPS should be back to original value. Will test this by this evening and will post. I would frankly appreciate if garat or someone from Uber could let me know if it makes sense to move forward on investigation this issue. Thanks
I tested again and again : When My 1200 kbots are patrolling together, there's no square around them anymore and FPS is 4FPS. While in the same time, many smaller group of units (1200 total) patrolling in the same zone do not impact FPS this way. So there must be something wrong. This does not prevent the game from being so far so enjoyable to play
This is what lets me think the selection squares combined with some kind of LOD flaw (bug or not implemented) are at fault. If you only select a few units at a time it seems to work fine. I'll try it myself now.
I tested it and I think the problem indeed has to do with those selection boxes or something else that happens when a unit is marked for selection. I've made a video that cleary shows how the GPU load drops from ~70% to below 30% while the fps drop from 10 to 15 down to 5. It directly and without any latency relates to how I draw a box around the bots. I don't even have to release the left mousekey. Just moving the selection box makes it pretty clear that those selection markers somehow stop the gpu from working. I'd guess that they somehow disrupt what the CPU does, the cpu load indeed shows slight increases while the selection happens, but the cpu has 4 cores, so it is harder to tell the difference. Whatever those selectionboxes do, they are horribly inefficient. System: i5 3550 Radeon 7850 2G 16GB Ram Win7 x64 Link to video showing the behavior: http://www.youtube.com/watch?feature=pl ... a300#t=29s
[FS#1273] big FPS drop (related to PA client bug) You're absolutly right : I tested again and noticed this => Even with not that much units, i can notice a FPS drop when selecting all units. And in this very last test i did just now i managzged to reproduce the issue and it's clearly related to drawing these square. Even at some point, double clicking does not seem to select all units. But when there are no blue squares around units, FPS increase back to original value. Do you think i should keep this reported as a bug in bug tracker ? I will refer to your video in case you do not log a performance bug. Video is very instructive ! Thanks again for testing with me
The developers do know of this, quoting from the irc: <ColaColin> i.e. selected a lot of units kills the fps <[UBER]Justice> The drawing of the blue selection indicators is very slow right now. Not using any sort of instancing or anything. <ColaColin> weird thing is it cuts gpu usage in half <ColaColin> I'd expect slow drawings to push it to 100% <[UBER]Justice> Well, its the sending of the things to the GPU that is slow. I think they're all completely separate. <ColaColin> ah i see <[UBER]Justice> I think all the in-world-rendered UI has had none of those sorts of optimizations yet. <ColaColin> i see <ColaColin> well I guess it only really shows when you have a lot of units selected <ColaColin> thanks for the info