Commit Graph

140 Commits

Author SHA1 Message Date
ben marsh
538ac728ad Allow disabling the S3 backend by setting the UE-S3DataCachePath environment variable to "None"
#rb none
#jira

#ROBOMERGE-SOURCE: CL 12486037 via CL 12486375 via CL 12486409 via CL 12486440
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487544 by ben marsh in Main branch]
2020-03-30 12:12:06 -04:00
andrew grant
963ad0c629 Allow users to customise S3 path by setting an UE-S3DataCachePath environment variable. If not set the default of ProjectDir/Saved/S3DDC is still used
#rb swarm
[at]devin.doucette [at]ben.marsh
[FYI] antoine.guilbaud
#tests Booted editor and PIE'd into AthenaTest with UE-S3DataCachePath set to a different drive. Verified data is there.

#ROBOMERGE-SOURCE: CL 12474206 via CL 12474221 via CL 12474232 via CL 12474240
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12474252 by andrew grant in Main branch]
2020-03-27 15:57:11 -04:00
andrew grant
95b59e82f4 Fixed a... typo? bad resolve? that was causing new data not to be written to DDC caches
[FYI] uriel.doyon, devin.doucette
#rb uriel.doyon

#ROBOMERGE-SOURCE: CL 12473303 via CL 12473315 via CL 12473325 via CL 12473327
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12473331 by andrew grant in Main branch]
2020-03-27 14:57:01 -04:00
andrew grant
6a3a6a6425 Temp workaround for FORT-273296 while I investigate why ShaderCompiler on Mac doesn't like the speed test option.
[FYI] stefan.boberg
#rb na
#tests compiled SCW and booted into editor with -noshaderddc to force shader compiles

#ROBOMERGE-SOURCE: CL 12466138 via CL 12468387 via CL 12468494 via CL 12468566
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12468580 by andrew grant in Main branch]
2020-03-27 11:20:28 -04:00
andrew grant
14d1b683f8 Moved some DDC debug options into a common class that can be provided to a backend to simulate certain behavior.
E.g.

'-ddc-local-missrate=50' simulates a 50% miss rate of keys on the local backend,
'-ddc-shared-misstypes=AnimSeq' simulates misses for any AnimSeq key. Use + to combine keys. E.g. AnimSeq+Audio

Memory DDC, FileSystemDDC and S3DDC support these options as do the classes that wrap other backends (e.g. AsyncPut).

#tests lots of warm and cold DDC
#swarm https://p4-swarm.epicgames.net/reviews/12458696

#ROBOMERGE-SOURCE: CL 12466119 via CL 12466177
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12466179 by andrew grant in Main branch]
2020-03-27 08:12:16 -04:00
andrew grant
e224300cc3 Moved some DDC debug options into a common class that can be provided to a backend to simulate certain behavior.
E.g.

'-ddc-local-missrate=50' simulates a 50% miss rate of keys on the local backend,
'-ddc-shared-misstypes=AnimSeq' simulates misses for any AnimSeq key. Use + to combine keys. E.g. AnimSeq+Audio

Memory DDC, FileSystemDDC and S3DDC support these options as do the classes that wrap other backends (e.g. AsyncPut).

#tests lots of warm and cold DDC
[at]ben.marsh [at]josh.engebretson [at]devin.doucette

#ROBOMERGE-SOURCE: CL 12458693 via CL 12462167 via CL 12464485 via CL 12464606
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12464717 by andrew grant in Main branch]
2020-03-26 20:55:39 -04:00
ben marsh
a4c0ecd2eb Suppressing errors about S3DDC if disabled.
#jira

#ROBOMERGE-SOURCE: CL 12455905 via CL 12455924 via CL 12455926 via CL 12460993 via CL 12461148
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12461272 by ben marsh in Main branch]
2020-03-26 17:59:17 -04:00
ben marsh
604cd08968 Enable S3DDC by default if available, with a check for canary file not reachable from internal IPs. Also add an editor setting (in the Global panel) for disabling it.
Also suppress some warning messages when a download is cancelled.

[FYI] Andrew.Grant
#jira

