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]