PDA

View Full Version : Moving tokens drops output every 1 second, pointers every 2.5 seconds



Weissrolf
November 3rd, 2020, 09:32
Hello.

When tokens are moved over a LOS map there is a massive frame-rate drop every 1 second, output is practically stopped for a short time. When pointers are moved it happens about every 2.5 seconds. This does not seem to happen on maps without LOS (tried a GM map).

Tokens:
https://i.imgur.com/Fn4GV4F.png

Pointers:
https://i.imgur.com/jdNTxtz.png

PS: While testing this it happened that I could not grab/move tokens anymore until I closed and reopened the map.

Moon Wizard
November 3rd, 2020, 16:59
Moving tokens requires updating the LoS visibility of every token with every other token on a map; as well as adding/removing targeting lines. So, I would expect some higher utilization during token movement.

I'll pass on the note about moving pointers. I think it's probably an artifact of the complexity of the image layering system.

Regards,
JPG

Weissrolf
November 3rd, 2020, 17:45
Thanks for the quick reply, but this is not just higher utilization (minuscule on my 2070S), this is frame-rate dropping down to 5 fps, virtually stopping output every 1s. And LoS visibility is constantly updated while the token is moved, still the drops only happen every 1s (see the spikes in the graph). It also does not matter whether I am using 1 token or 2 dozens, same result.

This looks like some background task happening every 1s that interferes with LoS processing. And seeing how FGU is mostly only single-threaded (not happy about that in 2020!), it's easy to imagine one part getting in the way of another.

Repeatedly opening/closing a character sheet (double-click on char token) creates a spike every 5 seconds. This is all happening in a single CPU thread.

Kelrugem
November 3rd, 2020, 18:17
Thanks for the quick reply, but this is not just higher utilization (minuscule on my 2070S), this is frame-rate dropping down to 5 fps, virtually stopping output every 1s. And LoS visibility is constantly updated while the token is moved, still the drops only happen every 1s (see the spikes in the graph). It also does not matter whether I am using 1 token or 2 dozens, same result.

This looks like some background task happening every 1s that interferes with LoS processing. And seeing how FGU is mostly only single-threaded (not happy about that in 2020!), it's easy to imagine one part getting in the way of another.

Repeatedly opening/closing a character sheet (double-click on char token) creates a spike every 5 seconds. This is all happening in a single CPU thread.

As far as I remember, the LoS stuff is actually multi-threaded, but not sure :)

But how many LoS nodes do you have on that map? I expect a slowdown when you really have a lot of such nodes; then it might be better to split the map in smaller pieces :)

Weissrolf
November 3rd, 2020, 18:59
Let me clarify again, there are no slowdowns happening in between the regular frame-rate dips (CPU load spikes). As long as the token is kept being moved the spikes happen on a clock (see the graphs I posted before). But I just opened another map and experienced the drops happening in a longer interval with tokens.

And unfortunately no, it's all running in a single FGU thread apart from some Unity player threads doing minimal extra work plus a Nvidia driver thread. Even worse, with many LoS nodes FGU output (FPS) is absolutely CPU bottlenecked while the GPU is twiddling thumbs mostly idle. So more tokens on the map = lower overall FPS, but the regular spikes happen with one token or many in regular intervals (look at the graph).

https://i.imgur.com/GfvcUfe.png

This is on an Intel 9900K in combination with a NVidia 2070 Super. So throwing more money on the problem is not going to help much.

pindercarl
November 3rd, 2020, 22:12
@Weisstolf A few questions:

1) Can you provide a copy of a campaign that clearly exhibits the issue? (I can send you a Dropbox link, if you'd like.)
2) Does this happen when no players are connected?
3) Did this behavior begin with the latest release?

Thanks.

Weissrolf
November 3rd, 2020, 22:50
1) I can reproduce it with a fresh PF2 - Age of Ashes campaign with any of the more complex LoS maps. Time gaps are larger then, though. Using an empty FG "Battlemap" does not produce these distinct dropouts, populating the map does have some impact, though.

Turns out that the one map were I had the 1 second gaps is one I imported from my Classic campaign. This is the "Jungle Clearing 2" map from AoA part 2, but I put two dozens pointers on said map to emulate the bushes' LoS obstructions in Classic. Moving a single token around this map leads to the shorter gap dropouts (rest of CT and map empty). This is also the map where moving a token leads to similar dropouts, but at longer intervals.

I can upload this campaign to you.

2) No players connected.

3) I only just reinstalled FGU (after purchase) and started testing it again, planing to switch a campaign to it. I think I started this feedback thread before the last update arrived, but I am not even sure about that.

Weissrolf
November 11th, 2020, 09:40
So where do I upload the campaign to? Or did you reproduce this in your own tests already?

Zacchaeus
November 11th, 2020, 09:55
So where do I upload the campaign to? Or did you reproduce this in your own tests already?

Put it in Dropbox or somewhere similar and email the link to [email protected] and link to this thread as well.

Weissrolf
November 11th, 2020, 11:25
I sent a read-only link to the OneDrive folder where the campaign resides anyway. It can be reproduced with a fresh Age of Ashes campaign, too. But my "Map: Jungle Clearing 2" is full of pointers on top of the LoS blocks, so it's easier to reproduce there.

pindercarl
November 11th, 2020, 15:19
So where do I upload the campaign to? Or did you reproduce this in your own tests already?

I was able to reproduce similar results. Changes will be available in the next release. [Edit: Looks like a new build was released yesterday, the changes should be in the most current build. Are you still able to reproduce?]

Weissrolf
November 11th, 2020, 17:13
Happens in Live, Test and Dev channels (4.0.1).

pindercarl
November 11th, 2020, 17:34
Happens in Live, Test and Dev channels (4.0.1).

I re-read your original post. I was able to identify some unusual CPUs spikes at the regular update interval, with an occasional big spike on garbage collection. I was not able to reproduce a one second interval spike in CPU.

Weissrolf
November 12th, 2020, 08:50
I cannot reproduce the one second interval myself anymore, but the two(+) second interval is still reproducible (both demonstrated in 1st post).

Weissrolf
November 20th, 2020, 22:36
Lately I noticed fps dropouts happening every 12 seconds, unfortunately I forgot what processing I did during that time (likely periodic die-rolls of medium pace). When I changed VSync from 1 to 4 the dropouts happened in larger intervals. This suggest that whatever kept the CPU busy every x seconds was linked to vsync/graphic-output.

Weissrolf
November 28th, 2020, 16:19
The faster a token is moved the shorter the dropout interval:

Fast movement:

https://i.imgur.com/Mh2ZBzy.png

Slow movement:

https://i.imgur.com/RRLQlue.png

Keyboard movement introduce its own additional performance penalty, especially when directions are changed:

https://i.imgur.com/TcdJeUo.png