==========================
MAJOR FEATURES + CHANGES
==========================
Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1
GC and WeakObjectPtr performance optimizations.
- Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray
- Moved WeakObjectPtr serial numbersto FUObjectArray
- Added pre-allocated UObject array
Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1
Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved.
Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920
UHT will now use makefiles to speed up iterative runs.
Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963
Hot-reload performance optimizations:
1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier).
2. Parallelized search for old CDOs referencers.
Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster
Dependency preloading improvements
- Asset registry dependencies now resolve asset redirectors
- Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package
Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1
Allow UnfocusedVolumeMultiplier to be set programmatically
Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1
When cooking, don't add imports that are outers of objects excluded from the current cook target.
Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core
Inline storage for TFunction.
Fix for delegate inline storage on Win64.
Some build fixes.
Visualizer fixes for new TFunction format.
Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec
CrashReporter Web - Search by Platform
Added initial support for streams (GetBranchesAsListItems, CopyToJira)
Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core
Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString.
Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core
Some TSet function optimisations:
Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent).
Taking local copies of HashSize during iterations.
Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core
BulkData zero byte allocations are now handled by an RAII object which owns the memory.
Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core
FName::operator== and != optimised to be a single comparison.
Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec
PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro)
Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec
PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360)
Also fixed starting condition.
Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1
PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus)
Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core
PR #1540 - Specifying a different Saved folder at launch through a command line parameter
Integrated and optimized.
#lockdown Nick.Penwarden
[CL 2772222 by Robert Manuszewski in Main branch]
Full set of changes:
- Refactored all child-process related unit test code, into a new ProcessUnitTest class, to allow use with non-UE4 processes
- Added better detection of ShaderCompileWorker and shader compilation in general, and made unit tests more tolerant of this (but spam an error message, stating that shaders should be built independently)
- Fixed race condition, where NUTActor control-channel messages, could be executed without an Owner - randomly breaking some unit tests
[CL 2695700 by John Barrett in Main branch]
- This checkin eliminates use of all <Module>Classes.h files in Engine, with the exception of UnrealEdClasses.h
- Compilation speed-ups for all of the modules affected, now that they are including what they use
- No effective changes other than C++ includes
[CL 2686054 by Mike Fricker in Main branch]
- New filter flags in automationtest.h
- Compile time errors if proper flags are not specified
- Existing tests converted to new flags
- New "disabled" flag
- Filter dropdown in automation UI replaces Smoke Tests button
- Automation features are no longer compiled out in Test configuration at runtime (except in Shipping)
- Enabled automation tests to be triggered from in-game console in non-editor builds (automation controller is enabled)
NOTE: This will force licensees who use automation to update their tests.
#codereview: jason.bestimt, mike.fricker, ben.salem
[CL 2672561 by Adric Worley in Main branch]
Full changes:
- Fixed error reading the minor engine version, which broke the netcode in the transition from 4.9 to 4.10
- Added '-UnitTestClientDebug' commandline parameter, which launches unit test clients with a valid render interface, to allow interaction when debugging
- Added a 'MaxAutoCloseCount' config variable, to limit the number of times a unit test can be auto-aborted, before the unit test tool refuses to run it again
- Fixed rare infinite recursion in unit test log window search
- Added unit test failure condition, when trying to send an RPC when the net buffers are saturated
- Increased the wait time to 2 minutes before auto-aborting, when a unit test crashes, due to long wait time for crash stack dump sometimes
- Added better notification of unit tests aborts, in the status window
- Prevent net connections timing out in developer mode
- Updated comments to use VAX hashtags
[CL 2634646 by John Barrett in Main branch]
- Added class for allowing reflection of UObjects/UStructs/UProperties/etc., so that properties can be referenced dynamically by string, instead of statically
- Allows game code to be referenced without direct linking
- Allows unit tests to break without blocking compiles, allows easier backwards compatability, and easier archiving of old unit tests
- Very useful for quick debug code; may tie it into the console with autocomplete at some stage
- Example:
FGuid* EntryItemGuidRef = (FGuid*)(void*)((FVMReflection(UnitPC.Get())->*"WorldInventory"->*"Inventory"->*ItemsPropName)["FFortItemEntry"][0]->*"ItemGuid")["FGuid"];
- Added a new stack tracing manager, which can be used by unit tests through GTraceManager, or through the whole engine with the StackTrace console command (see UnitTestManager.cpp for full command list)
- Allows conditional/filtered stack traces to be inserted anywhere into the code (categorized by name), for debugging purposes
- Once-off stack trace example:
GEngine->Exec(NULL, TEXT("StackTrace TraceName"));
- Multiple/accumulated stack trace examples:
GEngine->Exec(NULL, TEXT("StackTrace TraceName Add -Log"));
GEngine->Exec(NULL, TEXT("StackTrace TraceName Dump"));
- Added a log hook for the stack tracing manager, and a LogTrace command, which allows stack traces to be dumped whenever a specific log is encountered (see UnitTestManager.cpp for full command list)
- Example, for debugging the cause of a disconnect:
"LogTrace AddPartial UNetConnection::Close: Name: IpConnection_"
- Added -UnitTestCap=x commandline parameter, to limit the maximum number of unit tests that can run at once
- Added AllowedClientActors/AllowedClientRPCs to ClientUnitTest, to allow better whitelisting of accepted actors/RPC's
- Fixed many broken unit tests
- Adjusted actor replication blocking hook, to allow blocking of all instances of actor replication, instead of just actor channels
- Made console command results, auto-focus the Console tab, if the current tab won't display the results
- Fixed blocking automation testing, when the current game project doesn't support unit tests (doesn't have a unit test environment setup)
- Disable recursive killing of unit test child processes, while TerminateProc has a bug that kills all killable Windows processes
- Updated crash callstack detection
[CL 2565239 by John Barrett in Main branch]
#UE4 - const FUniqueNetId / FOnlinePartyId changes
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2538253 by Josh.Markiewicz on 2015/05/05 17:39:19.
[CL 2540329 by Josh Markiewicz in Main branch]