Lots of shadow variable issues in header files
Type narrowing mismatches between integer types.
Fixed some variable names which conflicted with private members, this works around a bug in VC14
Commiting some of Jeff's code changes from 2605975
#platformnotify Josh.Adams
#CodeReview Jeff.Campeau
[CL 2613285 by Terence Burns in Main branch]
- Generate a new cooker file open log for unrealpak to use if it can't find a game file order
- Add dependency data into the "mini" asset registry
- Load mini asset registry at runtime and use it to load package dependencies BEFORE opening the requested package. Hopefully, all in the same order as the cooker file log
[CL 2608850 by Graeme Thornton in Main branch]
Added UPackage member to FPackageAsync to track both linker and the package.
Made sure async packages get deleted when cancelling async loading
[CL 2590490 by Robert Manuszewski in Main branch]
- Async loading will now be suspended when render thread is suspended. This fixes a rare crash on startup.
- Fixed an infinite loading screen in situation when a package hasn't finished loading but was in a queue to be finalized on the game thread and something requested it to load again.
[CL 2566673 by Robert Manuszewski in Main branch]
Fix bug in simplified AsyncLoadPackage where priority was used as flags
Clean up some parameters and properties to be clear that they are PackageFlags, not LoadFlags
#codereview Robert.Manuszewski
[CL 2557438 by Marc Audy in Main branch]
- Removed lambdas and TFunctions from FArchiveAsync (this was the culprit of the regression)
- Added THREADSAFE_UOBJECTS to easily disable UObject multithreading safety and potential overhead (not that it even exists)
- Moved a few functions so that they're not called too often (they come up in profiles)
UE-14282
#lockdown Zachary.EdgertonJones
[CL 2522599 by Robert Manuszewski in Main branch]
- Fixed PostLoad order on loaded packages
- Fixed imports not being properly streamed due to bad FAsyncPackage setup
[CL 2500049 by Robert Manuszewski in Main branch]
- Linkers are no longer UObjects. Renamed ULinker, ULinkerLoad and ULinkerSave to FLinker, FLinkerLoad, FLinkerSave respectively
- Linkers are now associated with their UPackages
- Linker version is now stored in UPackages
- Async loading is now performed on a separate thread (if platform supports it and only in cooked builds), with the exception of PostLoad which is still done on the game thread
- Added UObject::IsPostLoadThreadSafe() function to determine if PostLoad is thread safe and can be executed on the async loading thread (defaults to false)
- UObject creation is now thread safe and can be performed on any thread
- Move many of the linker/UObject globals into FUObjectThreadContext (TLS)
- GetAsyncLoadPercentage() now takes PostLoad into account
- More async loading stats
- Added AtomicallySetFlags/ClearFlags to UObject
- Made FModuleManager thread safe.
- Added FGCScopeGuard as means of preventing GC from executing from non-game thread
- It's possible to disable async loading thread through ini settings.
- Cancelling async loading will now also trigger GC
- Implemented a basic version of async streaming priorities.
Change 2410813 by Mikolaj Sieluzycki:
Change Sleep in while loop to ConditionalSleep in FMultiReaderSingleWriterGT
Change 2410734 by Mikolaj Sieluzycki:
Make FModuleManager thread safe.
Change 2399879 by Mikolaj Sieluzycki:
Basic version of async streaming priorities.
Change 2410707 by Mikolaj Sieluzycki:
Implement conditional and no stat versions of sleep.
Change 2371939 by Robert Manuszewski:
Async Loading Improvements: adding more stats (accumulators)
Change 2372403 by Robert Manuszewski:
Fixing compile errors when STATs are not enabled
Change 2371526 by Robert Manuszewski:
AsyncLoading Improvements (WIP)
Change 2407198 by Robert Manuszewski:
Re-implementing delegate fixes for Async Loading
Change 2407425 by Robert Manuszewski:
Re-implementing cancelling async loading in the async loading branch.
Change 2484362 by Robert Manuszewski:
Making it possible to disable async loading thread through ini settings.
Change 2484744 by Robert Manuszewski:
Minimizing locks in GC and other threads when handling UObjects
Change 2480190 by Robert Manuszewski:
Fixing infinite stall after canceling async loading in non-cooked builds
Change 2484268 by Robert Manuszewski:
Fixing crash when allocating permanent object pool.
Change 2489761 by Robert Manuszewski:
Fixing BulkData using linker archive on the main thread even if the linker was created on the async loading thread.
Change 2493624 by Robert Manuszewski:
Cancelling async loading will now also trigger GC
Change 2487881 by Robert Manuszewski:
Making ShaderIdMap operations thread safe.
Change 2488067 by Robert Manuszewski:
Fixing GetAsyncLoadPercentage. It will now also respect PostLoad.
Change 2458640 by Robert Manuszewski:
Fixing crash in PIE
Change 2458825 by Robert Manuszewski:
Fixing a few crashes when streaming and the package is missing.
Change 2476935 by Robert Manuszewski:
Fixing crash while async loading ANavigationData
Change 2477361 by Robert Manuszewski:
Fixing crashes in cooked game
Change 2480095 by Robert Manuszewski:
Making FUObjectArray more thread safe
Change 2475443 by Robert Manuszewski:
Re-enabling single-threaded async loading path for the editor and platforms that don't support multithreading.
Change 2475458 by Robert Manuszewski:
Making sure bulk data is only loaded on a separate thread if it's not being loaded on the async loading thread.
Change 2476661 by Robert Manuszewski:
Fixing FlushAsyncLoading not flushing everything
Change 2401089 by Jaroslaw Surowiec:
Core - Added AtomicallySetFlags/ClearFlags to UObject, added a comment to ThisThreadAtomicallyClearedRFUnreachable
[CL 2498249 by Robert Manuszewski in Main branch]
change summary:
- call Reset() on local collection arrays rather than re-create them each time through the FObjectIterator loop
- removed an unnecessary dynamic_cast operation
#codereview Gil.Gribb
[CL 2495634 by Phillip Kavan in Main branch]
- The entire editor can now be compiled using Clang on Windows. It also runs (as long as you use the MSVC linker.)
- Use UEBuildWindows.bCompileWithClang=true to help test Clang support
- Most UE4 programs can now be compiled using Clang on Windows, and linked using the Clang linker on Windows
- Many C++ syntax fixes to resolve Clang errors and warnings when on Windows
- Clang on Windows now supports PCH files properly (but not "shared" PCHs, yet.)
- Hacked the DirectX XAudio2 headers slightly to work around a macro pasting bug in Clang
[CL 2494439 by Mike Fricker in Main branch]
https://github.com/EpicGames/UnrealEngine/pull/946
I have gone through these changes and verified that whatever behavior change they cause could only be an improvement (generally they just prevent possible access to nullptrs, but there are also some style corrections). A separate changelist is being prepared that includes changes that could unintentionally caues behavior change for the worse.
[CL 2486801 by Dan Oconnor in Main branch]