Hello again!
We are using a large, World Partitioned world with a Landscape and Height and Material RVTs. In this world, we are using a PCG graph to generate grassy ground cover. Generally, this works great! Except during the initial world load, we see that the grass does not generate in whatever area the player loads in. Some details:
- If we disable the PCG cache or forcibly regenerate PCG via console commands, the grass generates correctly.
- If we move around to trigger more PCG generation elsewhere, it generates correctly.
- We are already using World Streaming Queries and RVT Priming in this graph.
- If we set a large pcg.WaitForFrames value, the issue does not occur. Similarly, if we use the GlobalRadiusMultiplier to shrink the radius heavily, the issue occurs less frequently.
All of this makes me think there is some timing issue occurring, possibly with RVT residency or GrassMapTexture rendering, such that when the PCG runs it gets valid-but-low-value data, cannot generate any points, and caches that off.
However, I’m having trouble testing any of these theories. The issue is both a race condition, and reliant on some systems that are pretty opaque to me. Any guidance about what might be causing this is welcome!
[Attachment Removed]
Steps to Reproduce
We don’t know the cause
[Attachment Removed]
Hi Christopher, sorry for the late answer.
In general, you want to disable the cache at runtime as it isn’t really useful. There are probably a few things that were improved with the runtime scheduler in the last version (5.7 and 5.8) but it would be hard to pinpoint the right CL to cherry pick.
If disabling the cache is working for you and you don’t see perf degradation, I would go with that.
You could also as you said just ask for a refresh on player load, which is fine too.
If you need other solutions, we can look into it in more detail 
Have a nice day!
Adrien
[Attachment Removed]
Ah good catch! I’ll keep that in mind for future support tickets 
Glad you fixed it ^^
Have a nice end of the week
Adrien
[Attachment Removed]
Hi Adrien,
Thanks for the response. Actually, we solved this -- I’ll summarize here for future devs.
In short, the issue was that we were pausing the game for an initial load. In pausing the game, this apparently meant the render thread was not consuming operations. Our PCG did a bunch of work, including moving the pooled components around, that was queued up but not executed on the GPU.
However, the moving-components-around operation dirties the SceneProxy for the PCG output. So as soon as we did tick the game once on unpause, the GPU immediately threw away all of the queued PCG work because the SceneProxy was dirty. Womp womp.
So, we just tick the render thread once manually before doing any PCG work.
[Attachment Removed]