49 Commits

Author SHA1 Message Date
Ben Marsh
d32e8436c1 BuildGraph: Store artifact keys in the tag manifest rather than in the exported graph definition, since they may include non-constant values from build arguments.
#preflight none

[CL 25057984 by Ben Marsh in ue5-main branch]
2023-04-14 21:42:00 -04:00
Ben Marsh
86ccb45313 BuildGraph: Add support for explicitly labeling artifacts from a build using the <Artifact> element.
- Each artifact is named, and by default any files added to a tag with the name of the artifact will be treated as belonging to it.
- Artifacts can have include an optional set of keys that can be queried against on Horde.
- The host system (eg. Horde) is deemed responsible for archiving artifacts for later retrieval.

#preflight none

[CL 25048052 by Ben Marsh in ue5-main branch]
2023-04-14 15:43:33 -04:00
joe kirchoff
a9a7ad49f7 Suppress warning that was inadvertently enabled until it can be addressed
#rnx
#rb trivial

[CL 24197538 by joe kirchoff in ue5-main branch]
2023-02-13 20:10:38 -05:00
Ben Marsh
2f7d96f1d9 Horde: Fix input/output names (again).
#preflight none

[CL 22363351 by Ben Marsh in ue5-main branch]
2022-10-05 17:01:09 -04:00
Ben Marsh
9015ef1b76 Horde: Fix inputs/outputs not being propagated to graph definition.
#preflight none

[CL 22360709 by Ben Marsh in ue5-main branch]
2022-10-05 14:58:05 -04:00
Ben Marsh
331eeb32ac Horde: Add inputs and outputs to exported Horde job definition.
#preflight none

[CL 22354545 by Ben Marsh in ue5-main branch]
2022-10-05 10:12:55 -04:00
Ben Marsh
c2041dff6a BuildGraph: Use table-driven opcode parsing, to decouple instruction decode from execution.
#preflight none

[CL 22337051 by Ben Marsh in ue5-main branch]
2022-10-04 15:55:19 -04:00
Ben Marsh
075162706e EpicGames.Core: Fix static analysis warnings.
#preflight 633b4ae16b10157eac6f1f15

[CL 22314153 by Ben Marsh in ue5-main branch]
2022-10-03 17:01:13 -04:00
Ben Marsh
523e314999 Upgrade shared C# projects to NET 6.
#preflight 63373455a852bd922c5364c5

[CL 22301764 by Ben Marsh in ue5-main branch]
2022-10-03 09:44:33 -04:00
Ben Marsh
330f1e7155 EpicGames.BuildGraph: Fix warnings when compiling against NET 6 SDK.
#preflight none

[CL 22274984 by Ben Marsh in ue5-main branch]
2022-09-30 13:52:23 -04:00
Ben Marsh
d06078c7f2 Horde: Add Stream wrappers around IMemoryReader and IMemoryWriter, and fix ByteArrayBuilder.GetMemory() always returning the minimum buffer size.
#preflight none

[CL 22136931 by Ben Marsh in ue5-main branch]
2022-09-22 11:23:43 -04:00
Ben Marsh
60fb2115fb Horde: Upgrade all NuGet packages to latest.
#preflight 630cf402e1124837752f0cb3

[CL 21682720 by Ben Marsh in ue5-main branch]
2022-08-29 13:34:15 -04:00
Ben Marsh
5e955f8f8b BuildGraph: Fix labels having empty list of included nodes.
#preflight none

[CL 21061685 by Ben Marsh in ue5-main branch]
2022-07-12 15:52:23 -04:00
Ben Marsh
074e08da2b BuildGraph: Fix labels not getting passed through from the aggregate into the bytecode.
#preflight none

[CL 21060760 by Ben Marsh in ue5-main branch]
2022-07-12 14:59:18 -04:00
Ben Marsh
b198fd4a3c BuildGraph: Fix test cases with recent changes to storing graph structures as BG objects.
#preflight 62cc695dad490b52dad4efc9

