Commit Graph

213 Commits

Author SHA1 Message Date
graham wihlidal
32e893af72 Fix for race condition where GCs might reach the call to RequestGPUSceneUpdate() on initial proxy creation before the primitive scene info has a valid index (entry in GPU Scene bookkeeping), causing the updates to silently skip. Normally this problem doesn't affect the majority of GCs, since most GCs have identify transforms in rest pose, except some GCs authored in external DCC tools could use non-identify transforms that wouldn't be correctly uploaded to GPUScene until simulation would start. Also took the time to remove the virtual function calls on IsNaniteMesh() and IsAlwaysVisible() since these are called super heavily in frustum culling and init views on the CPU.
#rb brett.miller
[FYI] brice.criswell, nick.whiting, brian.karis
#jira UE-115088

#ROBOMERGE-SOURCE: CL 16261925 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16264515 by graham wihlidal in ue5-main branch]
2021-05-11 01:18:05 -04:00
brett miller
4e958929e7 GeometryCollectionSceneProxy - Properly initialized LocalToWorld transform on Nanite scene proxy.
#jira UE-115088
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16261304 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16264510 by brett miller in ue5-main branch]
2021-05-11 01:17:48 -04:00
brett miller
2a138e24bc UGeometryCollection
-- Wrapped GeometrySource in header tool directive to be stripped out of shipping game builds.

#jira UE-115272
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16248584 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16263785 by brett miller in ue5-main branch]
2021-05-10 23:54:01 -04:00
Jimmy Andrews
3192560295 fix crash on trying to expand selection to neighbors when a transform w/ no geometry is selected
#rb trivial
#rnx
#preflight 60942bad3653dd000112b2c0

[CL 16224535 by Jimmy Andrews in ue5-main branch]
2021-05-06 14:59:48 -04:00
Brice Criswell
b17a87ae42 GeometryCollection : Bounds
- Added a debugging flag to enable single threaded bounds.
#jira FROST-2056
#rb Brett.Miller
#preflight 60932ea7c68b5a00017e5039

[CL 16216433 by Brice Criswell in ue5-main branch]
2021-05-05 21:03:44 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
brett miller
6395ede18b GeometryCollectionSceneProxy
-- OnMotionEnd now resets instance transforms as well as component transforms.

#jira UETOP-1546
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16198557 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v796-16191650)

[CL 16198575 by brett miller in ue5-main branch]
2021-05-04 16:15:19 -04:00
graham wihlidal
254c5dedc9 Corrected OnMotionBegin/OnMotionEnd to run on the render thread, and refactored the previous in motion logic to use the new events.
#jira UETOP-1595
#rb brett.miller
#lockdown nick.whiting
[FYI] brice.criswell

#ROBOMERGE-SOURCE: CL 16178780 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v792-16166999)

[CL 16178783 by graham wihlidal in ue5-main branch]
2021-05-01 21:33:36 -04:00
brett miller
3e4e8bd152 GeometryCollectionComponent
-- Added state machine logic and scene proxy callbacks for triggering when motion begins and ends.

#jira UETOP-1546
#rb graham.wihlidal
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16178376 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v792-16166999)

[CL 16178381 by brett miller in ue5-main branch]
2021-05-01 17:51:29 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
graham wihlidal
efab24f960 Fix duplicate symbol unity build error
#rb trivial
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16151929 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16151940 by graham wihlidal in ue5-main branch]
2021-04-28 21:27:58 -04:00
graham wihlidal
28742c1787 Fixed locked previous GC transforms (locked motion blur) by detecting dynamic->static transition and resetting previous transforms to current.
#rb brice.criswell
[FYI] brett.miller
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16150932 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16150970 by graham wihlidal in ue5-main branch]
2021-04-28 19:53:28 -04:00
graham wihlidal
0fa361fa13 Fixed Nanite geometry collection velocity vectors, and optimizing transform updates for dummy GPU scene instance culling placeholders. Scene proxies can now fully own the concatenation of transform updates and avoid doing incorrect or redundant work during GPU Scene updates.
#jira UETOP-1352
#rb brandon.dawson
[FYI] ola.olsson, brian.karis, brice.criswell, brett.miller, michal.valient
#lockdown nick.whiting

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16141209 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf

[CL 16141875 by graham wihlidal in ue5-main branch]
2021-04-28 05:36:47 -04:00
graham wihlidal
30b16a59f4 Do not skip InitDynamicData result if called from geometry collection initialization. Fixes corrupt rendering in TM-ChaosDestruction.
#rb trivial
[FYI] michal.lentine, brice.criswell
#lockdown nick.whiting
#jira UE-114231

#ROBOMERGE-SOURCE: CL 16107943 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16107947 by graham wihlidal in ue5-main branch]
2021-04-24 04:37:11 -04:00
brett miller
398661ca53 Fracture Tool
-- Removes Strip tool and fixed Validate tool to refresh Nanite geometry correctly.

