Commit Graph

741 Commits

Author SHA1 Message Date
per larsson
de1f9a66f7 COTF: Better lock scope when handling cooked packages (server) and moved subscription to cook-on-the-fly messages (client) when package store is initializing
#rb none
#jira none
#rnx

#ROBOMERGE-AUTHOR: per.larsson
#ROBOMERGE-SOURCE: CL 17469520 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17469527 by per larsson in ue5-release-engine-test branch]
2021-09-09 05:14:16 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
pj kack
1af448f9ed AsyncLoading2: Add back missing fileopenlog generation functionality (unintentionally removed in cl 16481564)
#rb carlmagnus.nordin
#preflight none
#rnx

#ROBOMERGE-SOURCE: CL 17399712 via CL 17400415
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17400426 by pj kack in ue5-release-engine-test branch]
2021-09-02 06:07:33 -04:00
paul chipchase
89bdd7c0e5 Improve the documentation for the bulkdata method ::RemoveBulkData to make it clear that calling it will prevent the bulkdata object from reloading payloads from disk in future.
#rb Per.Larsson
#rnx
#preflight 612e03f6677f0e000144b652

- Updated the comments to make the methods intent very clear (unload current payloads and prevent future payloads from being loaded from disk)
- Fix an inconsistency with BD2 running from IoStore, where calling ::RemoveBulkData was not preventing future loads in all cases. We now invalidate the PackageID when running from the IoStore in addition to unregistering the filepath token when running from pak files.
- No longer clear the flags when calling ::RemoveBulkData to be consistent with BD1.
- We might want to consider deprecating this method name and using something like ::Reset instead, but that would imply that we would reset all members and I do not see the value in making this much larger change if we do not need to do so.

#ROBOMERGE-SOURCE: CL 17366830 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17366843 by paul chipchase in ue5-release-engine-test branch]
2021-08-31 09:00:11 -04:00
carlmagnus nordin
32e4a5213e Implemented a stripped down version of FPackagePath for use outside of the editor in order to save memory
#rnx
#jira UE-120698

#ROBOMERGE-SOURCE: CL 17300999 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17301011 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-25 08:02:24 -04:00
charles derousiers
9be5d7fdf3 Fix StartAsyncLoading() with IODispatcher.
This fix was originally made by Paul Chipchase.

#rb Paul.Chipchase
#preflight 61249d24cc11eb0001ac4ef2

#ROBOMERGE-SOURCE: CL 17282377 via CL 17282388
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17282396 by charles derousiers in ue5-release-engine-test branch]
2021-08-24 04:02:53 -04:00
carlmagnus nordin
42b9699fa0 AsyncLoading2:
Remove limit on pending package size since request buffers are no longer allocated up front.
Rely on the iodispatcher to sort requests instead of using the global load order for each package.
No longer store export bundle size and load order in the package store.
#jira FROST-4677
#rb per.larsson
#rnx

#ROBOMERGE-SOURCE: CL 17267090 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17267107 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-23 10:50:32 -04:00
carlmagnus nordin
ac2cdd9d36 AsyncLoading2: Fixed issue with IoBuffers being kept alive longer than intended
#rnx
#jira none
#rb per.larsson

#ROBOMERGE-SOURCE: CL 17236848 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17236870 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-19 13:55:57 -04:00
andriy tylychko
6bf3101dcd deprecated FTicker and family and replaced by thread-safe FTSTicker
#jira UE-120090
#rb francis.hurteau


#ROBOMERGE-SOURCE: CL 17176325 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17176374 by andriy tylychko in ue5-release-engine-test branch]
2021-08-16 11:09:22 -04:00
carlmagnus nordin
7d3f4b9501 AsyncLoading2: Fixed memory leak in package request queue
#rb pj.kack
#rnx
#jira UE-121014

#ROBOMERGE-SOURCE: CL 17147784 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17147785 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-12 02:37:24 -04:00
carlmagnus nordin
e4ef72743f AsyncLoading2:
Fixed edge case where imported packages failed to register as dependencies if they had serialized all their exports but not postloaded them yet
#rb pj.kack
#rnx
#jira UE-120987

#ROBOMERGE-SOURCE: CL 17099821 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17099850 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-09 07:51:08 -04:00
martin ridgers
e39cf135f4 Load and platform-file tracing migrated away from attachments.
#rb cm
#rnx

#ROBOMERGE-SOURCE: CL 17048386 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)

[CL 17049897 by martin ridgers in ue5-release-engine-test branch]
2021-08-04 09:33:37 -04:00
carlmagnus nordin
19b76a384b AsyncLoading2:
Ensure that all reachable packages have all their exports serialized before starting post load instead of relying on the serialization order. This is still required in some cases.
Apply the same logic to ensure that all reachable packages are post loaded before finishing loading

#rb pj.kack
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 17027677 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v843-17027566)
#ROBOMERGE[bot1]: dev-enginemerge-test

