Commit Graph

260 Commits

Author SHA1 Message Date
david harvey
58224ec27e compile fix for Windows-based platform extensions.
#jira none
#rb nuno.leiria
#rnx

#ROBOMERGE-SOURCE: CL 16346948 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16346964 by david harvey in ue5-release-engine-test branch]
2021-05-17 06:37:10 -04:00
devin doucette
51dddac84f DDC: Fixed a build error caught by Clang
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16333256 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16333261 by devin doucette in ue5-release-engine-test branch]
2021-05-14 15:08:31 -04:00
devin doucette
bffbaeacc3 DDC: Added optional versions of BuildAction, BuildDefinition, BuildOutput, CacheRecord
- Optional versions are now returned from operations that may fail.
- Fixed a bug in the cache where a null record could be dereferenced.
- Improved validation when loading build types.

#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 16332909 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16332914 by devin doucette in ue5-release-engine-test branch]
2021-05-14 14:47:32 -04:00
devin doucette
d77b6511c3 DDC: Temporary workaround for static analysis issue with Get<T> on 2-tuples
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16326041 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16326047 by devin doucette in ue5-release-engine-test branch]
2021-05-13 23:24:35 -04:00
devin doucette
796e62e1ae DDC: Added a missing #include
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16326010 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16326020 by devin doucette in ue5-release-engine-test branch]
2021-05-13 23:23:18 -04:00
devin doucette
13add511a0 DDC: Changed the builder types to delete themselves on Build()
#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 16317751 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16317760 by devin doucette in ue5-release-engine-test branch]
2021-05-13 16:10:05 -04:00
devin doucette
018538b43e DDC: Added UE::DerivedData::FBuildAction
FBuildAction and the associated builder type define the exact action to be executed, including the function and its version, and the inputs referenced by hash.

#rb Zousar.Shaker
#rnx
#preflight 609cbaed7ebade00018f29c9

#ROBOMERGE-SOURCE: CL 16317116 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16317121 by devin doucette in ue5-release-engine-test branch]
2021-05-13 15:37:12 -04:00
devin doucette
c3c2d323c8 DDC: Organized functions for consistency and fixed includes of Templates/Function.h
#rb trivial
#rnx
#preflight 609c4284dc97da000146a5e1

#ROBOMERGE-SOURCE: CL 16306812 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v800-16297934)

[CL 16307989 by devin doucette in ue5-release-engine-test branch]
2021-05-12 19:24:34 -04:00
devin doucette
ffb022bd4b DDC: Forward constructor arguments through TBuildFunctionFactory
#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 16304994 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v800-16297934)

[CL 16305012 by devin doucette in ue5-release-engine-test branch]
2021-05-12 16:02:07 -04:00
devin doucette
1ea1951917 DDC: Added UE::DerivedData::FBuildOutput
FBuildOutput and the associated builder type define the output of a derived data build as a collection of payloads and diagnostic messages.

#rb Zousar.Shaker
#rnx
#preflight 609c0fc05b35c60001cbc2e3

#ROBOMERGE-SOURCE: CL 16304655 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v800-16297934)

[CL 16304661 by devin doucette in ue5-release-engine-test branch]
2021-05-12 15:46:35 -04:00
devin doucette
ec088e92a9 DDC: Added support for cache records with null data
#rb Zousar.Shaker
#rnx
#preflight 609b6698b16d45000155cb04

#ROBOMERGE-SOURCE: CL 16298475 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v800-16297934)

[CL 16298478 by devin doucette in ue5-release-engine-test branch]
2021-05-12 09:28:22 -04:00
devin doucette
6657806302 DDC: Added UE::DerivedData::IBuildFunction and related types
IBuildFunction and the associated build context types define the interface for new derived data build functions. The inputs to a build function are referenced by FBuildDefinition. This only includes the functionality required to implement and register a build function, and does not include the functionality required to execute a build starting from a build definition.

#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 16278733 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v799-16237190)

[CL 16279132 by devin doucette in ue5-release-engine-test branch]
2021-05-11 16:33:17 -04:00
devin doucette
ef8bc1841c DDC: Minor updates to formatting of code and asserts
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16278716 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v799-16237190)

[CL 16279122 by devin doucette in ue5-release-engine-test branch]
2021-05-11 16:33:07 -04:00
Devin Doucette
536b5fa4dc DDC: Updated documentation and removed unnecessary explicit hash construction
#rb trivial
#rnx