#jira UE-113611
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16079452 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16079465 by brett miller in ue5-main branch]
2021-04-21 15:32:56 -04:00
graham wihlidal
ba3a7bf41e Rewrite of UGeometryCollection::InitDynamicData()
* Implemented thread safe object pool / free list allocator (FGeometryCollectionDynamicDataPool)
 * Added Chaos stats for total transforms and changed transforms
 * Removed TransformsAreEqual mechanism that caused full transform updates to occur unnecessarily for 2 subsequent frames, as the state wasn't stable until the previous 3 frames were stable. This was incredibly innefficient for GPUScene, etc..
 * InitDynamicData now returns the data allocation (which can be null if not dynamic or if no transforms have changed), users of this now check if it's available, and either skip or fall back to the static/rest path otherwise
 * Cleaned up some code paths by combining them with similar passes
 * Removed tons of allocations, including heavy allocations/memcopies of transform data, even on stable frames (which were immediately deallocated right after allocation and setup of the dynamic data)
 * Saves ~0.5 to 1.0ms of CPU time in heavy scenes
 * Saves ~0.5ms of GPU time doing far less GPUScene updates
 * Main optimization around this refactor is forthcoming in a followup CL (avoid calling MarkRenderTransformDirty in TickComponent).

#rb brett.miller, brice.criswell
#lockdown nick.whiting
[FYI] brian.karis, rune.stubbe
#jira UETOP-1088

#ROBOMERGE-SOURCE: CL 16059409 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16061411 by graham wihlidal in ue5-main branch]
2021-04-20 10:45:04 -04:00
brice criswell
3b557eb218 Geometry Collection : Render Bounds
- Fix to an indexing error when the bounds are setup on the FNaniteGeometryCollectionSceneProxy, and a transform error when updating the instance bounds.

#jira UE-113611
[FYI] brett.miller, graham.wihlidal
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16057336 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16061147 by brice criswell in ue5-main branch]
2021-04-20 10:31:10 -04:00
rune stubbe
1aec74be8a Removed member LocalToInstance from FPrimitiveInstance as it is no longer read anywhere. Saves 64 bytes of system memory per instance.
#rb graham.wihlidal
#jira UETOP-1089
#lockdown nick.whiting

#ROBOMERGE-OWNER: rune.stubbe
#ROBOMERGE-AUTHOR: rune.stubbe
#ROBOMERGE-SOURCE: CL 16053670 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf

[CL 16060977 by rune stubbe in ue5-main branch]
2021-04-20 10:22:10 -04:00
Benn Gallagher
c7cced57cd Geometry Collection : Cache Attribute
- Strip geometry attributes from the collection when using the collection as a simulation viewer.
- Use the transferred bounds on the minimal asset for rendering bounds.
- Minor clean to expose user controllable cache only state to the GeometryCollectionObject


#jira UE-113611
#rb Brett.Miller
[FYI] Graham.Whlidal
#lockdown nick.whiting

#ROBOMERGE-OWNER: Benn.Gallagher
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 16052869 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf

[CL 16060655 by Benn Gallagher in ue5-main branch]
2021-04-20 09:50:07 -04:00
brice criswell
e66c950529 Chaos : Geometry Collection
- Remove GUID support from the FManagedArrayCollection, its to slow and should be generated on-demand within editor operations.

#lockdown nick.whiting
#rb brett.miller
#jira UE-113296

#ROBOMERGE-SOURCE: CL 15986095 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)

[CL 15990052 by brice criswell in ue5-main branch]
2021-04-13 10:51:11 -04:00
brett miller
72c79f623e GeometryCollectionComponent
-- check for nullptr on FNaniteGeometryCollectionSceneProxy->GetPrimitiveSceneInfo

#jira UE-112916
#rb none
#lockdown simon.tourangeau

#ROBOMERGE-SOURCE: CL 15965449 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)

[CL 15981296 by brett miller in ue5-main branch]
2021-04-12 15:19:31 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
cedric caillaud
93ffec6ccd CHaos Physics - Allow union of cluster to be attached to dynamic parents
- Added Parent() function to lcustred particle handle ( and adjusted code that was using ClusterIds().id instead
- In the geometry collection collection , make sure to check the internal clustered parent and update their kinematic target when necessary
- Fix typo issue ClustersToReuild => ClustersToRebuild

#rb brice.criswell
#jira none

[CL 15951781 by cedric caillaud in ue5-main branch]
2021-04-07 23:42:46 -04:00
brett miller
ecc8260541 GeometryCollection
-- fixed a bug in calc bounds when creating a new (empty) rest collection

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 15885801 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15889600 by brett miller in ue5-main branch]
2021-04-01 11:11:57 -04:00
brett miller
84cebc9784 GeometryCollection
-- Removed vertex visibility test from CalcBounds as it was having the opposite performance effect than intended.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 15882294 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15889237 by brett miller in ue5-main branch]
2021-04-01 10:41:00 -04:00