[CL 17027695 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-03 06:04:41 -04:00
matt peters
2e6d7cefd8 #jira UE-120709
AsyncLoading with EditorDomain: batch up the callbacks in FAsyncLoadingThread::ProcessLoadedPackages so that the EditorDomain callback that saves the just-loaded package does not cause a stack overflow by adding 14 functions on the stack for each pending package discovered in the FlushAsyncLoading call.
#rb Francis.Hurteau
#rnx

#ROBOMERGE-SOURCE: CL 17017812 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)

[CL 17017898 by matt peters in ue5-release-engine-test branch]
2021-08-02 13:31:52 -04:00
carlmagnus nordin
41da001048 IoStore:
Add more flexibility to the redirects/localization functionality by moving redirect information away from the package summaries and import tables
Changed import references from global import hashes to package local export hashes

#rb pj.kack
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 17014898 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
#ROBOMERGE[bot1]: dev-enginemerge-test

[CL 17014905 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-02 07:21:44 -04:00
matt peters
a1e506797a Generalize IPackageResourceManager::OnEndLoad into FCoreUObjectDelegates::OnEndLoadPackage for use by the BulkDataRegistry, and add UPackage::bHasBeenEndLoaded for BulkDataRegistry to know when a package has finished its initial load serialization.
Add OnEndLoad calls for Async loaded packages, since the editor sometimes uses async loads.
#rb Francis.Hurteau
#rnx

#ROBOMERGE-SOURCE: CL 16861817 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16861829 by matt peters in ue5-release-engine-test branch]
2021-07-15 09:49:49 -04:00
matt peters
0724105f6c BulkDataRegistry
Updating FVirtualizedUntypedBulkData and textures to use the BulkDataRegistry.
BulkDataRegistry: Add get/put accessors for the cached BulkDataList of packages.
EditorDomain: Move ClassDigests into a global variable that can be shared with BulkDataRegistry.
EditorDomain: Improve performance of GetFileSize by fetching metadata only.
Tickable Cook Objects, for systems used by the cooker that need to be ticked.
Implementation of the the BulkDataRegistry that uses the DDC cache for persistent storage of the BulkDataList.

#rb Devin.Doucette, Paul.Chipchase, Zousar.Shaker

#ROBOMERGE-SOURCE: CL 16768772 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16768778 by matt peters in ue5-release-engine-test branch]
2021-06-24 00:51:58 -04:00
aurel cordonnier
02c0f425e8 Copy up from Release-Engine-Staging @ 16738359
This represents UE4/Main @ 16738161 and Dev-PerfTest @ 16737719

[CL 16738582 by aurel cordonnier in ue5-release-engine-test branch]
2021-06-22 00:27:54 -04:00
per larsson
78582ba328 Fix non unity Crash reporter compile error
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16725383 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16725388 by per larsson in ue5-release-engine-test branch]
2021-06-21 03:40:46 -04:00
per larsson
38d3910b5c Remove dependency to CookOnTheFly module from CoreUObject and Launch when compiling programs
#rb Paul.Chipchase

#ROBOMERGE-SOURCE: CL 16725292 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16725294 by per larsson in ue5-release-engine-test branch]
2021-06-21 02:46:31 -04:00
zousar shaker
c27625b056 Integrating //UE5/Dev-Cooker [at] 16678003 to //UE5/Main (Zousar.Shaker-YEG-0943-Quaternary)
Non-DevIteration_ShooterGame


#ROBOMERGE-SOURCE: CL 16678907 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16678928 by zousar shaker in ue5-release-engine-test branch]
2021-06-15 16:38:03 -04:00
paul chipchase
d3e8c0243c Fix a bug where bulkdata that was compressed during the content cook was returning the compressed data rather than uncompressed data when the IoDispatcher was active.
- This has gone so long without being noticed as it is not expected that bulkdata will be compressed during a cook, as the pakfiles themselves will be compressed.
- InternalLoadFromIoStore now only loads via the IoDispatcher directly to the destination buffer if the data is in uncompressed format.
- If the data is going to be compressed we let the IoDispatcher allocate and return the compressed buffer and bulkdata will decompress that to the destination buffer instead.

#rb Per.Larsson, CM.Nordin
[FYI] Charles.deRousiers
#preflight 60c83e2143ec380001e2ad1b

#ROBOMERGE-SOURCE: CL 16670240 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v834-16658389)

[CL 16670246 by paul chipchase in ue5-release-engine-test branch]
2021-06-15 03:16:08 -04:00
francis hurteau
381867fdd0 Fixed crash in BulkData when detaching an already detached bulkdata
#rb Danny.Couture
#issue 313

#ROBOMERGE-SOURCE: CL 16641407 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16641417 by francis hurteau in ue5-release-engine-test branch]
2021-06-11 10:45:50 -04:00
carlmagnus nordin
0293546296 Added support for storing shaders in iostore.
Opt-In with core setting AllowShadersInIoStore
#review-16450322

#ROBOMERGE-OWNER: carlmagnus.nordin
#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 16622428 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v830-16605563)
#ROBOMERGE-CONFLICT from-shelf

[CL 16622474 by carlmagnus nordin in ue5-release-engine-test branch]
2021-06-10 09:36:47 -04:00
paul chipchase
0c2529d248 Reloading inline bulkdata in the old loader will now raise an ensure rather than log warnings as it should make it easier for people to spot the problem before it hits the new loader and fails to work entirely.
- Since reloading inline data does not work in the old loader we need to make it more obvious to developers when they are doing it in the old loader so that it doesn't get submitted.
- An ensure will cause the process top break in the debugger and is more likely to get attention. It will also provide the callstack for any QA bug report which will make it easier for us to triage to the correct team to fix their calling code than a vague warning about bulkdata.
- Also provided a new define, UE_KEEP_INLINE_RELOADING_CONSISTENT, which when enabled will cause reloading of inline bulkdata to fail (and error) in the old loader as well.
- The ensure can be supressed by setting [Core.System]IgnoreInlineBulkDataReloadEnsures=True in an engine config file, this might be useful for projects that do not care about running from staged data for what ever reason (but supressing the ensure will not prevent the data from failing to load when run with the new loader so this is strictly a 'use at your own risk' option)

#rb CarlMagnus.Nordin
#preflight 60bf45f97bc5f2000173195a

[CL 16586071 by paul chipchase in ue5-main branch]
2021-06-08 08:44:17 -04:00