#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 12453891 via CL 12454085 via CL 12454109 via CL 12459232 via CL 12459415
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12459547 by ben marsh in Main branch]
2020-03-26 17:03:08 -04:00
andrew grant
178b067378 Temporrily disabling filesystem DDC optimization that breaks virtual texturing
[FYI] jeremy.moore
#rb na


#ROBOMERGE-SOURCE: CL 12420666 via CL 12425989 via CL 12436837
#ROBOMERGE-BOT: (v671-12333473)

[CL 12442290 by andrew grant in Release-Engine-Staging branch]
2020-03-26 07:31:34 -04:00
andrew grant
3cc86b3d2f Optimizations for DDC access on remote / slow drives.
If a filesystem node is not available not prompt the user and optionally retry incase they need to mount a drive or start VPN

Fiilesystem nodes now perform a speed test using a selection of 'DDC sized' files to determine a classification (local, fast, ok, slow).

Add a new 'ConsiderSlowAt' property to the 'Filesystem' DDC node type. If latency to the node is >= this value then the node will be marked as slow which disables touch'ing and reduces file stats

Interface Changes

- Add the concept of a speed class to nodes
- Add GetName to nodes for better debugging / logging
- WouldCache query that allows caches to opt of of consideration early and avoid async tasks being created.
- Create a new 'FileBackedDerivedDataBackend' class that's the for the memory/boot backend and future classes
- TryToPrefetch interface functions for future use

Behavior Changes

- Moved parameter parsing into FileSysteDerivedDataBackend as things were getting out of hand
- FileSystemDerivedDataBackend now performs a speed test using 'DDC sized' files in separate directories and applies a classification
- Slow locations turn off touching of data on read
- Slow locations always return true for CachedDataProbablyExists. It's faster just to try to read and fail
- If the shared DDC is not available the user is prompted incase they need to mount it.

[at]ben.marsh [at]josh.engebretson
#rb swarm
#tests lots of PIE runs with / without this option


#ROBOMERGE-SOURCE: CL 12387516 via CL 12387517 via CL 12396622
#ROBOMERGE-BOT: (v671-12333473)

[CL 12396757 by andrew grant in Release-Engine-Staging branch]
2020-03-24 19:12:36 -04:00
devin doucette
77c43f6842 Improved DDC error when no backends are available
#jira UE-90680
#rb Zousar.Shaker
[RN] fix Core/Cooker

#ROBOMERGE-SOURCE: CL 12247507 in //UE4/Release-4.25/... via CL 12247524
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v668-12245121)

[CL 12247553 by devin doucette in Main branch]
2020-03-18 11:14:04 -04:00
Devin Doucette
e8ba41d54f Changed FStringView parameters to virtual functions to pass by value instead of by reference
This is the preferred way to use string views. These interfaces were added in 4.25 so this is the time to fix them without breaking user code.

#jira none
#rb trivial
#rnx

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 12236111 in //UE4/Release-4.25/... via CL 12236115
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)

[CL 12238549 by Devin Doucette in Main branch]
2020-03-17 22:32:03 -04:00
ben marsh
8b87619ad5 Fix progress bar winding backwards when downloading DDC bundles from S3, due to integer overflow.
#jira


#ROBOMERGE-SOURCE: CL 12170031 via CL 12170032 via CL 12195714
#ROBOMERGE-BOT: (v662-12191386)

[CL 12195879 by ben marsh in Main branch]
2020-03-16 08:47:15 -04:00
ben marsh
31934e0cc1 Add an optional parameter to the filesystem DDC backend that logs any accesses to a particular key, so we can extract data for uploading to S3.
#jira
[FYI] Josh.Engebretson


#ROBOMERGE-SOURCE: CL 12166421 via CL 12166427 via CL 12166431
#ROBOMERGE-BOT: (v661-12148976)

[CL 12166433 by ben marsh in Main branch]
2020-03-13 15:35:22 -04:00
ben marsh
4fbcf75b6e Add verbose logging to S3 DDC backend.
#jira


#ROBOMERGE-SOURCE: CL 12158934 via CL 12158935 via CL 12158936
#ROBOMERGE-BOT: (v659-12123632)