[CL 21044414 by Ben Marsh in ue5-main branch]
2022-07-11 14:24:04 -04:00
Ben Marsh
38f3bc55ef BuildGraph: Various VM improvements.
* Added support for deserializing BgObject types directly into native classes.
* Removed opcodes for creating graph structures. These are now created in user code from BgObject types.
* Removed BgNodeSpecBuilder. BgNode objects can now be modified directly (returning a modified copy).
* Added concrete types for option parameters. The VM now keeps track of any parameters for evaluated options, allowing them to be added into the graph definition.
* Order dependencies now take nodes rather than outputs.
* Added explicit support for native thunks, whose bindings are saved to a sideband channel during compilation and referenced in bytecode as an index. This generalizes code that was previously specific to node definitions.
* Added a name table to bytecode, to optimize situations where we reference the same string mulitple times.

#preflight 62bf3c583f0d6beee2e8f4a6

[CL 20918762 by Ben Marsh in ue5-main branch]
2022-07-01 14:47:54 -04:00
Ben Marsh
cbd0f5ea19 Add a common interface for reading/writing to memory (IMemoryReader/IMemoryWriter), which is implemented by the legacy MemoryReader/MemoryWriter classes as well as the newer ByteArrayBuilder.
Also moves VarInt into EpicGames.Core.
#preflight 62bb5e3efd06251187efd3d7

[CL 20863839 by Ben Marsh in ue5-main branch]
2022-06-28 16:14:51 -04:00
Ben Marsh
b049f4ad82 BuildGraph: Add handler for int options.
#preflight none

[CL 20830794 by Ben Marsh in ue5-main branch]
2022-06-27 10:48:39 -04:00
Ben Marsh
c32dfb7acb BuildGraph: Move option classes alongside their underlying types, and fix up a lot of namespaces.
#preflight none

[CL 20819013 by Ben Marsh in ue5-main branch]
2022-06-24 19:08:20 -04:00
Ben Marsh
bb0e506aac BuildGraph: Rename classes to reduce boilerplate when writing scripts.
* Expression classes (nodes, aggregates, graphs, etc...) are now called BgNode, BgAggregate, etc...
* Evaluated and instantiated objects used by BuildGraph internals are now called BgNodeDef, BgAggregateDef, etc...

#preflight 62b6374161016695a6545b08

[CL 20818158 by Ben Marsh in ue5-main branch]
2022-06-24 18:30:51 -04:00
Ben Marsh
50a74d20ce BuildGraph: Add bytecode compiler and interpreter to allow graph evaluation outside UAT.
#preflight 62b606546067f280916744c8

[CL 20814909 by Ben Marsh in ue5-main branch]
2022-06-24 15:18:50 -04:00
Ben Marsh
601781e498 BuildGraph: Fix exception passing Bg* value types to methods. Need to construct a constant Bg* type rather than passing the wrapped value.
#preflight 62b367ccd76167320e368af6

[CL 20793974 by Ben Marsh in ue5-main branch]
2022-06-23 09:57:56 -04:00
Ben Marsh
fe2c895552 Add build steps for static analysis of UBT and UAT, and to test project file generation.
#preflight 62b37e6ad76167320e3a224d

[CL 20781813 by Ben Marsh in ue5-main branch]
2022-06-22 17:12:30 -04:00
Ben Marsh
ff46dfcfce BuildGraph: Various refactorings prior to adding bytecode executor.
* Moved XML script parsing into UAT. We don't need to evaluate this in Horde.
* Added custom node types for script and expression nodes, rather than wrapping native nodes with a custom script task.
#preflight 62b31b76650c9d58579b2ea6

[CL 20773724 by Ben Marsh in ue5-main branch]
2022-06-22 09:56:45 -04:00
Ben Marsh
ad092b8fef BuildGraph: Decouple diagnostics from the nodes and agents that contain them.
#preflight 62b1ee341b2d3b6cafcdd33a

[CL 20759421 by Ben Marsh in ue5-main branch]
2022-06-21 12:20:43 -04:00