At certain angles of the camera, at certain angles, various parts and models, local character included, stream in and out rapidly.
I have no repro steps, this seems like it’s localized to this one game, our team is unsure of the impact.
However, turning streaming enabled off entirely resolves it.
The relevant place ID is 81246389901587 (edit: 94616760701754 suffers from the same problem). See this video here, and see private content for profiler dumps.
My systems info:
Ryzen 5 3600
16 GB DDR4
GeForce GTX 1660 6GB
W11 preview stable
The game’s streaming settings are as below, though changing any or a combination of them does not impact, mitigate, or in any way reduce the frequency of the problem.
Predictive streaming - default
Stream behaviour - improved
Streaming out behaviour - opportunistic
Next gen replication - default
All models streaming behaviour are set to default (non-atomic).
Streaming enabled - on (this problem disappears entirely when streaming is off)
thanks. in following up after some experiments, it looks like turning streaming enabled off was the only way to resolve it, and we really aren’t in a position to turn it off.
Place 94616760701754 has the same content and suffers from the same issue. That place should be joinable by one of those direct-start links.
Thank you for reporting this issue. We’ve found the root cause of the issue and will have a fix in an upcoming release. I will keep this thread updated for when we are able to enable the fix.
This was a bug that had been in the engine for a long time but the conditions to trigger it are rare so nobody else had reported the issue.
Basically, each terrain chunk will provide occluder mesh information. This is designed to update with the renderable mesh so that the occluder meshes match up.
So for instance, when using streaming if we create a chunk mesh with LOD3 voxel data then stream in LOD0 voxel data, we will update both the render mesh and occluder mesh with the higher accuracy data.
But chunks will only conditionally provide occluder information. For instance, a chunk that is all water will not provide occluder data. In cases like this we are suppose to remove the old occluder info, but in rare circumstances we instead keep the old occluder info active. In your case this caused a sheet of buggy occluder mesh to appear and cull parts that it hid.
I suppose if the old occluder info was kept in “rare circumstances”, I’m assuming it’s probably accounting for a very rare edge case? Or was this something that was rather left accidentally in there?
And with that, I’m also a little lost. There are a few large bodies of water in our game, it doesn’t seem like we are experiencing this issue (from QA and my experience) in other regions of the map, but only this one very particular region where we have two pools side by side. Thus, what was so different in that particular map region that triggered this rare case? I can only think of the fact that I had that water surface at a number not divisible by 4 in full.
Edit: whatever you can share on this is great. I was told at RDC that anything in regards to streaming & culling is a very delicate and scrutinized system, and I respect a lot of the unknowns/untellables that surrounds this.