[CL 16207037 by Devin Doucette in ue5-main branch]
2021-05-05 10:15:34 -04:00
Devin Doucette
70a7cb25a8 DDC: Added raw size to the payload
#rb Zousar.Shaker
#rnx
#preflight 609229cb58c4790001a048f0

[CL 16207035 by Devin Doucette in ue5-main branch]
2021-05-05 10:15:26 -04:00
Devin Doucette
3f40f504cf DDC: Changed Put to take a const array of cache records now that records are copyable
#rb Zousar.Shaker
#rnx

[CL 16184736 by Devin Doucette in ue5-main branch]
2021-05-03 12:05:18 -04:00
Devin Doucette
e39324b347 DDC: Changed FCacheRecord to be reference-counted instead of uniquely owned
#rb Zousar.Shaker
#rnx

[CL 16184511 by Devin Doucette in ue5-main branch]
2021-05-03 11:41:14 -04:00
Devin Doucette
0a560db3a0 DDC: Added FPayload::Null and FPayloadId::Null
#rb Zousar.Shaker
#rnx

[CL 16184503 by Devin Doucette in ue5-main branch]
2021-05-03 11:40:06 -04:00
Devin Doucette
7149637a27 DDC: Moved Private::CreateBuildDefinition[Builder] out of the header to avoid them being used externally
#rb Zousar.Shaker
#rnx

[CL 16184493 by Devin Doucette in ue5-main branch]
2021-05-03 11:38:45 -04:00
Devin Doucette
0baafa125a DDC: Added the start of the new build interface UE::DerivedData::IBuild
This only includes the functionality required to create a build definition, and does not include the functionalty required to execute a build from the build definition.

#rb Zousar.Shaker
#rnx
#preflight 608cf5ef7343ea00016e58f4

[CL 16183533 by Devin Doucette in ue5-main branch]
2021-05-03 09:25:48 -04:00
Andriy Tylychko
9f1cf3eabf re-deprecated FPlatformProcess::CreateSynchEvent(), now on all platforms. Replaced FEvent* by FEventRef where it made sense. Deprecated FEvent::Create() as another method to bypass the event pool
#rb steve.robb

[CL 16163267 by Andriy Tylychko in ue5-main branch]
2021-04-29 18:52:48 -04:00
Devin Doucette
0fc6e341c1 DDC: Display pak file size when opening a pak cache
#jira UE-114516
#rb Zousar.Shaker
#rnx

[CL 16157309 by Devin Doucette in ue5-main branch]
2021-04-29 10:42:42 -04:00
Devin Doucette
e9c43a79ae DDC: Implemented ICache on FDerivedDataCacheInterface
Moved IDerivedDataCacheModule to its own header and renamed CreateOrGetDDC to CreateOrGetCache.

#rb Zousar.Shaker
#rnx
#preflight 6089d5a036afba00015c0348

[CL 16153121 by Devin Doucette in ue5-main branch]
2021-04-28 23:25:28 -04:00
Devin Doucette
e42bbbedab DDC: Implement ICacheStore on FDerivedDataBackendInterface
This allows the new cache to be implemented more efficiently using the old cache backends because functionality like the corruption wrapper and key length limiter can be bypassed and the individual backends can store cache records in whatever way is most efficient for them.

The hierarchical backend may request payloads when they are not required due to incomplete tracking of backend state, and GetPayload will never fill other backends due to the inefficiency of the existing backend framework.

The filesystem backend does not cache any state in memory, which makes requests for individual payloads less efficient than if it cached a mapping of cache payload key to raw hash after the first request for a cache key.

The HTTP, S3, and pak file backends are not implemented for the new interface.

The backends do not implement ICacheStore::CancelAll() because the existing backend framework provides WaitForQuiescence to wait for completion of async requests, and the implementation of ICacheStore by those backends works with that mechanism.

The non-leaf backends (hierarchical, async put, etc.) do not update stats from the ICacheStore functions.

#rb Zousar.Shaker
#rnx
#preflight 60899f35d324590001b47517

[CL 16148296 by Devin Doucette in ue5-main branch]
2021-04-28 16:22:18 -04:00
Devin Doucette
84641e44fb DDC: Added an assert to FCacheRecordBuilder::BuildAsync to require a callback
#rb trivial
#rnx

[CL 16148043 by Devin Doucette in ue5-main branch]
2021-04-28 16:05:08 -04:00