Commit Graph

19 Commits

Author SHA1 Message Date
jaime cifuentes
1dcfefd3fc Fix for DataInterfaceGraph test, so it compiles and saves
#rb @thomas.sarkanen @nicholas.frechette
#jira UE-145514
#preflight 637643f2ee4d25f90afcbdd8

[CL 23175392 by jaime cifuentes in ue5-main branch]
2022-11-17 09:30:01 -05:00
Helge Mathee
ea718104dd RigVMN: lazy compute - core side
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6374ab540c74adb48bd8bf96

[CL 23151939 by Helge Mathee in ue5-main branch]
2022-11-16 05:05:12 -05:00
sara schvartzman
f9a4ef98fd Control Rig: Reuse function compilation data
#jira FORT-519929
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/637407fc953c19d435b38d76

[CL 23151594 by sara schvartzman in ue5-main branch]
2022-11-16 03:33:17 -05:00
joe kirchoff
e737e995f1 UnrealEditor: Handle private includes from so the path isn't rooted in the module parent. This should be cleaned up to not require including private headers in public files.
#rnx
#rb Bryan.Sefcik
#preflight 6372dad7232e3d12cb8f12b7

[CL 23148562 by joe kirchoff in ue5-main branch]
2022-11-15 19:54:38 -05:00
Helge Mathee
74987bc740 RigVM: Move NameCaching to RigVM module
Also move base class for struct tests to RigVM module

#rb benoit.gadreau
#jira na
#preflight https://horde.devtools.epicgames.com/job/636cd909376a9cd6a8ebab24

[CL 23076572 by Helge Mathee in ue5-main branch]
2022-11-10 08:00:53 -05:00
Helge Mathee
32963f057c RigVM: Centralize use of RigVMExecuteContext
#rb halfdan.ingvarsson
#jira UE-169677
#preflight https://horde.devtools.epicgames.com/job/636cc3b24d3c1d9d92868927

[CL 23073598 by Helge Mathee in ue5-main branch]
2022-11-10 04:36:01 -05:00
henrik karlsson
fa90b399a4 Added includes for future change. This changelist only contains added #include and a couple of empty placeholder files
Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch

#preflight 63635997876630122adeab9f
#rb none

[CL 22958990 by henrik karlsson in ue5-main branch]
2022-11-03 14:18:47 -04:00
jaime cifuentes
ba41d901c6 Data Interfaces experimental plugin update :
- Added Context branching support (up to 64 elements)
- Added TParam<Type> operator [] and Opertator Type(), so we can operate directly with the TParams (this is used instead of the Kernel::run, which is harder to debug and deal with)
- Fixed batches and passing a single element to a Context that expects N elements (no more memory stomping)
- Added new ways to obtain a TParam from the Context (GetParamPtr, GetParamAs, GetParameter with TOptional). Also added a GetResultAs<Type>, to ease working with the parameters
- Fixed GetDataSafe to support containers (with Num() and GetData)
- Added NumElements to FParam (indicates the number of elements that the Data holds for this parameter)
- Updated FParam CanAssignWith to allow copy with less restrictions if the target param is empty / unasigned
- Added more constructors to TWrapParam, one with explicit NumElements and other with an ArrayView
- Added more constructors to TParam, with explicit NumElements
- Added EngineTest for DataInterface with a example at Animation.DataInterfaces.XXXXXX
- Prototype of parameter storage using arenas : Context requests the size of the passed paramters and copies the ones selected by the user to be transfered
- Prototype of stack like parameter storage, which allows storing small values directly into the Data pointer of FParam struct (pending see if it can be done constexpr, now is checked at runtime)

@rb @thomas.sarkanen @nicholas.frechette
#jira none
#preflight 635bbe469c65b7958634b506
#preflight 635bc4cd944463bad4a4b63b

[CL 22827097 by jaime cifuentes in ue5-main branch]
2022-10-28 08:06:23 -04:00
Robb Surridge
610c467639 Update vendor links for built-in plugins to use secure protocol.
#jira UE-166823
#rb lauren.barnes
#preflight 6352b20b7261e565c476ec3b

[CL 22690089 by Robb Surridge in ue5-main branch]
2022-10-21 11:04:07 -04:00
Thomas Sarkanen
ca6184e9a3 Fix module name for DataInterfaceGraphUncookedOnly
Enables cooked editor build to load