[CL 12158937 by ben marsh in Main branch]
2020-03-12 22:35:04 -04:00
ben marsh
ff74b40543 Disable S3 DDC backend on Mac due to missing libcurl implementation causing link errors.
#jira


#ROBOMERGE-SOURCE: CL 12154529 via CL 12155941 via CL 12156003
#ROBOMERGE-BOT: (v659-12123632)

[CL 12156082 by ben marsh in Main branch]
2020-03-12 18:00:07 -04:00
ben marsh
5393bfd155 Change S3 DDC backend to use a separate index for the currently valid manifests, so that it can be secured in source control.
#rb none
#jira


#ROBOMERGE-SOURCE: CL 12151719 via CL 12155008 via CL 12155068
#ROBOMERGE-BOT: (v659-12123632)

[CL 12155157 by ben marsh in Main branch]
2020-03-12 17:36:41 -04:00
ben marsh
b5fdbe9e35 Fix missing header.
#jira


#ROBOMERGE-SOURCE: CL 12147978 via CL 12147979 via CL 12149513
#ROBOMERGE-BOT: (v659-12123632)

[CL 12149624 by ben marsh in Main branch]
2020-03-12 13:29:34 -04:00
ben marsh
7d6083104f Add experimental DDC backend which fetches objects from an S3 bucket. Bucket is populated by a job running periodically on build machines, and generates a JSON manifest used to determine files to download.
#rb none
#rnx
#jira


#ROBOMERGE-SOURCE: CL 12147942 via CL 12147943 via CL 12149500
#ROBOMERGE-BOT: (v659-12123632)

[CL 12149604 by ben marsh in Main branch]
2020-03-12 13:29:21 -04:00
nick darnell
7fb5ae96d7 Changing the DDC interface to use TArrayView instead of TArray for placing data into the DDC.
Updating the ArrayView with new comparison operators to have greater replacement for what TArray provides.

#rb Marc.Audy, Steve.Robb


#ROBOMERGE-OWNER: nick.darnell
#ROBOMERGE-AUTHOR: nick.darnell
#ROBOMERGE-SOURCE: CL 11843381 via CL 11843463 via CL 11843492
#ROBOMERGE-BOT: (v656-11643781)

[CL 11879995 by nick darnell in Main branch]
2020-03-03 14:33:45 -05:00
devin doucette
2ec33ba823 Fix extra DDC puts when DDC logging is enabled on the command line
Enabling verbose DDC logging with -ini:Engine:[Core.Log]:LogDerivedDataCache=Verbose was causing extra idempotent puts because of checks for the DerivedDataCache commandlet that checked for "DerivedDataCache" anywhere in the command line. Check for "Run=DerivedDataCache" instead to avoid the problem.

#rb Matt.Peters


#ROBOMERGE-SOURCE: CL 11215688 via CL 11215689
#ROBOMERGE-BOT: (v644-11213502)

[CL 11225076 by devin doucette in Main branch]
2020-02-04 17:59:32 -05:00
devin doucette
ee99e02649 Work around a false positive from static analysis
Static analysis is reporting that certain local variables inside of lambdas are shadowing themselves. Steve.Robb found https://developercommunity.visualstudio.com/content/problem/576913/c6244-regression-in-new-lambda-processorpermissive.html where the same problem was reported last year. Microsoft closed the issue without resolving it.

#jira UE-88014
#rb trivial
#rnx
#robomerge Fortnite-Main

[CL 11215662 by devin doucette in Main branch]
2020-02-04 11:54:28 -05:00
Devin Doucette
070f44a07a Add debug context to DDC requests that take the key as a parameter
The existing GetSynchronous, GetAsynchronous, and Put functions are deprecated in favor of the DebugContext overloads. It is unlikely that a licensee has derived from FDerivedDataCacheInterface, but anyone who does will have a compile error that they override a non-virtual function and that they don't implement a pure virtual function, which will be straightforward to fix.

#rb Zousar.Shaker

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 11210386 via CL 11210387
#ROBOMERGE-BOT: (v643-11205221)

[CL 11210609 by Devin Doucette in Main branch]
2020-02-03 17:17:56 -05:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00