Commit Graph

32 Commits

Author SHA1 Message Date
Mikolaj Sieluzycki
86b198fe24 Add critical section guarding adding modules to module manager.
[CL 2520862 by Mikolaj Sieluzycki in Main branch]
2015-04-22 08:19:04 -04:00
Robert Manuszewski
8fe5db30e3 Merging UE4-Streaming to UE4
- 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]
2015-04-01 03:03:18 -04:00
Steve Robb
90f034c9d2 GitHub 846: https://github.com/EpicGames/UnrealEngine/pull/846
std::nothrow_t& parameters made const.

#codereview robert.manuszewski

[CL 2456025 by Steve Robb in Main branch]
2015-02-23 08:50:34 -05:00
Robert Manuszewski
cb091bcd80 Hot-Reload improvements:
- CDO property values that have changed after hot-reload will now be propagated to the existing instances
- Adding code to a non-code project will no longer require restarting the editor to be able to work with new code (the new module will automatically be compiled and loaded)

[CL 2385307 by Robert Manuszewski in Main branch]
2014-12-11 06:03:58 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jaroslaw Palczynski
466d4ac231 Getting rid of auto-startup modules feature as it was causing confusion with loading time and it is not worth it to make it flexible as users expected it.
[CL 2373540 by Jaroslaw Palczynski in Main branch]
2014-12-02 04:37:53 -05:00
Jaroslaw Palczynski
2df4ab4b49 [UE-4798] AutostartupModules is not working properly
The auto-startup module list is now compiled to:
1. Exe if the target is a program.
2. Game module binary if the target is game, editor etc.

#codereview Robert.Manuszewski

[CL 2344885 by Jaroslaw Palczynski in Main branch]
2014-10-30 10:07:51 -04:00
Lee Clark
4b10755981 Fix for static initialization order of debug visualizer delegates
[CL 2337114 by Lee Clark in Main branch]
2014-10-22 13:35:17 -04:00
Steve Robb
95ac7b67db New/delete nothrow overrides, needed for newer Clangs.
Note: the changes here are only for Mac - it is likely that similar changes will be needed for other Clang platforms when they get upgraded.

#codereview dmitry.rekman,michael.trepka,mark.satterthwaite,robert.manuszewski

[CL 2331703 by Steve Robb in Main branch]
2014-10-16 11:23:02 -04:00
Robert Manuszewski
55f4bd6581 Removed [URL] GameName=Name from ini as we no longer need it for anything else than fixing the game name case (passed from command line)
#change Removed GGameName usage from code and replaced it with FApp::*GameName API
#change Added FApp::SetGameName(), FApp::IsGameNameEmpty()
#change Added IFileManager::GetFilenameOnDisk to get the correct case of a filename on disk
#change Renamed GGameName to GInternalGameName

[CL 2328446 by Robert Manuszewski in Main branch]
2014-10-14 10:31:43 -04:00
Max Preussner
aa5a200e78 Core: Added LoadModuleChecked overload to module manager
[CL 2317977 by Max Preussner in Main branch]
2014-10-02 18:14:11 -04:00
Ben Marsh
03bd8ee584 Move hot reload functionality onto it's own define, instead of being tied into IS_MONOLITHIC. Don't want it enabled for modular shipping games in Rocket.
#codereview Robert.Manuszewski

[CL 2293828 by Ben Marsh in Main branch]
2014-09-11 11:39:20 -04:00
Ben Marsh
31618620c1 Include module names in dialog for recompiling on startup, and don't allow continuing if they are an incorrect version.
[CL 2292600 by Ben Marsh in Main branch]
2014-09-10 12:43:07 -04:00
Ben Marsh
bb17aef300 Move functionality to invoke UBT into DesktopPlatform.
[CL 2286483 by Ben Marsh in Main branch]
2014-09-05 13:31:22 -04:00
Ben Marsh
d591804587 Move hot reload functionality from Core into the HotReload module. Precursor to removing assumptions about IS_MONOLITHIC and supporting hybrid monolithic configurations.
[CL 2286426 by Ben Marsh in Main branch]
2014-09-05 12:46:22 -04:00
Ben Marsh
abd570b7a9 Move GetSolutionFilepath() out of Core and into DesktopPlatform.
[CL 2278050 by Ben Marsh in Main branch]
2014-08-29 15:31:27 -04:00
Ben Marsh
dbf4591321 Rearranging ModuleManager to make it possible to lift out hot-reload and UBT functionality.
[CL 2277844 by Ben Marsh in Main branch]
2014-08-29 13:15:40 -04:00
Ben Marsh
bd49e9ef16 Remove UBT invocation functions from FModuleManager that are no longer used (and shouldn't have been there in the first place).
[CL 2267329 by Ben Marsh in Main branch]
2014-08-22 08:58:52 -04:00
Ben Marsh
bb5e6571ce Update version numbers for the 4.4.1 hotfix.
[CL 2260776 by Ben Marsh in Main branch]
2014-08-18 09:48:56 -04:00
Robert Manuszewski
8498aae74f Hot-reload from IDE
#change UBT: Added support for hot-reload when UBT is called from IDE and the current target is curring
#change Added support for hot-reload from VS to the engine
#change Refactored hot-reload functionality to a separarte module
#change Added hot-reload analytics events

[CL 2255801 by Robert Manuszewski in Main branch]
2014-08-14 03:37:01 -04:00
Marcus Wassmer
07fd4b83b0 Non monolithic projects will load AutoSDK environment properly.
#codereview Josh.Adams, dmitry.rekman, michael.trepka, ben.marsh

[CL 2227662 by Marcus Wassmer in Main branch]
2014-07-22 17:59:23 -04:00
Ben Marsh
829c91cf9b [INTEGRATE] Latest from 4.3 branch.
[CL 2213404 by Ben Marsh in Main branch]
2014-07-14 09:39:06 -04:00
Ben Marsh
ab4133ad03 Allow the DebugGame configuration setting to be compiled into monolithic executables. The -debug command line parameter is still used for editor builds.
#codereview Marcus.Wassmer

[CL 2176139 by Ben Marsh in Main branch]
2014-07-08 13:49:35 -04:00
Ben Marsh
8ffc82bbd0 Add concept of an 'API version' for modules, which is used for determining compatibility of DLLs. By default, the API version is the current changelist number, but can be set to previous changelists when making hotfixes. The API version number is stored in a special resource section for DLLs on Windows, and in the current-version field for dylibs on Mac.
In contrast to the previous system, this does not require special-casing for Rocket builds and will work correctly for nightlies and other out-of-band releases. It also removes the requirement for games to adhere to a strict format of version string on Windows for the editor to be able to load them, since the new data is injected indepdendently of the default resource by UBT.

#codereview Robert.Manuszewski, Michael.Trepka

[CL 2111949 by Ben Marsh in Main branch]
2014-06-20 13:02:34 -04:00
Max Preussner
0311f6e797 Docs: added documentation links
[CL 2110473 by Max Preussner in Main branch]
2014-06-19 11:07:38 -04:00