Commit Graph

69 Commits

Author SHA1 Message Date
thomas sarkanen
179f9fd5dc Fix uninitialized variables in a couple of structs
#jira UE-195301
#rb none

[CL 27880648 by thomas sarkanen in ue5-main branch]
2023-09-14 11:37:39 -04:00
jaime cifuentes
b10c4065f2 RigVM now uses a struct based storage, built on top of PropertyBag.
#rb [at]helge.mathee, [at]sara.schvartzman
#jira UE-180115

[CL 27785576 by jaime cifuentes in ue5-main branch]
2023-09-12 05:04:58 -04:00
thomas sarkanen
3e6c8d5874 AnimNext: Fix cross-thread param type handle AnimNext tests
Sandboxed tests were only returning sandboxed maps on the main thread due to thread ID comparison, so ID generated on other threads were not correctly sandboxed.

#jira UE-194529
#rb Nicholas.Frechette

[CL 27633172 by thomas sarkanen in ue5-main branch]
2023-09-06 10:03:21 -04:00
jaime cifuentes
fbb918e64d ControlRig : All instances use now the CDO VM to execute, no const VM data (bytecode or literal memory) is copied when an instance is created (only work memory data / debug data is initialized per instance).
RigVM instance data has been extracted to ExtendedExecuteContext, including  work and debug memory.

#rb [at]Helge.Mathee, [at]Sara.Schvartzman
#jira UE-186206, UE-183524

[CL 27299588 by jaime cifuentes in ue5-main branch]
2023-08-23 03:13:37 -04:00
helge mathee
a14bb17a64 RigVM: Compiler error to deal with disconnected execute pins
#rb sara.schvartzman
#jira UE-192737

[CL 27169727 by helge mathee in ue5-main branch]
2023-08-17 08:00:30 -04:00
Nicholas Frechette
bfee00d803 Fix static analysis issues with anim next unit test
#rb Jurre.deBaare
#jira none

[CL 27037319 by Nicholas Frechette in ue5-main branch]
2023-08-11 14:17:59 -04:00
Nicholas Frechette
bef2d3b193 Fix editor shipping configuration by adding decorator name function on FDecorator
#rb Jurre.deBaare
#jira UE-192788

[CL 27031392 by Nicholas Frechette in ue5-main branch]
2023-08-11 12:08:15 -04:00
Nicholas Frechette
a917458582 Add AnimNext graph unit tests
#rb Jurre.deBaare
#jira UE-191054

[CL 27028605 by Nicholas Frechette in ue5-main branch]
2023-08-11 10:51:07 -04:00
nicholas frechette
8cc5021b5a Implement animnext graph decorator authoring
Moved decorator offset computation to runtime to support #ifdef and adding/removing members
Added a node template builder to ensure node templates are always fully formed when used
Add support for RigVM decorator dynamic pins
Other minor imrovements to decorator runtime

#rb Thomas.Sarkanen
#jira UE-191051
#jira UE-191254
#jira UE-191210

[CL 26992453 by nicholas frechette in ue5-main branch]
2023-08-10 10:45:56 -04:00
robert srinivasiah
575878f2f9 AnimNext: Give AnimNextTestSuite an independent module class name from AnimNext
CookedEditor was getting confused between the AnimNext and AnimNextTestSuite modules because the implementation class name was the same between the two. This led to AnimNextTestSuite invoking the AnimNext implementation, leading to an ensure in FDecoratorRegistry::Init.

#jira UE-191254
#rb Nicholas.Frechette
#rnx

[CL 26971448 by robert srinivasiah in ue5-main branch]
2023-08-09 16:40:35 -04:00
bob tellez
56335e7b2d [Backout] - CL26927079
#fyi Nicholas.Frechette
Original CL Desc
-----------------------------------------------------------------
Implement animnext graph decorator authoring
Moved decorator offset computation to runtime to support #ifdef and adding/removing members
Added a node template builder to ensure node templates are always fully formed when used
Add support for RigVM decorator dynamic pins
Other minor imrovements to decorator runtime

#rb Thomas.Sarkanen
#jira UE-191051
#jira UE-191254
#jira UE-191210

[CL 26929547 by bob tellez in ue5-main branch]
2023-08-08 16:35:02 -04:00
Nicholas Frechette
fa59069187 Implement animnext graph decorator authoring
Moved decorator offset computation to runtime to support #ifdef and adding/removing members
Added a node template builder to ensure node templates are always fully formed when used
Add support for RigVM decorator dynamic pins
Other minor imrovements to decorator runtime

#rb Thomas.Sarkanen
#jira UE-191051
#jira UE-191254
#jira UE-191210

[CL 26927079 by Nicholas Frechette in ue5-main branch]
2023-08-08 15:29:39 -04:00
helge mathee
7f7c334889 RigVM: Improve performance when retrieving argument names
#rb sara.schvartzman
#jira UE-192243

[CL 26884036 by helge mathee in ue5-main branch]
2023-08-07 11:20:38 -04:00
edwin maynard
5fc17d4cca [Backout] - CL26843340 (backed out due to cis errors in Main)
[FYI] benoit.gadreau
Original CL Desc
-----------------------------------------------------------------
RigVM: remove useless copies for GetArguments

#rb sara.schvartzman

#rnx

TODO: check if the following functions can return const reference instead of copies

virtual FRigVMTemplateTypeMap FRigVMDispatchFactory::OnNewArgumentType(const FName& InArgumentName, TRigVMTypeIndex InTypeIndex)
virtual TArray<FRigVMFunction> GetDispatchPredicatesImpl(const FRigVMTemplateTypeMap& InTypes)
virtual TArray<FRigVMExecuteArgument> GetExecuteArguments_Impl(const FRigVMDispatchContext& InContext)

