Fully Async Nav Data Gathering with Nav Invokers results in extremely limited navmesh generation

We currently use nav invokers exclusively for generating navmesh, and we have been trying to find ways to reduce the impact of navmesh generation.

Recently we tried to use the “Fully Async Nav Data Gathering” option in the project settings, but when it’s active it seems to severely limit the amount of navmesh that actually gets generated.

Is this expected behavior? I’ve tried bumping the total allowed generation jobs, but I can only assume that number is independent of the gathering jobs since it didn’t seem to have any effect, and I can’t seem to find any other value that would limit how much nav data could be generated.

I’ve also tried this with instant and lazy data gathering. Both had the same effect, and we’ve got our tile size set to be within the ratios suggested in documentation based on our navmesh resolutions.

If there’s any way to remove whatever is limiting this or any other suggestions for optimizing navmesh generation, I would greatly appreciate the info.

Thanks!

Steps to Reproduce
set “Fully Async Nav Data Gathering” on,

use dynamic navmesh generation only around nav invokers,

make invokers generate a fair amount of navmesh in world and observe that the amount generated is cut off at much lower tile counts than with “Fully Async Nav Data Gathering” turned off.

Hi Zachary,

This could be due to the fact that Fully Async Nav Data Gathering is done with only a single worker thread. It is also limited to a single thread or else it might crash as the engine does not support parallel gathering. Also, using async data gathering limits to building for a single tile at a time which is related to the gathering being on a single thread.

We do make heavy use of invokers for Lego FN with 4+ supported agents and each agent has its own navmesh to be built. Several systems were created to help with invokers such as the seeding and priority of invokers. You can also set an invoker to only build for a subset of the navigation agents instead of building for all agents. You could also look into changing the NavRegenTimeSlicer settings to change the amount of time spent on building tiles per frame. We dynamically change these values throughout gameplay in FNBR based on the current state of the match.

-James