Commit Graph

1949 Commits

Author SHA1 Message Date
semion piskarev
e1f8fe3b93 MeshModelingTools: Tweaked tool target requirements object storage default and added a convenience function to add requirements. Also added several comments in places.
#rb Lonnie.Li, Tyson.Brochu
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 16606399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16606408 by semion piskarev in ue5-release-engine-test branch]
2021-06-09 11:51:04 -04:00
graham wihlidal
70093e350c Instance data optimization - removed RenderBounds member, and refactored LocalBounds
#rb ola.olsson
[FYI] brian.karis, rune.stubbe, krzysztof.narkowicz

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16590738 via CL 16590845
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16590853 by graham wihlidal in ue5-release-engine-test branch]
2021-06-08 15:19:37 -04:00
graham wihlidal
8b020c3ff5 More instance data memory and CPU optimizations, and general refactoring.
* Moved Nanite resource ID and hierarchy offset back to primitive data (indirection cost is largely noise these days, and memory savings is more important - GetInstanceData() fetches this data and stores in the pre-existing registers so all the callsites don't have to worry about it).
* Removed FNaniteInfo from FPrimitiveInfo (and the type itself) in favor of just having a 32bit per-instance hierarchy root offset. Hierarchy offset and runtime resource ID just sourced from primitive.
* Removed PrimitiveID from CPU instance data (GPU still needs it). This value was redundantly stored per-instance, and now the GPU Scene upload just blits it over from primitive when the instance data is uploaded.
* Added new virtual GetNaniteResourceInfo on FPrimitiveSceneProxy that retrieves the Nanite resource ID and hierarchy offset stored on a given primitive (needed now that FPrimitiveInstance doesn't cache a copy). The non-virtual FPrimitiveSceneProxy::IsNaniteMesh() helper is used to avoid this virtual function call for non-Nanite proxies.
* Removed deprecated and no longer referenced Nanite::FResources array on FNaniteGeometryCollectionSceneProxy
* Removed expensive per-instance checks() in a few spots
* Stubbed out upcoming per instance payload allocator offset
* Removed deprecated and never referenced non-GPUScene GetInstanceData uniform buffer path
* Significantly cleaned up and optimized a lot of ISM instance data retrieval, including avoiding unnecessary FRenderTransform <-> FMatrix conversions.
* Removed GetInstanceShaderValues API, it was inefficient and annoying to require retrieval of all parameters when often only one or two of them were ever used. In some cases even the origin was unused but .w was needed because of the per-instance random packing.
* Implemented explicit GetInstanceRandomID() accessor to fetch (under current packing) Origin.W without exposing this to the callsites
* Implemented public API for GetInstanceLightMapData(), since the internal version was only accessible by GetInstanceShaderValues()
* Renamed GetInstanceShaderCustomDataValues() -> GetInstanceCustomDataValues() for API consistency

#rb jason.nadro, krzysztof.narkowicz
[FYI] rune.stubbe, brian.karis

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16583156 via CL 16583193
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16583202 by graham wihlidal in ue5-release-engine-test branch]
2021-06-07 23:57:54 -04:00
graham wihlidal
67923137a7 More instance data memory and CPU optimizations, and general refactoring.
* Moved Nanite resource ID and hierarchy offset back to primitive data (indirection cost is largely noise these days, and memory savings is more important - GetInstanceData() fetches this data and stores in the pre-existing registers so all the callsites don't have to worry about it).
* Removed FNaniteInfo from FPrimitiveInfo (and the type itself) in favor of just having a 32bit per-instance hierarchy root offset. Hierarchy offset and runtime resource ID just sourced from primitive.
* Removed PrimitiveID from CPU instance data (GPU still needs it). This value was redundantly stored per-instance, and now the GPU Scene upload just blits it over from primitive when the instance data is uploaded.
* Added new virtual GetNaniteResourceInfo on FPrimitiveSceneProxy that retrieves the Nanite resource ID and hierarchy offset stored on a given primitive (needed now that FPrimitiveInstance doesn't cache a copy). The non-virtual FPrimitiveSceneProxy::IsNaniteMesh() helper is used to avoid this virtual function call for non-Nanite proxies.
* Removed deprecated and no longer referenced Nanite::FResources array on FNaniteGeometryCollectionSceneProxy
* Removed expensive per-instance checks() in a few spots
* Stubbed out upcoming per instance payload allocator offset
* Removed deprecated and never referenced non-GPUScene GetInstanceData uniform buffer path
* Significantly cleaned up and optimized a lot of ISM instance data retrieval, including avoiding unnecessary FRenderTransform <-> FMatrix conversions.
* Removed GetInstanceShaderValues API, it was inefficient and annoying to require retrieval of all parameters when often only one or two of them were ever used. In some cases even the origin was unused but .w was needed because of the per-instance random packing.
* Implemented explicit GetInstanceRandomID() accessor to fetch (under current packing) Origin.W without exposing this to the callsites
* Implemented public API for GetInstanceLightMapData(), since the internal version was only accessible by GetInstanceShaderValues()
* Renamed GetInstanceShaderCustomDataValues() -> GetInstanceCustomDataValues() for API consistency

#rb jason.nadro, krzysztof.narkowicz
[FYI] rune.stubbe, brian.karis


#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16583156
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf

[CL 16583193 by graham wihlidal in ue5-main branch]
2021-06-07 23:55:28 -04:00
aurel cordonnier
25a11deeac Merge from Release-Engine-Staging @ 16579919
This represents UE4/Main @ 16579691 and Dev-PerfTest @ 16579576

[CL 16581170 by aurel cordonnier in ue5-release-engine-test branch]
2021-06-07 20:09:45 -04:00
Brice Criswell
c5d95a94cf Chaos : Geometry Collection Object
- Dont force a rebuild on load for the size specific default changes.
#rb Benn.Gallagher
#preflight 60ba326487fd8e0001524686

[CL 16559790 by Brice Criswell in ue5-main branch]
2021-06-04 12:42:50 -04:00
graham wihlidal
c850a02c69 Implemented a new WIP type called FRenderTransform that (for now) represents instance transforms as a float 4x3 matrix - in the future we expect a much tighter per-instance encoding (for example: 12bytes for position, 4bytes for rotation, 6bytes for scale), so this type can be optimized in that direction. Other than saving hundreds of MB in *heavy* instance scenes, faster updates/uploads, etc.. this type could be used to represent a transform that stays 32bit w/ a rebase offset. Passing around ambiguous FVector and FMatrix data is bound to get us into trouble, whereas a concrete type we can reason about for transforms in render-only code makes a good deal of sense.
This change is another basis for more instance data and GPUScene improvements coming down the pipe.

#rb jason.nadro, krzysztof.narkowicz, zach.bethel, zak.middleton, rune.stubbe, ben.woodhouse
[FYI] brian.karis, ola.olsson
#preflight 60b9608d0249c300016598de


#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16555619
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf

[CL 16555914 by graham wihlidal in ue5-main branch]
2021-06-03 21:10:11 -04:00
cedric caillaud
36c4422ea7 Add Chaos specific CSV profiling stats (Constraints, Collision detection )
#jira none
#fyi chric.caulfield, benn.gallagher
#rb none

[CL 16555908 by cedric caillaud in ue5-main branch]
2021-06-03 21:07:43 -04:00
brice criswell
8beda23d97 Chaos: Geometry Collection Asset
- Allow empty collisions array in the size specific data.
#jira UE-116973
#rb Brett.Milller
#preflight 60b94a4c884c630001f7f531


#ROBOMERGE-OWNER: brice.criswell
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 16555435
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf

[CL 16555840 by brice criswell in ue5-main branch]
2021-06-03 21:03:44 -04:00
Ryan Schmidt
489dbc61c7 ToolsFramework: remove the AssetAPI concept from the Interactive Tools Framework. Replaced by ModelingObjectCreationAPI in ModelingComponents.
#rb none
#rnx
#jira none
#preflight 60b7e9448a2a64000126348c
#fyi brooke.hubert

[CL 16540327 by Ryan Schmidt in ue5-main branch]
2021-06-02 18:01:32 -04:00
jimmy andrews
8a78138782 Add option to use full precision UVs on geometry collection scene proxy
#rb brett.miller, tyson.brochu, david.hill
#preflight 60b6645c5719ca0001388544

#ROBOMERGE-SOURCE: CL 16518423 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16518431 by jimmy andrews in ue5-main branch]
2021-06-01 14:20:47 -04:00
brice criswell
45b41cb1a3 Chaos : GeoemtryCollection
- Convex collisions
#jira none
#rb Brett.Miller
#preflight 60b652e4c744b20001155e43

#ROBOMERGE-SOURCE: CL 16517234 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16517273 by brice criswell in ue5-main branch]
2021-06-01 13:28:42 -04:00
Chris Caulfield
8dc7891e51 Chaos - fix joint unit test
#rb none
#jira none

[CL 16516849 by Chris Caulfield in ue5-main branch]
2021-06-01 13:14:02 -04:00
brett miller
272e3f018e FGeometryCollectionSceneProxy
-- dtor releases DynamicData instead of deleting it.

#jira UE-115064
[FYI] benn.gallagher

#ROBOMERGE-SOURCE: CL 16511485 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16511488 by brett miller in ue5-main branch]
2021-05-31 22:01:58 -04:00
Chris Caulfield
f15a108884 Chaos - wire SetConstraintFrames from game thread to physics thread
(Note: works in BeginPlay or Tick, but not from construction script yet)

#rb cedric.caillaud,brice.criswell,zhenglin.geng
#jira none
#preflight 60b0394e63fc6e000137e186

[CL 16510057 by Chris Caulfield in ue5-main branch]
2021-05-31 13:50:42 -04:00
Andrew Davidson
14b895871e LWC: Build fixes
#rb trivial
#preflight 60b248d963fc6e0001711e23

[CL 16505208 by Andrew Davidson in ue5-main branch]
2021-05-29 10:50:00 -04:00
graham wihlidal
77a987b0a2 [Nanite DDC Bump] Cleanup Nanite resource flag logic to use explicit flags, and avoid possible bitfield serialization differences between msvc and clang.
#rb jason.nadro
[FYI] rune.stubbe

#ROBOMERGE-SOURCE: CL 16503408 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16503411 by graham wihlidal in ue5-main branch]
2021-05-28 16:30:52 -04:00
Ryan Schmidt
528eef40e9 InteractiveToolsFramework: change checks() to ensures() and switch to non-fatal error handling for most situations in GizmoManager and ToolManager. Add TransformGizmo::GetGizmoTransform()
#rb none
#rnx
#jira none
#preflight 60b03b4b7e4e6a0001a001f0

[CL 16499542 by Ryan Schmidt in ue5-main branch]
2021-05-28 02:04:32 -04:00
cedric caillaud
afff471516 HeadlessChaos: fix SOA active view related errors
Fix bad merge  from CL 16281007  where in particle SOA kinematics end up in the active particle array

#rb none
#jira none
#fyi ori.cohen

[CL 16498216 by cedric caillaud in ue5-main branch]
2021-05-28 00:32:26 -04:00
graham wihlidal
14a0c66615 [Nanite DDC Bump] Implemented correct Nanite triangle count and vertex count metrics in SM editor (and other tools).
#rb brian.karis
[FYI] rune.stubbe

#ROBOMERGE-SOURCE: CL 16498196 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v823-16466674)

[CL 16498206 by graham wihlidal in ue5-main branch]
2021-05-28 00:29:59 -04:00
Ryan Schmidt
6c20b92bf4 ToolsFramework: add a mechanism for clients of UInteractiveToolsContext to provide alternative implementations of the core ITF objects (eg InputRouter, ToolManager, etc) without having to subclass and duplicate all the Initialize()/Shutdown() logic.
#rb brooke.hubert
#rnx
#jira none
#preflight 60b02855f51cd900016680d0

[CL 16494849 by Ryan Schmidt in ue5-main branch]
2021-05-27 20:36:47 -04:00
Ryan Schmidt
7a93eace02 ToolsFramework: add register and unregister helper functions to TransformGizmoUtil, to facilitate EdModes sharing the context object
#rb jimmy.andrews
#rnx
#jira none
#preflight 60b013ebb60e930001239ae5

[CL 16493585 by Ryan Schmidt in ue5-main branch]
2021-05-27 19:09:12 -04:00
michael forot
2ddb3187d2 Reactivate the geocollection initialization fields
#ROBOMERGE-SOURCE: CL 16491352 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v823-16466674)

[CL 16491365 by michael forot in ue5-main branch]
2021-05-27 16:31:32 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
Andrew Davidson
bc00b05ca9 LWC: Fix chaos precision loss warnings
#rb cedric.cailllaud
#jira UE-116286
#preflight 60af7c773dce58000179a058

[CL 16482537 by Andrew Davidson in ue5-main branch]
2021-05-27 07:51:43 -04:00