and others?

[CL 26848008 by edwin maynard in ue5-main branch]
2023-08-04 11:28:56 -04:00
benoit gadreau
e29fc95e4a RigVM: remove useless copies for GetArguments
#rb sara.schvartzman

#rnx

TODO: check if the following functions can return const reference instead of copies

virtual FRigVMTemplateTypeMap FRigVMDispatchFactory::OnNewArgumentType(const FName& InArgumentName, TRigVMTypeIndex InTypeIndex)
virtual TArray<FRigVMFunction> GetDispatchPredicatesImpl(const FRigVMTemplateTypeMap& InTypes)
virtual TArray<FRigVMExecuteArgument> GetExecuteArguments_Impl(const FRigVMDispatchContext& InContext)

and others?

[CL 26844500 by benoit gadreau in ue5-main branch]
2023-08-04 09:49:11 -04:00
thomas sarkanen
57122faf0a AnimNext params in Anim BPs
Added a new anim node: AnimNext Parameters. This injects parameters into the AnimNext stack for all leafwards nodes.

Added a new way of binding to parameters on anim nodes.
- Added indirection to UAnimGraphNode_Base to allow different 'binding types' to be authored by deriving from UAnimGraphNodeBinding
- Added new binding type for AnimNext parameters
- Moved existing binding code (inc UI widget creation) into UAnimGraphNodeBinding_Base
- Binding types can be selected on a per-node or per-anim BP basis

Reworked FParamStack API a little
- Allow for better error checking when pushing/popping stack layers. Pushed layers can now only be subsequently popped by passing in the handle of the pushed layer.
- Standalone layers are now wrapped in an opaque handle rather than returning a unique ptr
- GetParamData APIs now perform more involved type checking, allowing derived object types & type conversions to be implemented

Improved parameter type sandboxing for automated tests. If running low-level type tests while execution was happening on another thread, the editor could crash because of invalidating already-existing types.

Lots of other small fixes to get workflows nicer and end-to-end functionality working

#rb Nicholas.Frechette,Jaime.Cifuentes,Jurre.deBaare

[CL 26455905 by thomas sarkanen in ue5-main branch]
2023-07-19 04:36:34 -04:00
helge mathee
c98e25e225 RigVM: First steps towards rebasing ControlRigBlueprint
#rb sara.schvartzman
#jira UE-180106

[CL 26016011 by helge mathee in ue5-main branch]
2023-06-15 11:30:29 -04:00
thomas sarkanen
6e8743c1ee Fix double-free when compiling an anim BP with an AnimNextGraph node in it
#jira UE-188723
#rb Jaime.Cifuentes

[CL 26007480 by thomas sarkanen in ue5-main branch]
2023-06-15 05:43:46 -04:00
bryan sefcik
83a1278b44 Broke circular dependencies:
AutomationController -> UnrealEd -> AutomationController
SubobjectEditor -> UnrealEd -> SubobjectEditor

#preflight 6478a225c26e3b2449f13c0f
#jira

[CL 25730973 by bryan sefcik in ue5-main branch]
2023-06-01 13:04:00 -04:00
Nicholas Frechette
9f704002eb Avoid having uninitialized properties
#jira UE-186743
#rb Thomas.Sarkanen
#preflight 646e30504422ba05f4113084

[CL 25605049 by Nicholas Frechette in ue5-main branch]
2023-05-24 11:58:48 -04:00
Thomas Sarkanen
e856791a85 Parameter block runtime basis
Added parameter stack implementation.
- Stack avoids map-styple lookups in favor of O(n) lookup cost (but with the potential for larger memory use) by mapping parameters to a linear range of indices (FParamId). If FParamIds can be constructed ahead of time
- Still TODO: Would like to improve memory locality of stack layers by allocating everything in one block and avoiding copies when constructing simple layers
Removed IAnimNextInterface and all code that uses it. This is no longer used.
Const-corrected some PropertyBag and RigVM UObject usage

#rb Nicholas.Frechette,Jaime.Cifuentes
#preflight 6466386eb1176e43bdbb4cc1

[CL 25561032 by Thomas Sarkanen in ue5-main branch]
2023-05-22 04:54:46 -04:00
timothy daoust
a905a78de3 Removed deprecated mirroring functionality from SkeletalMesh
#rb Thomas.Sarkanen, jurre.debarre
#preflight 64678c5275696d2bd7e0c94d

[CL 25545225 by timothy daoust in ue5-main branch]
2023-05-19 11:16:13 -04:00
sara schvartzman
69501c7d56 RigVM: Predicates Core
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/64674495cb141b29df140664

[CL 25541919 by sara schvartzman in ue5-main branch]
2023-05-19 06:16:13 -04:00
Nicholas Frechette
a5f2957291 Fix test build compilation failure
Fix static analysis issue around nullptr usage in tests

#jira UE-186204
#rb Thomas.Sarkanen
#preflight 64664e3ba133ca477bae4068

[CL 25526916 by Nicholas Frechette in ue5-main branch]
2023-05-18 12:21:43 -04:00
jaime cifuentes
bc38104f12 RigVM : Extracted all instance data from the VM to the Context, as a step for a Stateless VM
#rb helge.mathee, sara.schvartzman
#jira UE-180117
#preflight 64660de8063e77985c33cf1b

[CL 25523500 by jaime cifuentes in ue5-main branch]
2023-05-18 08:02:56 -04:00