Commit Graph

94 Commits

Author SHA1 Message Date
graham wihlidal
36beb84c0e - Added the ability to disallow falling back to proxy meshes if Nanite isn't supported by the platform (or if it is, but atomics are not supported). Default is proxy rendering, but some projects may not be built with proxy fallback in mind. Controlled with r.Nanite.ProxyRenderMode (0=fallback, 1=never render, 2=never render except SM editor toggle).
- Require 64bit atomic support for Nanite by default now (r.Nanite.RequireAtomic64Support=1)
- Cleaned up a bunch of cvar component reattach callbacks to use lambdas instead of redundant global functions
- Added UStaticMesh::HasValidNaniteData() as a helper to check if an asset has valid Nanite data
- Improved Nanite unsupported on screen error message so that we don't asks the user to update GPU drivers on a console :)

#rb nick.whiting
#jira UETOP-1646
[FYI] brian.karis, michal.valient

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

[CL 16363648 by graham wihlidal in ue5-main branch]
2021-05-17 22:54:18 -04:00
cedric caillaud
591b22bf99 Fix rendering of GeometryCollection with LWC on
- change matrix types for dynamic data to be explicitly using float
- wrapped update of vertex buffer to ensure type check
- When LWC mode is on, convert double based matrices to they float equivalent ( sub-optimal, but necessary for now until we have a better way )

#jira UE-115570
#fyi brice.criswell, brett.miller

[CL 16333456 by cedric caillaud in ue5-main branch]
2021-05-14 15:26:37 -04:00
aurel cordonnier
8eebe8841f Merge UE5/RET @ 16305968 to UE5/Main
This represents UE4/Main @ 16261013 and Dev-PerfTest @ 16259937

[CL 16306996 by aurel cordonnier in ue5-main branch]
2021-05-12 18:10:03 -04:00
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
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
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
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
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
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
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
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
brett miller
2f96887ddf GeometryCollectionComponent
-- changed the way ISMCs are spawned for embedded geometry to correct issues with cache spawns.

#jira none
#rb none

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

[CL 15869819 by brett miller in ue5-main branch]
2021-03-30 20:35:50 -04:00
brice criswell
ef7a9e4414 GeometryCollection : Rendering
-Fix regression with GeometryCollection not rendering in Standalone Game
#rb None
#jira None
#okforgethub public, internal
#preflight 605cf0a80944f60001da62ff

#ROBOMERGE-SOURCE: CL 15834257 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v785-15821902)

[CL 15834721 by brice criswell in ue5-main branch]
2021-03-25 18:53:29 -04:00
cedric caillaud
d8aed49cad Chaos Physics - add support for moving geometry collection
- account for component transform on a per frame basis
- updates kinematic particle accordingly
- add missing calls to the solver to support it

#rb brice.criswell, brett.miller
#jira none

[CL 15833163 by cedric caillaud in ue5-main branch]
2021-03-25 17:47:32 -04:00
brett miller
f0231bd8c2 Geometry Collection
-- Embedded geometry tweaked to make them compatible with chaos caching.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 15814675 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)

[CL 15814730 by brett miller in ue5-main branch]
2021-03-24 21:38:10 -04:00
brice criswell
ccd419269d Chaos : Destruction
Re-exposed the connection method enums to the GeometryCollectionObject.
#rb None
#jira None
#okforgethub public, internal
#preflight 605447dd168034000119dc7b

#ROBOMERGE-OWNER: brice.criswell
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 15745578 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
#ROBOMERGE-CONFLICT from-shelf

[CL 15750237 by brice criswell in ue5-main branch]
2021-03-19 15:28:38 -04:00
brett miller
167980ad12 GeometryCollectionComponent
-- wrapped PostEditChangeChainProperty in WITH_EDITOR to prevent build error for runtime.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 15745059 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15745060 by brett miller in ue5-main branch]
2021-03-18 23:55:49 -04:00