Commit Graph

21067 Commits

Author SHA1 Message Date
josh engebretson
b18db08df0 Horde: Clean up stream incrementals check
#rnx

[CL 29601640 by josh engebretson in ue5-main branch]
2023-11-09 12:54:23 -05:00
grant medine
6689fc1065 [Backout] - CL29577197
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Move common action properties for CreateRecursiveAction to be shared

#rnx

[CL 29600550 by grant medine in ue5-main branch]
2023-11-09 12:21:13 -05:00
carl bystrom
cc3de61293 Horde: Add service for agent relay and port mappings
[CL 29599561 by carl bystrom in ue5-main branch]
2023-11-09 11:58:39 -05:00
josh engebretson
af39a9aee4 Horde: Display step errors in lease view
#rnx

[CL 29599307 by josh engebretson in ue5-main branch]
2023-11-09 11:51:37 -05:00
ben marsh
34e682d7a2 Horde: Updated bundle file format and addressing scheme. Not yet enabled by default.
File format:
* Bundles are now just a stream of packets, but packets follow the stanard bundle signature format, allowing interop with older file formats.
* All import/export information is stored in packets, allowing them to be decoded without reading the a monolithic bundle header. Previous implementation did not factor in the size of header metadata with bundles, nor the size of supporting data structures, which could dwarf the size of payload data. Splitting headers into separate packets allows us to separate the packet size from read size, and still allows "over-reading" of bundles to prefetch additional coherent data for low-latency connections.

Locators:
* Blob locators now have a standard URI syntax; the #fragment portion of the URI identifies an embedded resource within the bundle, with parameters encoded using media-fragment syntax.
* Blob locators now encode the packet offset and length to support reading of individual packets.
* Packets and exports can be referenced directly with the same scheme, eg. bundle: "foo/bar", packet: "foo/bar#pkt=100,0", export: "foo/bar#pkt=100,0&exp=4".
* The packet import table now encodes arbitary string locators for each individual export in a prefix tree, with each node being a cachable handle to an individual blob object.
* Since blob locators are now effectively standard URIs, we can use them to link to content on other servers, or to link between separate endpoints on the same server.

Interop:
* Bundle writer options now include a setting for the maximum version number to use when writing bundles, allowing both codebases to exist side by side.
* Added separate LatestV1 and LatestV2 version number constants to identify encoding scheme to use before we migrate fully to V2 encoding.

Resource usage:
* Writes between layers in the write pipeline - with the exception of compression - are now done into final buffers, reducing the churn on memory allocations causing requiring frequent GC runs.
* Buffers allocated in the write process reserve memory against a fixed memory limit tracked in BundleCache; buffers allocated for asynchronous writes will now cause items to be purged from the cache to stay below the fixed memory limit.
* Buffers are reference counted, and can transfer ownership to the cache layer once unlocked.
* Buffers are now manually allocated and freed on the unmanaged heap to avoid needing to trigger the garbage collector.

Misc:
* The cache supports async initiatlization of values, fixing previous issue where multiple writes are executed.
* Handles now support equality comparisons to avoid having to construct temporary string objects for cache keys.

#jira

[CL 29599111 by ben marsh in ue5-main branch]
2023-11-09 11:46:56 -05:00
josh engebretson
ad7ea9d01c Horde: Fix issue with preflight showing up in incremental status
#rnx

[CL 29597942 by josh engebretson in ue5-main branch]
2023-11-09 11:19:41 -05:00
ben marsh
e3a16d6585 Horde: Fix chained job triggers not correctly waiting for execution to complete before activating.
#jira

[CL 29596138 by ben marsh in ue5-main branch]
2023-11-09 10:30:55 -05:00
ben marsh
ee8f4ec9bd Horde: Update agent capabilities in the background rather than on the main lease update loop. Have seen some occasions where this seems to be taking a long time; may be blocking sessison updates.
#jira

[CL 29594425 by ben marsh in ue5-main branch]
2023-11-09 09:08:37 -05:00
josh engebretson
32c090685d Horde: Fix issue with stream template status
#rnx

