#(IN-37258) Long stalls can be observed on Android platform

1 messages · Page 1 of 1 (latest)

bleak orchid
#

@blissful surge Will this IN-37258 case look into and start implementing improvement soon? At issue tracker it's still at Active status

blissful surge
#

Hey Lim! Unfortunately I can't provide any extra details today. We have a lot of non-performance related work. Cristian (and I) are doing performance work here and there, but it's slow progress.

bleak orchid
blissful surge
#

Very hard to speculate, but:

  • My guess is a combination of small "death spirals" + network conditions.
  • Are you able to see ping over time? I.e. Is ping (RTT) changing wildly throughout the session?
  • Are you able to view / log how many prediction steps you're performing per render frame? Is that increasing? Or is each prediction step taking longer?
  • Maybe it's chunk utalization getting worse over time?

Apart from the obvious (more predicted ghosts), higher ping should be the only thing causing prediction to get more expensive.

bleak orchid
blissful surge
# bleak orchid I can pm u profiler data. - Should be no "death spirals since I run real andr...
  • Sure, happy to take a quick look.
  • Death spirals can happen on the client even without server. Client takes too long to process a rollback + prediction loop, falls behind. Next prediction loop, needs to do more work to catch up. Falls further behind. Repeat. etc.
  • 6 times per frame on both before and after rules out ping degradation yeah. Odd.
  • Could it be device temp-related self throttling? I.e. Does it get hot? If it's one of the supported Samsung devices you could plug in the Adaptive Performance SDK.
#

If it's temp, you'll also see in the profiler that worker threads become less available, or take longer, AFAIK.

#

One way to test this is to test with a sub-set of the game that is far below your performance threshold, and see if netcode degrades there.

Oh, btw, is it just netcode taking longer? Or do all systems slow down?

#

**Just to add: **I used prediction + rollback as an example of what can cause death spiral, but it can happen with any CPU work that is on a fixed DT. This is why variable DT for rendering is so useful (and common).