#jira UE-156134
#rb Jaime.Cifuentes
#preflight 62c311d4d94b57687c016fb3

[CL 20935768 by Thomas Sarkanen in ue5-main branch]
2022-07-04 12:32:09 -04:00
francis hurteau
54b6f1cd28 Remove experimental class UDataInterfaceGraph_EditorData from being optional until revisited
#rb Thomas Sarkanen
#jira none
#preflight skip

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 20674417 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20676089 by francis hurteau in ue5-main branch]
2022-06-15 16:00:28 -04:00
Ben Marsh
5968286e04 Fix static analysis warning (unnecessary duplicated check)
#preflight none
#fyi Helge.Mathee

[CL 20486396 by Ben Marsh in ue5-main branch]
2022-06-03 10:55:14 -04:00
benoit gadreau
5aaafec833 fixed module name duplication
#jira UE-155332
#rb halfdan.ingvarsson
#preflight 62964d275c69764c7ad8d32d
#fyi thomas.sarkanen

[CL 20439343 by benoit gadreau in ue5-main branch]
2022-05-31 13:36:47 -04:00
Helge Mathee
d82d9ff05b DataInterfaceGraph: Fix member initialization
#rb Eric.McDaniel
#jira na
#preflight skip

[CL 20436730 by Helge Mathee in ue5-main branch]
2022-05-31 10:19:59 -04:00
Helge Mathee
6520c809a9 Control Rig: backend work for support for multi graph
#rb benoit.gadreau
#jira UE-153497
#preflight https://horde.devtools.epicgames.com/job/6294be4e2e34c2e487b13394

[CL 20434781 by Helge Mathee in ue5-main branch]
2022-05-31 04:27:20 -04:00
Keith Yerex
554b6ff393 Initial Chooser implementation
In an experimental plugin based on Data Interfaces system
#rb Thomas.Sarkanen
#preflight 6282c297cf7e4667a9d38ff2

[CL 20233851 by Keith Yerex in ue5-main branch]
2022-05-16 18:24:47 -04:00
sara schvartzman
f15b37dbb1 RigVM: If, select and array nodes to inherit template node
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/6260454fde50cd99bbaf6781

[CL 19848071 by sara schvartzman in ue5-main branch]
2022-04-21 09:10:19 -04:00
Thomas Sarkanen
69d0c32b85 Fix CIS issues in DataInterface plugins
#rb none
#jira UE-149698
#jira UE-149704
#preflight 626137f1731f07cd5cc8d00c

[CL 19846637 by Thomas Sarkanen in ue5-main branch]
2022-04-21 07:06:31 -04:00
Thomas Sarkanen
6ebe619fe5 Initial prototype of data interfaces and data interface graphs
Data interfaces are designed to be the basis for a functional, compositional framework, allowing loose bindings (a typed return value) between functional units (data interfaces). They incorporate the following main features:
- Simple call to 'get a value' from a data interface.
- Most communication is done via the UE::DataInterface::FContext, which handles data management.
- Type-erased values (UE::DataInterface::FParam) for results, parameters and state. These can be promoted to typed values (UE::DataInterface::TParam<T>) with runtime validation.
- 'Hidden state', allocated on-demand via a context, to support functional units that require statefulness. State is allocated according to the calling context, currently a hash of the 'callstack' and call site, so subsequent calls to the same data interface can reuse state.
- Batch processing of multiple state representations at once (e.g. processing multiple characters at one), via a chunked allocation strategy.

Also includes data interface graphs - a proof-of-concept implementation using RigVM to construct scripted data interface logic. This is still very early!

Still lots to do:
- Removal of typed interfaces (e.g. IDataInterface_Float)
- Validation of hidden state approach on a wider scale
- Validation of kernel processing approach
- Chunked branching (probably via a masking strategy) so branches can be handled within chunks
- Reworked type system incorporating type promotion/conversion
- UI work to allow for mixing instanced sub-objects and asset references with using TScriptInterface<IDataInterface>
- Expansion or RigVM usage and a ton of UI/UX work to get graph editing up to scratch
- Many many more things

#preflight 625e86873e0f6f80ada98290

[CL 19806109 by Thomas Sarkanen in ue5-main branch]
2022-04-19 06:28:48 -04:00