This CL introduces two modes:
- ForceDormancyAwake : This is the current behavior, as soon we attempt to update replicated data we set the owner dormancy to awake
- FlushNetDormancy : Before updating replicated data, we flush the dormancy of our owner
The modes can be changed with the cvar p.Chaos.GC.NetAwakeningMode (0-1)
This change also makes UClusterUnionReplicatedProxyComponent flush its owner dormancy before updating its replicated data.
This can be disabled with the cvar p.Chaos.CU.UseFlushNetDormancy set to false
#rb cedric.caillaud , ryan.gerleve
[CL 28770731 by sergio gardeazabal in ue5-main branch]
- This change won't have much impact on memory when building in game, but the impact will be when loading. Also it harmonize the Dynamic Collection and the Rest Collection. And so it optimizes the access, and conversion to transforms.
- DynamicCollection has a function set back transforms to its RestCollection, and free memory
- Remove function from ManageArrayCollection makes sure to free memory now.
#rb cedric.caillaud
[CL 28721098 by vincent robert in ue5-main branch]
- ShouldUpdateComponentTransformToRootBone to expose a getter for bUpdateComponentTransformToRootBone
- New FOnGeometryCollectionRootMovedEvent event to know when the root bone moved
#rb cedric.caillaud
[CL 28683342 by michael bao in ue5-main branch]
- Also make sure the ISM Pool sub components are properly attached to the root component
#rb michael.bao, jeremy.moore, benn.gallagher
[CL 28483114 by cedric caillaud in ue5-main branch]
- Removed Implicits
- Removed Particles
- Compressed Dynamic State
#rb cedric.caillaud, benn.gallagher
[CL 28427877 by vincent robert in ue5-main branch]
- Removed old vertex-attribute centered buffers & useless translation code & replace with GPU-scene centric data
- Made the instance data persistent over scene proxy re-creates.
- Tracks per-instance data changes in the ISM & implement delta updates, remove need to call "MarkRenderStateDirty" for most instance updates
- Added preliminary ID-based interface for ISM such that users can forego needing to match the internals (e.g., remove swap, required when using indices).
- Unified the instance data use in the renderer (removed mix of old & new buffers and processing sites) - all code now sees orthogonalized transforms, the same as is in GPU-Scene.
- Added FInstanceSceneDataBuffers and moved instance data buffer arrays to that from the Primitive proxy
- Added FISMInstanceDataManager, which is responsible for tracking changes & dispatching updates. The ISMC owns one of these.
- Instance data update tasks are async and waits are only done when needed, e.g., for GPU-scene update moving this off RT and later in the frame.
- Added FInstanceDataSceneProxy, which is the owner of the scene data buffers and is updated by the manager by way if a shared reference with the primitive proxy.
- Removed FPerInstanceRenderData, ISMC::PerInstanceRenderData
- Removed FInstanceUpdateCmdBuffer
- Lumen, GPUScene, SceneCulling, RT, DF all now retrieve data from FInstanceSceneDataBuffers rather than a mix of previous buffers. All now use the primitive-relative space.
- Geometry Collection & Spline Mesh now manage FInstanceSceneDataBuffers, since they manipulate instance data in one way or another.
- Mass: contained re-implementations of significant internals of ISMC, converted to ID-based interface
- PCG: minor changes to avoid touching ISM internals.
#jira UE-191955,PLAY-11918
#rb jamie.hayes,jeremy.moore,jonathan.bard,krzysztof.narkowicz,mieszko.zielinski,julien.lheureux,zach.bethel,aleksander.netzel,yuriy.odonnell
[CL 28371398 by ola olsson in ue5-main branch]
Remove Initial Level array from Dynamic Collection, it is now using the Rest Collection which is the same.
#rb cedric.caillaud
[CL 28355044 by vincent robert in ue5-main branch]
Remove children array of set from Dynamic Collection, it is now using the bit array from its parent.
#rb cedric.caillaud
[CL 28331755 by vincent robert in ue5-main branch]
- this does not work for kinematically moved GC in a cluster union but this should provide a good support for all the other cases
#rb michael.bao, jon.sourbeer
[CL 28169721 by cedric caillaud in ue5-main branch]