[CL 29594226 by josh engebretson in ue5-main branch]
2023-11-09 08:57:39 -05:00
ben marsh
8f70f57c47 Horde: Remove default implementation of IBlobHandle.FlushAsync.
#jira

[CL 29587866 by ben marsh in ue5-main branch]
2023-11-08 22:07:44 -05:00
ben marsh
ab7095d4ba Horde: Fix incorrect size argument to DDC blob service, causing non-deterministic test failures.
#jira

[CL 29587554 by ben marsh in ue5-main branch]
2023-11-08 21:57:09 -05:00
joe kirchoff
cdbaccc808 UnrealBuildTool: Move common action properties for CreateRecursiveAction to be shared
#rnx

[CL 29577504 by joe kirchoff in ue5-main branch]
2023-11-08 17:51:38 -05:00
ryan hummer
fc5a48a089 Adjusting FixPerforceCase boilerplate tags
#rnx
#rb none

[CL 29575649 by ryan hummer in ue5-main branch]
2023-11-08 17:17:57 -05:00
yuriy odonnell
1c37371960 unsync - Add basic test for thread pool
[CL 29574147 by yuriy odonnell in ue5-main branch]
2023-11-08 16:35:38 -05:00
josh engebretson
023d06ed18 Horde: Fix comparison in stream view
#rnx

[CL 29573060 by josh engebretson in ue5-main branch]
2023-11-08 16:05:47 -05:00
christopher fiala
ad226925bc Add a checkbox to the FN Main "Engine Tests - Target Platforms" test to enable stereo variant tests. Unchecked by default.
#jira UE-194361
#rb jerome.delattre

[CL 29572779 by christopher fiala in ue5-main branch]
2023-11-08 15:58:21 -05:00
josh engebretson
3e75056cff Horde: Add a hover for stream incrementals pivot
#rnx

[CL 29572372 by josh engebretson in ue5-main branch]
2023-11-08 15:44:39 -05:00
joe kirchoff
73a6de9a05 UnrealBuildTool: Box -> UBA. Command line args are doubled up until all usage can be updated
#rnx

[CL 29570778 by joe kirchoff in ue5-main branch]
2023-11-08 14:48:41 -05:00
adolf stary
795e68097c Added more Verbose logging to Gauntlet.TargetDevicePS5 and UnrealBuildSource
#rb brendan.lienau
#rnx

[CL 29566948 by adolf stary in ue5-main branch]
2023-11-08 13:17:42 -05:00
joe kirchoff
f282906116 UnrealBuildTool: Less agressive weighting of PVS
#rnx

[CL 29565146 by joe kirchoff in ue5-main branch]
2023-11-08 12:33:44 -05:00
ben marsh
53f183b286 Horde: Allow storing arbitrary IDisposable data along with BlobData objects, rather than requiring an IReadOnlyMemoryOwner.
#jira

[CL 29563878 by ben marsh in ue5-main branch]
2023-11-08 11:57:37 -05:00
ben marsh
a7a017106a Horde: Improved cache for reading bundles.
* Now supports caching of generic async operations, with resource accounting done by explicit calls to acquire disposable objects.
* When a resource is requested that would exceed the hard limit specified in an option, cache items are purged until the resource can be satisfied.
* Items in the cache are reference counted, and will not be purged while referenced.

#jira

[CL 29563686 by ben marsh in ue5-main branch]
2023-11-08 11:51:04 -05:00
yuriy odonnell
eba2a04a8c unsync - Remove FThreadPool::WaitForFence, add TryExecuteTask
* Handling individual task completion should be implemented in higher-level primitives

[CL 29561756 by yuriy odonnell in ue5-main branch]
2023-11-08 10:35:18 -05:00
joakim lindqvist
ff6ea1a26f Unreal Cloud DDC - Preparing release 0.5.1
[CL 29556867 by joakim lindqvist in ue5-main branch]
2023-11-08 07:06:06 -05:00
yuriy odonnell
295fecc61e unsync - Add basic implementation of a custom thread pool
* This will eventually replace ConcRT/PPL

[CL 29548221 by yuriy odonnell in ue5-main branch]
2023-11-07 21:30:28 -05:00