#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3805828 by Gil.Gribb
UE4 - Fixed a bug in the lock free stalling task queue and adjusted a comment. The code is not current used, so this is not actually change the way the code works.
Change 3806784 by Ben.Marsh
UAT: Remove code to compile UBT when using UE4Build. It should already be compiled as a dependency of UAT.
Change 3807549 by Graeme.Thornton
Add a cook timer around VerifyCanCookPackage. A licensee reports this taking a lot of time so it'll be good to account for it.
Change 3807727 by Graeme.Thornton
Unhide the text asset format experimental editor option
Change 3807746 by Josh.Engebretson
Remove WER from iOS platform
Change 3807928 by Robert.Manuszewski
When async loading, GC Clusters will be created after packages have been processed to avoid situations where some of the objects that are being added to a cluster haven't been fully loaded yet
Change 3808221 by Steve.Robb
GitHub #4307 - Made GetModulePtr() thread safe by not using GetModule()
^ I'm not convinced by how much thread-safer this is really, but it's tidier anyway.
Change 3809233 by Graeme.Thornton
TBA: Misc changes to text asset commandlet
- Rename mode to "loadsave"
- Add -outputFormat option which can be assigned "text" or "binary"
- When saving binary, use a differentiated filename so that source assets aren't overwritten
Change 3809518 by Ben.Marsh
Remove the outdated UnrealSync automation script.
Change 3809643 by Steve.Robb
GitHub #4277 : fix bug; FMath::FormatIntToHumanReadable 3rd comma and negative value
#jira UE-53037
Change 3809862 by Steve.Robb
GitHub #3342 : [FRotator.h] Fix to DecompressAxisFromByte to be more efficient and reflect its intent accurately
#jira UE-42593
Change 3811190 by Graeme.Thornton
Add support for writing specific log channels to their own files
Change 3811197 by Graeme.Thornton
Minor updates to output formatting and timing for the text asset commandlet
Change 3811257 by Robert.Manuszewski
Cluster creation will now be time-sliced
Change 3811565 by Steve.Robb
Define out non-monolithic module functions.
Change 3812561 by Steve.Robb
GitHub #3886 : Enable Brace-Initialization for Declaring Variables
Incorrect semi-colon search removed after discussion with author.
Test added.
#jira UE-48242
Change 3812864 by Steve.Robb
Removal of some unproven code which was supposed to fix hot reloading BP class functions in plugins.
See: https://udn.unrealengine.com/questions/376978/aitask-blueprint-nodes-disappear-when-their-module.html
#jira UE-53089
Change 3820358 by Ben.Marsh
PR #4358: Incredibuild use ShowAgent by default (Contributed by projectgheist)
Change 3822594 by Ben.Marsh
UAT: Improvements to log file handling.
- Always create log files in the final location, rather than writing to a temp directory and copying in later.
- Now supports -Verbose and -VeryVerbose for increasing log verbosity, rather than -Verbose=XXX.
- Keep a backlog of log output before the log system is initialized, and flush it to the log file once it is.
- Allow buildmachines to specify the uebp_FinalLogFolder environment variable, which is used to form paths for display. When build machines copy log files elsewhere after UAT finishes (eg. a network share), this allows error messages to display the right location.
Change 3823695 by Ben.Marsh
UGS: Fix issue where precompiled binaries would not be shown as available for a change until scrolling the last submitted code change into the buffer (other symptoms, like de-focussing the main window would cause it to go back to an unavailable state, since the changes buffer was shrunk).
Now always queries changes up to the last change for which zipped binaries are available.
Change 3823845 by Ben.Marsh
UBT: Exclude C# projects for unsupported platforms when generating project files.
Change 3824180 by Ben.Marsh
UGS: Add an option to show changes by build machines, and move the "only show reviewed" option in there too (Options > Show Changes).
#jira
Change 3825777 by Steve.Robb
Fix to return value of StringToBytes.
Change 3825810 by Ben.Marsh
UBT: Reduce length of include paths for MSVC toolchain.
Change 3825822 by Robert.Manuszewski
Optimized PIE lazy pointer fixup. Should be up to 8x faster now.
Change 3826734 by Ben.Marsh
Remove code to disable TextureFormatAndroid on Linux. It seems to be an editor dependency.
Change 3827730 by Steve.Robb
Try to avoid decltype(auto) if it's not supported.
See: https://udn.unrealengine.com/questions/395644/build-417-with-c11-on-linux-ttuple-errors.html
Change 3827745 by Steve.Robb
Initializer list support for TMap.
Change 3827770 by Steve.Robb
GitHub #4399 : Added a CONSTEXPR qualifiers to FVariant::GetType()
#jira UE-53813
Change 3829189 by Ben.Marsh
UBT: Now always writes a minimal log file. By default, just contains the regular console output and any reasons why actions are outdated and needed to be executed. UAT directs child UBT instances to output logs into its own log folder, so that build machines can save them off.
Change 3830444 by Steve.Robb
BuildVersion and ModuleManifest moved to Core, and parsing of these files reimplemented to avoid a JSON library.
This should be revisited when Core has its own JSON library.
Change 3830718 by Ben.Marsh
Fix incorrect group name being returned by FStatNameAndInfo::GetGroupName() for stat groups.
The editor populates the viewport stats list by calling this for every registered stat and stat group (via FLevelViewportCommands::HandleNewStatGroup). The menu entry attempts to show the stat name with STAT_XXX stripped from the start as the menu item label, with the free-form text description as a tooltip.
For stat groups, the it would previously just return the stat group name as "Groups" (due to the raw naming convention of "//Groups//STATGROUP_Foo//..."). Since this didn't match the expected naming convention in FLevelViewportCommands::HandleNewStat (ie. STAT_XXX or STATGROUP_XXX), it would fail to add it.
When the first actual stat belonging to that group is added, it would add a menu entry for the group based on that, but the stat description no longer makes sense as a tooltip for the group. As a result, all the editor tooltips were junk.
#jira UE-53845
Change 3831064 by Ben.Marsh
Fix log file contention when spawning UBT recursively.
Change 3832654 by Ben.Marsh
UGS: Fix error panel not being selected when opened, and weird alignment/color issues on it.
Change 3832680 by Ben.Marsh
UGS: Fix failing to detect workspace if synced to a different stream. Seems to be a regression caused by recent P4D upgrade.
Change 3832695 by Ben.Marsh
UGS: Invert the options in the 'Show Changes' submenu for simplicity.
Change 3833528 by Ben.Marsh
UAT: Script to rewrite source files with public include paths relative to the 'Public' folder. Usage is: RebasePublicIncludePaths -UpdateDir=<Dir> [-Project=<Dir>] [-Write].
Change 3833543 by Ben.Marsh
UBT: Allow targets to opt-out of having public include paths added for every dependent module. This reduces the command line length when building a target, which has recently become a problem with larger games (due to Microsoft's compiler embedding the command line into each object file, with a maximum length of 64kb). All engine modules are compiled with this enabled; games may opt into it by setting bLegacyPublicIncludePaths = false; from their .target.cs, as may individual modules.
Change 3834354 by Robert.Manuszewski
Archetype pointer will now be cached to avoid locking the object tables when acquiring its info. It should also be faster this way regardless of any locks.
#jira UE-52035
Change 3834400 by Robert.Manuszewski
Fixing crash on exit caused by cached archetypes not being cleaned up before static exit cleanup.
#jira UE-52035
Change 3834947 by Steve.Robb
USE_FORMAT_STRING_TYPE_CHECKING removed from FMsg::Logf and FMsg::Logf_Internal.
Change 3835004 by Ben.Marsh
Fix code that relies on dubious behavior of requiring referenced "include path only" modules having their _API macros set to be empty, even if the module is actually implemented in a separate DLL.
Change 3835340 by Ben.Marsh
Fix errors making installed build from directories with spaces in the name.
Change 3835972 by Ben.Marsh
UBT: Improved diagnostic message for targets which don't need a version file.
Change 3836019 by Ben.Marsh
UBT: Fix warnings caused by defining linkage macros for third party libraries.
Change 3836269 by Ben.Marsh
Fix message box larger than the screen height being created when a large number of modules are incompatible on startup.
Change 3836543 by Ben.Marsh
Enable SoundMod plugin on Linux, since it's already supported through the editor.
Change 3836546 by Ben.Marsh
PR #4412: fix type mismatch (Contributed by nakapon)
Change 3836805 by Ben.Marsh
Fix commandlet to compile marketplace plugins.
Change 3836829 by Ben.Marsh
UBT: Fix ability to precompile plugins from installed engine builds.
Change 3837036 by Ben.Marsh
UBT: Write the previous and new contents of intermediate files to the log if they change. Makes it easier to debug unexpected rebuilds.
Change 3837037 by Ben.Marsh
UBT: Fix engine modules having inconsistent definitions depending on whether modules are only referenced for their include paths vs being linked into a binary (due to different _API macro).
Change 3837040 by Ben.Marsh
UBT: Remove code that initializes members in ModuleRules and TargetRules objects before the constructor is run. This is no longer necessary, now that the backwards-compatible default constructors have been removed.
Change 3837247 by Ben.Marsh
UBT: Remove UELinkerFixups module, now that plugins and precompiled modules do not require hacks to force initialization (since they're linked in as object files).
Encryption and signing keys are now set via macros expanded from the IMPLEMENT_PRIMARY_GAME_MODULE macro, via project-specific macros added in the TargetRules constructor.
Change 3837262 by Ben.Marsh
UBT: Set whether a module is an engine module or not via a default value for the rules assembly. All non-program engine and enterprise modules are created with this flag set to true; program targets and modules are now created from a different assembly that sets it to false. This removes hacks from UEBuildModule needed to adjust behavior for different module types based on the directory containing the module.
Also add a bUseBackwardsCompatibleDefaults flag to the TargetRules class, also initialized to a default value from a setting passed to the RulesAssembly constructor. This controls whether modules created for the target should be configured to allow breaking changes to default settings, and is set to false for all engine targets, and true for all project targets.
Change 3837343 by Ben.Marsh
UBT: Remove the OverrideExecutableFileExtension target property. Change the only current use for this (the MayaLiveLinkPlugin target) to use a post build step to copy the file instead.
Change 3837356 by Ben.Marsh
Fix invalid character encodings.
Change 3837727 by Graeme.Thornton
UnrealPak: KeyGenerator: Only generate prime table when required, not all the time
Change 3837823 by Ben.Marsh
UBT: Output warnings and errors when compiling module rules assembly in a way that allows them to be double-clicked in the Visual Studio output window.
Change 3837831 by Graeme.Thornton
UBT: When parsing crypto settings, always load legacy data first, then allow the new system to override it. Provides the same key backwards compatibility that the editor settings class gives
Change 3837857 by Robert.Manuszewski
PR #4404: Make FGCArrayPool singleton global instead of per-CU (Contributed by mhutch)
Change 3837943 by Robert.Manuszewski
PR #4405: Fix FGarbageCollectionTracer (Contributed by mhutch)
Change 3838451 by Ben.Marsh
UBT: Fix exceptions thrown on a background thread while caching C++ includes not being caught and logged correctly. Now captures exceptions and re-throws on the main thread.
#jira UE-53996
Change 3839519 by Ben.Marsh
UBT: Simplify configuring bPrecompile and bUsePrecompile settings for modules. Each rules assembly can now be configured as installed, which defaults the module rules it creates to use precompiled data.
Change 3843790 by Graeme.Thornton
UnrealPak: Log the size of all encrypted data
Change 3844258 by Ben.Marsh
Fix plugin compile failure when created via new plugin wizard. Passing -plugin on the command line is unnecessary, and is now reserved for packaging external plugins for the marketplace.
Also extend the length of time that the error toast stays visible, and don't delete the plugin on failure.
#jira UE-54157
Change 3845796 by Ben.Marsh
Workaround for slow performance of String.EndsWith() on Mono.
Change 3845823 by Ben.Marsh
Fix case sensitive matching of platform names in -TargetPlatform=X argument to BuildCookRun.
#jira UE-54123
Change 3845901 by Arciel.Rekman
Linux: fix crash due to lambda lifetime issues (UE-54040).
- The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+).
(Edigrating 3819174 to Dev-Core)
Change 3846439 by Ben.Marsh
Revert CL 3822742 to always call Process.WaitForExit(). The Android target platform module in the editor spawns ADB.EXE, which inherits the editor's stdout/stderr handles and forks itself. Process.WaitForExit() waits for EOF on those pipes, which never occurs because the forked process never terminates.
Proper fix is probably to have the engine explicitly duplicate stdout/stderr handles for new pipes to output process, but too risky before copying up to Main.
Change 3816608 by Ben.Marsh
UBT: Use DirectoryReference objects for all include paths.
Change 3816954 by Ben.Marsh
UBT: Remove bIncludeDependentLibrariesInLibrary option. This is not widely supported by platform toolchains, and is not used anywhere.
Change 3816986 by Ben.Marsh
UBT: Remove UEBuildBinaryConfig; UEBuildBinary objects are now just created directly.
Change 3816991 by Ben.Marsh
UBT: Deprecate PlatformSpecificDynamicallyLoadedModules. We no longer have any special behavior for these modules.
Change 3823090 by Ben.Marsh
UAT: Improve logging for child UAT instances.
- Calling RunUAT now requires an identifier for prefixing into the parent log, which is also used to determine the name of the log folder.
- Stdout is no longer written to its own output file, since it's written to the parent stdout, the parent log file, and the child log file anyway.
- Log folders for child UAT instances are left intact, rather than being copied to the parent folder. The derived names for the copied names were confusing and hard to read.
- Output from UAT is no longer returned as a string. It should not be parsed anyway (but may be huge!). ProcessResult now supports running without capturing output.
Change 3826082 by Ben.Marsh
UBT: Add a check to make sure that all modules that are precompiled are correctly marked to enable it, even if they are part of the build target.
Change 3827025 by Ben.Marsh
UBT: Move the compile output directory into a property on the module, and explicitly pass it to the toolchain when compiling.
Change 3829927 by James.Hopkin
Made HTTP interface const correct
Change 3833533 by Ben.Marsh
Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules.
Change 3835826 by Ben.Marsh
UBT: Precompiled targets now generate a separate manifest for each precompiled module, rather than adding object files to a library. This fixes issues where object files from static libraries would not be linked into a target if a symbol in them was not referenced.
Change 3835969 by Ben.Marsh
UBT: Fix cases where text is being written directly to the console rather than via logging functions.
Change 3837777 by Steve.Robb
Format string type checking added to FOutputDevice::Logf.
Fixes for those.
Change 3838569 by Steve.Robb
Algo moved up a folder.
[CL 3847482 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3623004 by Ben.Marsh
Fix RemoteExecutor not taking the remote machine specs into account.
Change 3623172 by Ben.Marsh
UGS: Fix "More Info..." button not using P4 server override.
Change 3628820 by Ben.Marsh
PR #3979: Get working directory from task element, not tool node (Contributed by nullbus)
Change 3630424 by Graeme.Thornton
Make the AES key parameter const in FAES::EncryptData()
Change 3632786 by Steve.Robb
FString constructor fixed to not take an ignored void* parameter, which can be misleading.
Change 3639534 by Ben.Marsh
Remove old P4.NET library. Doesn't seem to be used by anything.
Change 3640536 by Steve.Robb
GitHub #4007 : Delete unnecessary specialization of MakeArrayView
#jira UE-49617
Change 3641155 by Gil.Gribb
UE4 - Speculative fix for problem with summary reading in FAsyncArchive2.
Change 3643932 by Ben.Marsh
Add an example build script for updating the version number, then compiling and staging the editor and tools to an output directory. Optionally submits at the end (requires -Submit argument).
Change 3644825 by Ben.Marsh
Use VSWHERE to find the location of MsBuild.exe, if available.
https://github.com/EpicGames/UnrealEngine/pull/3879#issuecomment-329688645
Change 3647395 by Ben.Marsh
Allow compiling of monolithic binaries from BuildEditorAndTools.xml, using the -set:GameTarget=FooGame -set:TargetPlatforms=Win32;Win64 options.
Change 3650300 by Ben.Marsh
UAT: Remove code that deletes cooked data on a failed cook. The engine should write packages out transactionally now (by writing to a temporary file and moving into place), and deleting the cooked data just prevents post-mortem analysis.
Change 3650856 by Robert.Manuszewski
Adding checks to prevent FlushAsyncLoading and LoadObject/LoadPackage from being called from any threads other than the game thread
Change 3651022 by Gil.Gribb
UE4 - Possible fix for mysterious ensure indicating problematic recursion in the pak precacher.
Change 3658331 by Steve.Robb
Fix for the parsing of large integer values.
Change 3661958 by Gil.Gribb
UE4 - Fixed rare hang in task graph.
Change 3664021 by Robert.Manuszewski
Fix for a potential GC crash caused by stale pointer in AnimInstanceProxy
See https://udn.unrealengine.com/questions/392432/gc-issue-uaniminstancemontageinstances-empty-but-u.html
Change 3664254 by Steve.Robb
Use ANSI allocator when thread sanitizer is enabled. This allows the generation of more accurate and meaningful reports.
Change 3664436 by Steve.Robb
Use TUniquePtr instead of a thread-unsafe TSharedPtr to move data between threads.
Change 3666461 by Graeme.Thornton
Improvements to signing/encryption key embedding and runtime access
- Changed method of embedding key into the executable to make it more secure
- Added FAESKey class to wrap a 32 byte key
Change 3666462 by Graeme.Thornton
Cut ShooterGame AES key down to 32 characters
Change 3677560 by Ben.Marsh
PR #4074: UBT: Add include and library-related fields to module JSON output (Contributed by adamrehn)
Change 3683534 by Steve.Robb
Refactoring of enum/struct lookup during hot reload.
Change 3683754 by Steve.Robb
Alignment fixes to allow int64 on 32-bit platforms
Support for integral types in IsAligned.
Static asserts so that alignment functions will no longer be called with non-intergal, non-pointer types.
Some fixes to existing code.
Change 3686670 by Steve.Robb
Fix for thread-unsafe modification of static array in FString::ParseIntoArrayWS.
Change 3687540 by Ben.Marsh
Fix all UBT/UAT output going to stderr rather than stdout.
Change 3688931 by Gil.Gribb
UE4 - Critical fix for a rare race condition in the pak file async IO layer.
Change 3690000 by Graeme.Thornton
Manual copy of 4.18 CL 3687869
Make UBT include the destination INI file for a given hierarchy if it exists
Renamed VSCode enum value to VisualStudioCode, so it matches the source accessor plugin name
Change 3690030 by Graeme.Thornton
VSCode fixes
- Source Code Accessor plugin changes. Add new interface method to open a solution at a given path
- GameProjectUtils now uses the source navigation API to open solutions rather than hardcoding which solution file types to look for
- Various fixes for vscode project file generation
#jira UE-50554
Change 3690885 by Steve.Robb
Atomic reads in FReferenceControllerOps<ESPMode::ThreadSafe>.
Change 3691052 by Steve.Robb
Free stats thread on shutdown.
Change 3695138 by Steve.Robb
AsConst helper function added.
Change 3696627 by James.Hopkin
Changed player controller iterator typedefs to use TWeakObjectPtr rather than the deprecated TAutoWeakObjectPtr
(review-3606695)
Change 3697099 by Steve.Robb
GitHub #4105 : Removed redundant class access modifier
Change 3697154 by Steve.Robb
Removal of deprecated functions in delegates.
Mutable lambdas to can now be bound to delegates.
Change 3697180 by Steve.Robb
GitHub #4115 : Incorrect CPPMacroType used for USoftClassProperty
Change 3697239 by Steve.Robb
Allow TArray::Insert to take an array with any allocator type.
Change 3697269 by Steve.Robb
RelocateConstructItems instead of MoveConstructItems.
Change 3697558 by Steve.Robb
New _GetRef functions for TArray, which return a reference to the newly-added element.
Unit tests for these functions.
Change 3699776 by Steve.Robb
TSAN warning suppression around IAsyncReadRequest::bCompleteAndCallbackCalled.
Change 3702397 by Steve.Robb
TIsTrivial type trait.
Change 3702569 by Steve.Robb
Allow a TGuardValue to be assigned to a different type from the one being guarded.
Change 3706644 by Robert.Manuszewski
Different stack ingore count for development builds for FArchiveStackTrace
Change 3709272 by Steve.Robb
Removal of redundant UpdateVertices, which causes a race condition on the renderer thread.
Change 3709452 by Robert.Manuszewski
Fixed a bug where with async time limit set to a low value the async loading could hang because the linker would keep reloading the preload dependencies
Change 3709454 by Robert.Manuszewski
Added command line option -NOEDL to disable EDL
Change 3709487 by Steve.Robb
Remove use of PLATFORM_HAS_64BIT_ATOMICS, which is always 1.
Change 3709645 by Ben.Marsh
Fix race condition between multiple instances of UBT trying to write out the XML config cache.
Change 3711193 by Ben.Marsh
Add an editor setting for the shared DDC location to use.
#jira UE-51487
Change 3713811 by Steve.Robb
Update .modules files after a hot reload.
Don't check for directory timestamp changes as a way of detecting new files if hot reloading with a makefile, as this is already done during makefile invalidation checks.
Pass hotreload flags around in UBT instead of relying on global state.
This fixes the hot reload iteration speed regression without also regressing the fix to UE-42205.
#jira UE-51472
Change 3715654 by Steve.Robb
GitHub #4156 : Fixed not compiling template function Algo::UpperBoundBy.
Change 3718782 by Steve.Robb
TSharedPtr, TSharedRef and TWeakPtr assignment are now implemented as copy-and-swap to avoid an invalid smart pointer state being visible to any destructors being called.
Change 3720830 by Steve.Robb
Initial import of TAtomic object wrapper, which guarantees atomic access to an object.
Change 3720881 by Steve.Robb
FCompression ThreadSanitizer data race fixes.
Change 3722640 by Graeme.Thornton
Guard network platform file heartbeat function with the socket critical section. Stop heartbeat from causing a crash when firing during async loading.
#jira UE-51463
Change 3722655 by Steve.Robb
Don't null name table because it's already zeroed at startup.
Some tidy-ups.
Change 3722754 by Steve.Robb
Thread sanitizer fix.
Small typo fix.
Change 3722849 by Graeme.Thornton
Improve "caching file" message in networkplatformfile so it says "Requesting file..." and is only output when we actually request the file from the server
Change 3723081 by Steve.Robb
TAtomic is now aligned to the underlying integer type.
TAtomic will now static assert with a better error message when given an unsupported type.
Define added for the maximum platform-supported atomic type, and used instead of a (wrong) hardcoded number.
Misc renames.
Change 3723270 by Ben.Marsh
Include /d2cgsummary argument when running UBT with -Timing.
Change 3723683 by Ben.Marsh
Do not include documentation in the generated project files by default. Suspect that the 30,000 UDN files that get added to the solution take up memory and degrate performance.
Change 3725422 by Robert.Manuszewski
When serializing compressed archive with multithreaded compression enabled, wait for the oldest async task instead of spinning.
Change 3725735 by Robert.Manuszewski
Making all CheckDefaultSubobjects related functions const
Change 3726167 by Steve.Robb
FMinimalName::IsNone added.
Change 3726458 by Steve.Robb
TAtomic will no longer instantiate for types which are not exactly a size supported by the platform layer.
Change 3726542 by Ben.Marsh
UGS: Always include the project filename in the editor build command. The project may not be in one of the .uprojectdirs paths.
Change 3726595 by Ben.Marsh
Allow building multiple game targets in the example BuildEditorAndTools.xml script.
Change 3726724 by Ben.Marsh
Fix ambiguities in calculating root directory. (GitHub #4172)
Change 3726959 by Ben.Marsh
Make sure that AutomationTool uses the same list of preprocessor definitions when compiling *.target.cs files as UnrealBuildTool does.
Change 3728437 by Steve.Robb
VisitTupleElements now supports invocation of a functor taking arguments from multiple tuples in parallel.
Some improved documentation.
NOTE: This is a backward-incompatible change to VisitTupleElements. Any existing calls will need their arguments swapping.
Change 3732262 by Gil.Gribb
UE4 - Fixed rare hangs in the task graph.
Change 3732755 by Steve.Robb
Stats TSAN fixes.
Optimizations to FCycleCounter::Start() to only read the stat name once.
Change 3735000 by Robert.Manuszewski
Always preload the AssetRegistry module on startup. even if EDL is disabled.
Even without EDL, if the async loading thread is enabled the AssetRegistryModule will otherwise be loaded from the ASL thread and that will assert.
Change 3735292 by Robert.Manuszewski
Made sure component visualizer is removed from VisualizersForSelection when UnregisterComponentVisualizer() is called otherwise it may cause crashes when the engine terminates.
Change 3735332 by Steve.Robb
Refactoring of UDelegateProperty::Identical() to clarify logic.
Fixed UMulticastDelegateProperty::Identical() to compare the bound function names.
PPF_DeltaComparison removed, as it doesn't seem useful.
Change 3737960 by Graeme.Thornton
VSCode - Add launch task for generating project files for the given folder
Change 3738398 by Graeme.Thornton
Make Visual Studio source code accessor's module hotreload handler pass the 'save all files' message to the current accesor, rather than direct to the visual studio accessor
#jira UE-51451
Change 3738405 by Graeme.Thornton
VSCode: Format c/cpp settings strings using comment path formatting function
Change 3738928 by Steve.Robb
Fix for lack of null conditional operators in some older Monos. (replicated from CL# 3729574 in Release-4.18)
#jira UE-51842
Change 3739135 by Ben.Marsh
Fix being unable to package projects in a folder called "Wolf". This is only a restricted folder for Epic's Perforce history.
#jira UE-51855
Change 3739360 by Ben.Marsh
UAT: Fix issue with P4PORT setting not being parsed correctly.
Change 3745959 by James.Hopkin
#core Added ImplicitConv for safe upcasts to a specific required type, e.g. deduced delegate payload types
Change 3746125 by Steve.Robb
FName ThreadSanitizer fixes.
Change 3747274 by Steve.Robb
TSAN fix for FMediaTicker::Stopping.
Change 3747618 by Steve.Robb
ThreadSanitizer data race fix for FShaderCompileThreadRunnableBase::bForceFinish.
Change 3747720 by Steve.Robb
ThreadSanitizer fix for FMessageRouter::Stopping.
Change 3749207 by Graeme.Thornton
First pass of CryptoKeys plugin. Allows creation/editing/cycling of AES/RSA keys.
Change 3749323 by Graeme.Thornton
Fix UAT crash when only -targetplatform is specifiied
Change 3749349 by Steve.Robb
TSAN_SAFE guards around LockFreeList to silence ThreadSanitizer.
Change 3749617 by Steve.Robb
Logf static_assert for formatting string enabled.
Change 3749897 by Steve.Robb
FDebug::LogAssertFailedMessage static assert for formatting string enabled.
Change 3754011 by Steve.Robb
Static asserts that the allocator supports move.
Move-enabled our allocators which don't support move.
Change 3754227 by Ben.Marsh
Fix build command line in generated projects missing a space before the compiler version override.
#jira UE-52226
Change 3754562 by Ben.Marsh
PR #4206: Replace deprecated wsprintf with secure swprintf for Bootstrap executable (Contributed by jessicafalk)
Change 3755616 by Graeme.Thornton
Runtime code for using the new crypto ini files to define signing/encryption keys
#jira UE-46580
Change 3755666 by James.Hopkin
Used ImplicitConv to remove Casts being used for up-casts
#review-3745965
Change 3755671 by Graeme.Thornton
Add log message in unrealpak to say which config file system it is using for crypto keys
Change 3755672 by Graeme.Thornton
Updating ShooterGame with new CryptoKeys based security setup
Change 3756778 by Ben.Marsh
Add support for running multiple jobs simultaneously on a single builder.
When running job or agent setup, the --num-slots=X parameter defines the number of steps that can run simultaneously (EC procedures pass in the resource step limit). A lock file is created under the workspace root (D:\Build) and a reservation file is created for the first slot that can be allocated (slot-1, slot-2, etc...). The slot number is used to define the workspace name that should be used.
Change 3758498 by Ben.Marsh
Re-throw exceptions when a file cannot be deleted when cleaning a target.
Change 3758921 by Steve.Robb
ThreadSanitizer fix to FThreadSafeStaticStatBase::HighPerformanceEnable to do a relaxed atomic load on access.
DoSetup() now returns the newly-allocated pointer, instead of reloading it from memory.
Change 3760599 by Graeme.Thornton
Added missing epic header comment to some new source files
Change 3760642 by Steve.Robb
ThreadSanitizer fix for concurrent access to GMainThreadBlockedOnRenderThread.
Change 3760669 by Graeme.Thornton
Improvement to OpenSSL based signing key generator. Generate a full RSA key then steal the primes from it, rather than generating the primes manually.
Added a test mode to the cryptokeys commandlet to test signing key generation
Change 3760711 by Steve.Robb
ThreadSanitizer fixes to GIsRenderingThreadSuspended.
Change 3760739 by Steve.Robb
ThreadSanitizer fix for FQueuedThread::TimeToDie.
Change 3760763 by Steve.Robb
ThreadSanitizer fix for GRunRenderingThreadHeartbeat.
Removal of unnecessary/dangerous initializer for GMainThreadBlockedOnRenderThread.
Change 3760793 by Steve.Robb
Some simple refactoring to remove some volatile reads of BufferStartPos and BufferEndPos.
Change 3760817 by Steve.Robb
ThreadSanitizer fixes for FAsyncWriter::BufferStartPos and BufferEndPos.
Change 3761331 by Josh.Engebretson
UnrealBuildTool enforcement of Development and Debug configurations in existing .csproj
#jira UE-52416
Change 3761521 by Steve.Robb
ThreadSanitizer fixes for FEvent::EventStartCycles and EventUniqueId.
Change 3763117 by Graeme.Thornton
PR #3722: Optimising FPaths::IsRelative() (Contributed by jovisgCL)
Change 3763358 by Graeme.Thornton
Ensure that all branches within FGenericPlatformMisc::RootDir() produce an absolute path with no duplicate slashes
Remove relative->abs conversion of root dir from FPaths::MakeStandardFilename(), now that we know RootDir() always returns an absolute path
Derived from the content of this PR:
PR #3742: Treat RootDirectory the same way as Standardized (Contributed by TroutZhang)
Change 3764058 by Graeme.Thornton
Generate a .code-workspace file for the current workspace. Allows foreign projects to "mount" the UE4 folder so that the engine tasks are avaible, and all engine source is visible to VSCode for searching purposes
#jira UE-52359
Change 3764705 by Steve.Robb
Better handling of whitespace in ImportText_Internal() for set and map properties.
Containers are now emptied upon import failure, to avoid leaving bad container states (unhashed, partial data).
Fix to USetProperty's temp buffer size to avoid buffer overruns.
Duplicate map keys are now skipped during import, same as USetProperty's behavior.
Change 3764731 by Steve.Robb
Don't re-run UHT if only source files have changed in the same folder as headers. This was already done for hot reload, but there's no reason why it should be limited to that.
Change 3765923 by Graeme.Thornton
VSCode - "taskName" -> "label" for C# build tasks
Change 3766018 by Steve.Robb
constexpr constructor for TAtomic.
Change 3766037 by Steve.Robb
Misc tidyings in HotReload.cpp.
Change 3766046 by Steve.Robb
ThreadSanitizer fixes to ENamedThreads::RenderThread and ENamedThreads::ENamedThreads_Local.
Change 3766288 by Steve.Robb
Improved efficiency of adding/removing elements to UGCObjectReferencer::ReferencedObjects.
Change 3766374 by Josh.Engebretson
Fix issue with ini quoted value comparison
#jira UE-52066
Change 3766532 by Josh.Engebretson
PR #3680: Added NetSerialize to FDateTime fixing UE-22533 (Contributed by druhasu)
#jira UE-46156
Change 3766740 by Steve.Robb
TMultiMap::Append added.
Change 3767523 by Steve.Robb
ThreadSanitizer fix for UE4Delegates_Private::GNextID.
Change 3767601 by Steve.Robb
ThreadSanitizer fix for FStats::GameThreadStatsFrame.
Change 3770567 by Ben.Marsh
Add a FAnnotatedArchiveFormatter interface which allows querying structural type information that may not be in binary archives.
Change 3770826 by Ben.Marsh
Move StructuredArchive implementation into Core, so primitive types can implement serialization overloads for it.
Change 3770875 by Steve.Robb
Redundant UScriptStruct::PostLoad removed, which was causing a race condition in async loading. This was re-establishing the CppStructOps, but that is unnecessary because native classes cannot change as a result of a load - only BP structs can, and they don't have CppStructOps.
Change 3772167 by Ben.Marsh
Add a context-free binary formatter that can serialize tagged data. This functions as a lower-overhead binary intermediate format for JSON data.
Change 3772248 by Steve.Robb
ThreadSanitizer fixes to FMalloc call counters.
Change 3772383 by Ben.Marsh
Separate archive metadata from FArchive into FArchiveContext, so it can be safely exposed to consumers of FStructuredArchive.
Change 3772906 by Graeme.Thornton
TextAssetCommandlet - Utility commandlet for testing/converting to text asset format
Change 3772932 by Ben.Marsh
Fix "String:" prefix not being stripped from escaped string values.
Change 3772942 by Graeme.Thornton
Add experimental setting to enable in-editor text asset format functionality
Add "export to text" option into the content browser asset actions context menu
Change 3772955 by Ben.Marsh
Add a new "stream" compound type to FStructuredArchive, which allows serializing a sequence of elements similarly to an array, but without serializing an explicit size. Allows passing through data to an underlying binary archive without breaking compatibility.
Change 3772963 by Ben.Marsh
Allow querying record keys and stream lengths from annotated archive formatters, since these archives have markup for field boundaries.
Change 3773010 by Graeme.Thornton
Added CORE_API to FArchiveFromStructuredArchive
Gave text asset format experimental option a slightly less random tooltip comment
Change 3773057 by Ben.Marsh
Add a flag to FArchive to determine whether the archive is text (IsTextFormat()).
Add support for seeking within FArchiveFromStructuredArchive. For text formats, data is serialized to an in-memory buffer, with names and objects serialized as indices into an array. For non-text formats, data is serialized directly to the underlying archive.
Also rename FStructuredArchive::TryEnterSlot() to TryEnterField().
Change 3773118 by Steve.Robb
TSignedIntType and TUnsignedIntType type traits for getting an integer type of a given size.
Change 3773122 by Steve.Robb
TAtomic fixes for pointer arithmetic.
TSignedIntType used instead of reimplementing its own trait.
Change 3773123 by Steve.Robb
Unit tests for TAtomic.
Change 3773138 by Steve.Robb
Run numeric tests on integer types instead of basic tests.
Fix for compiler warnings when subtracting from unsigned atomics.
Change 3773166 by Steve.Robb
Refactoring of arithmetic operations into its own class, then basing the pointer and integral versions on that.
Change 3774216 by Gil.Gribb
UE4 - Fix rare crash in the pak precacher immediately after unmounting a pak file.
Change 3774426 by Ben.Marsh
Copy all C# tools to a staging directory before compiling them. This prevents access violations when compiling tools like iPhonePackager that reference DotNETCommon, and ensures we strip NotForLicensees folders out of them all.
See: https://answers.unrealengine.com/questions/726010/418-will-not-build-from-source.html
Change 3774658 by Ben.Marsh
Improve error reporting while generating intellisense for project files. Include the name of the target being compiled, and allow project file generation to continue without it.
Change 3775141 by Ben.Marsh
Always output HTML5 diagnostics at "information" verbosity, to avoid every line being prefixed with "WARNING:" and screwing up the EC postprocessor.
Change 3775459 by Ben.Marsh
Removing .NET Framework Perforce DLL as runtime dependency of engine third party library. The actual library is linked statically.
Change 3775522 by Ben.Marsh
UGS: Treat .uproject and .uplugin files as code changes.
Change 3775597 by Ben.Marsh
Fix post-build steps for plugins not being executed.
#jira UE-52754
Change 3777895 by Graeme.Thornton
StructuredArchiveFromArchive - An adapter class for wrapping an existing FArchive with a structured archive
Change 3777931 by Graeme.Thornton
Refactored FArchiveUObjects serialization code into some static helpers
Added FArchiveUObjectFromStructuredArchive which allows the adaption of a structured archive into an FArchive that supports the extra UObect serialization functions for weak/soft pointers
Change 3777942 by Graeme.Thornton
Added missing CORE_API to FStructuredArchive::FStream
Added FStructuredArchive::FSlot insertion operator for char
Added specialization of TArray<uint8> serializer for structured archives which serializes the contents as one value
Change 3778084 by Graeme.Thornton
Adding FPackageName::GetTextAssetPackageExtension() to access the file extension we use for text asset files
Change 3778096 by Graeme.Thornton
Add a constructor to FArchiveUObjectFromStructuredArchive that takes a slot and passes it to the base class
Change 3778389 by Josh.Engebretson
Fix an optimization issue with CPU benchmarking
Add better support for debugging/testing local rocket builds
UDN Link: https://udn.unrealengine.com/questions/400909/command-scalability-auto-gives-inaccurate-cpu-benc.html
#jira UE-52192
Change 3778701 by Josh.Engebretson
Ensure plugin content folders are mounted consistently. Fixes TryConvertFilenameToLongPackageName failing to work on plugin assets
UDN Link: https://udn.unrealengine.com/questions/276386/tryconvertfilenametolongpackagename-fails-for-plug.html
#jira UE-40317
Change 3778832 by Chad.Garyet
Adding enterprise path support for PCB's for UGS
Change 3780258 by Graeme.Thornton
TextAssetCommandlet - Accumulate timings for loading packages and saving packages
Change 3780463 by Graeme.Thornton
CryptoKeys improvements
- Enable CryptoKeys plugin by default
- Attempt to inherit settings from the old system by default
- Hide ini/index encryption settings from packaging settings and just inherit previous values into new system
Minor UBT change to remove a trailing comma from the end of encryption/signing key binary strings
Change 3780557 by Ben.Marsh
Fix LoginFlow module not being precompiled for the binary release.
Change 3780846 by Josh.Engebretson
Improve filename to long package name resolution when provided a relative path
Change 3780863 by Ben.Marsh
UAT: Add a better error message when a C# project has an invalid reference.
Change 3780911 by Ben.Marsh
Update the BuildEditorAndTools.xml script to allow submitting archived binaries to Perforce.
The "Submit To Perforce For UGS" node creates a zip of all the binaries that have been built, and submits it to the stream specified by the 'ArchiveStream' argument.
Change 3780956 by Josh.Engebretson
Add support for ! (RemoveKey) config command to UBT
UDN Link: https://udn.unrealengine.com/questions/397267/index.html
#jira UE-52033
Change 3782957 by Robert.Manuszewski
UE4 - Fixed a linear search in EDL that caused performance problems for very large maps.
Change 3784503 by Ben.Marsh
Optimizations for FStructuredArchive:
* Store the depth explicitly in element objects, to avoid having to loop through the scope stack to find it.
* Prevent shrinking of arrays when removing elements.
* Add an inline allocator to the scope and container stacks.
Change 3784700 by Ben.Marsh
Remove the inline allocator from FStructuredArchive; checking whether the inline or backup allocator is being used is slower than just allocating up-front.
Change 3784989 by Ben.Marsh
Compile out all the FStructuredArchive validation code when WITH_TEXT_ARCHIVE_SUPPORT = 0.
Change 3786860 by Gil.Gribb
UE4 - Remove no buffering flag from windows async IO because it disabled the disk cache entirely.
Change 3787159 by Ben.Marsh
Guard against UE4.0 backwards compatibility path when determining if an engine is a source distribution.
Change 3787493 by Josh.Engebretson
Parallel pak generation now uses MaxDegreeOfParallelism option which is now set to the number of CPU cores
Moved cryptography settings parsing out of threaded CreatePak method to avoid concurrency issue in ConfigCache.TryReadFile
Fix for multiple threads parsing ini keys (PR 3995)
#PR 3995
#jira 52913
#jira 49503
Change 3787773 by Steve.Robb
Fix for missing final values from FOREACH_ENUM_ macros.
Change 3788287 by Ben.Marsh
TBA: Add checks in debug builds that key names in maps and records for FStructuredArchive are unique.
Change 3788678 by Ben.Marsh
Fix compile error due to inability to instantiate TArray<> of forward declared struct. Convert set of key names to an array to avoid including Set.h in public header for FStructuredArchive.
Change 3789353 by Graeme.Thornton
Removed unused/rotten modes from TextAsset commandlet.
Used existing "-iterations=n" switch to control a global iteration over the given command. Useful for performance testing.
Change 3789396 by Ben.Marsh
Move code to validate container keys/sizes into DO_GUARD_SLOW checks, and allocate container metadata instances dynamically to fix problems with references to things not declared in headers that can't be included from StructuredArchive.h
Change 3789772 by Ben.Marsh
Always strip trailing slashes from the end of paths specified by .build.cs files; they can cause quoted paths to be escaped on the command line.
Change 3790003 by Ben.Marsh
TBA: Rename FStructuredArchive::EElementType::Object to FStructuredArchive::EElementType::Record.
Change 3790051 by Steve.Robb
PIE is disabled during a hot reload.
Hot reload in editor is disabled during PIE.
Hot reload from IDE is deferred until after PIE is exited.
Compiling multiple times before a hot reload (e.g. compiling multiple times in PIE) will now load the most recent change.
#jira UE-20357
#jira UE-52137
Change 3790709 by Steve.Robb
Better move support for TVariant.
EVariantTypes switched over to using an enum class to aid debugger visualization.
Change 3791422 by Ben.Marsh
TBA: Return the type of a field from an annotated archive formatter at the point that we enter it, rather than querying all the time.
Change 3791489 by Graeme.Thornton
TBA: Change StructuredArchiveFromArchive adapter to use the archive.Open() result directly, now that it's a slot and not a record
Change 3792344 by Ben.Marsh
Improvements to base64 encoding library.
* Now supports encoding and decoding with ANSICHAR and WIDECHAR implementations.
* Added support for decoding base-64 blobs without padding marks.
* Added support for decoding into pre-allocated buffer.
* Added constexpr functions for determining the encoded and maximum decoded size of an input buffer.
* Prevent writes past the end of allocated buffer (no longer need to manually remove padding bytes).
Change 3792949 by Ben.Marsh
TBA: Rename FAnnotatedArchiveFormatter to FAnnotatedStructuredArchiveFormatter.
Change 3794078 by Robert.Manuszewski
Fixing a crash that could happen when FGCObjects were constructed and destructed when shutting down the engine
#jira UE-52392
Change 3794413 by Ben.Marsh
TBA: Remove the element type parameter to SetScope(). It isn't really needed; we can just assume the element ID correctly identifies the item on the stack.
Change 3794731 by Ben.Marsh
TBA: Optimize creation of stack elements for empty slots in FStructuredArchive. This saves a lot of bookkeeping when serializing a large number of individual fields. Since only one slot can be active at a time (and it only exists temporarily, until we write into it), we can just store the element ID assigned to it in a member variable.
Change 3795081 by Ben.Marsh
UBT: Move LinuxCommon.cs into Platform/Linux folder.
Change 3795137 by Ben.Marsh
UBT: Allow modules to specify private compiler definitions from the build.cs file, only visible within that module (via the "PrivateDefinitions" property).
Change 3795247 by Ben.Marsh
Fix missing header when creating a new interface from the editor new code wizard.
#jira UE-53174
Change 3796025 by Graeme.Thornton
Fixed some deprecated "Definitions" warnings in OpenCV build files
Change 3796103 by Graeme.Thornton
Disable experimental text asset option - it does nothing useful yet.
Change 3796157 by Graeme.Thornton
Fix path type mismatch in visual studio source code accessor meaning that the DTE comms wouldn't identify a running instance of VS as having the current solution open.
#jira UE-53206
Change 3796315 by Ben.Marsh
Move Formatter to the correct position for initializer.
#jira UE-53208
Change 3797082 by Ben.Marsh
UAT: Work around for exception thrown by launching cook with "-platform=Android_ETC1 -targetplatform=Android -cookflavor=ETC1". Anrdoid_ETC1 is not a valid platform (it's a cook platform), and can't be parsed by UAT.
#jira UE-53232
Change 3799050 by Ben.Marsh
Make UnrealPak.version files writable for Mac and Linux.
Change 3801012 by Graeme.Thornton
VSCode - Update source accessor to use code workspace as it's target, rather than just the project directory
Change 3801214 by Gil.Gribb
UE4 - Remove assert to work around minor problem with lock free lists.
#jira UE-49600
Change 3801219 by Steve.Robb
WeakObjectPtrs now warn when casting away const.
Change 3801299 by Graeme.Thornton
Fix quote issue with foreign project build tasks on PC
Change 3803292 by Graeme.Thornton
Fix crash on startup when using cook-on-the-side. Force a flush of the asset registry background scanning when creating the cook-on-the-side platform registries
Change 3803559 by Steve.Robb
TSAN fix for FMalloc::MaxSingleAlloc.
Change 3803735 by Graeme.Thornton
Last set of cryptokeys changes
- Added some comments for editor exposed settings
- Split "encrypt assets" option into "encrypt uassets" and "encrypt all assets"
Change 3803929 by Ben.Marsh
UGS: Show an in-place error panel when a project fails to open, allowing the user to retry and have their tabs saved instead of creating a modal dialog.
Change 3624590 by Steve.Robb
AddReferencedObjects now generates a compile error with containers of UObject*s where the UObjectType is forward-declared, as these which won't be added to the reference collector.
Tidy-up of existing calls to AddReferencedObjects.
Change 3629473 by Ben.Marsh
Build: Rename the option for embedding source server information in PDB files for installed engine builds.
Change 3632894 by Steve.Robb
VARARG* macros deprecated and usage replaced with variadic templates.
Change 3640704 by Steve.Robb
MakeWeakObjectPtr added, which deduces a TWeakObjectPtr type from a raw pointer type.
Fix to TWeakObjectPtr's constructor which implicitly removed const.
Fixes to everything which didn't compile as a result.
Change 3650813 by Graeme.Thornton
Removed FStartupPackages and associated code
Change 3651000 by Ben.Marsh
Return the stack size from FPlatformStackWalk::CaptureStackBacktrace() rather than checking for the first null pointer, to prevent truncated callstacks if parts of the stack are zeroed out.
#jira UE-49980
Change 3690842 by Steve.Robb
FPlatformAtomics::AtomicRead added - needs optimizing.
AtomicRead() used in FThreadSafeCounter::GetValue().
Change 3699416 by Steve.Robb
Fix to debugger visualization of TArray with a TInlineAllocator or TFixedAllocator.
Improved readability of TSparseArray visualization.
Change 3720812 by Steve.Robb
Atomic functions for 8-bit and 16-bit.
Android, Linux and Switch implementations now just use the Clang implementation.
AtomicRead64 deprecated in favor of the int64* AtomicRead overload.
Change 3722698 by Steve.Robb
VS debugger visualizers for TAtomic.
Change 3732270 by Steve.Robb
Relaxed stores and loads.
Change 3749315 by Graeme.Thornton
If UAT is invoked with platforms in both the -platform and -targetplatform command line switches, build using all of them rather than just the ones in -targetplatform
#jira UE-52034
Change 3750657 by Josh.Engebretson
Fixed issue when debugging editor cook/package and project launch operations
#jira UE-52207
Change 3758514 by Steve.Robb
Fixes to FString::Printf having non-literals being passed as its formatting string.
Change 3763356 by Steve.Robb
ENamedThreads::RenderThread and ENamedThreads::RenderThread_Local encapsulated by getters and setters.
Change 3770549 by Steve.Robb
Removal of obsolete PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS and PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES.
Tidy up of existing code which uses it.
Change 3770553 by Ben.Marsh
Adding structured serialization API to Core/CoreUObject for use with text-based assets.
* FStructuredArchive abstracts an archive which is made up of compound types (records, arrays, and maps). Values are stored in slots within these types.
* Records are string -> value dictionaries where the key names can be compiled out in non-editor builds or when WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Maps are string -> value dictionaries where the key names are present regardless of the build type.
* Proxy objects are defined to express the context for serialization (FStructuredArchive::FRecord, FStructuredArchive::FArray, FStructuredArchive::FMap, FStructuredArchive::FSlot) which allows basic validation through static typing. These objects act as lightweight handles, and can be cheaply constructed and passed around on the stack. Most serialization to and from the archive is done through these objects.
* Runtime checks perform additional validation to ensure that serialized data is well formed and written in a forward-only manner, regardless of the underlying archive type.
* The actual input/output format is determined by a separate interface (FArchiveFormatter). Context validation (always causing matching LeaveArray for every EnterArray, etc...) is done by FStructuredArchive, so implementing these classes is fairly trivial. FArchiveFormatter can be de-virtualized in non-editor builds, where WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Includes implementations of FArchiveFormatter for binary and JSON formats.
Change 3771105 by Steve.Robb
Deprecation warnings for PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES and PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS.
Fix for incorrect warning formatting on Clang platforms.
Change 3771520 by Steve.Robb
Start moving Clang-using platforms' pre-setup stuff into a Clang-specific header.
Change 3771564 by Steve.Robb
More common macros moved to the Clang pre-setup header.
Change 3771613 by Steve.Robb
EMIT_CUSTOM_WARNING_AT_LINE moved to ClangPlatformCompilerPreSetup.h.
Change 3772881 by Ben.Marsh
Add support for serializing FName and UObject through FStructuredArchive.
In order to allow custom linker behavior when serializing objects:
* The constructor to JSON input formatter now takes a delegate to convert a string object name into a UObject pointer.
* The constructor to tagged binary formatter takes a delegate to serialize a UObject pointer into any form it chooses (likely an integer index into the import table)
Object and name types are stored as strings in JSON, using an "Object:" or "Name:" prefix to differentiate them from regular strings. Any strings that already contain one of these prefixes are prepended with a "String:" prefix (as is any string that already has a "String:" prefix).
Change 3772941 by Graeme.Thornton
Make build work when including StructuredArchive.h from core container types
Added standard header to new files
Add structured archive serializer for TArray
Fix bug in structured archive where containers weren't being popped from the scope stack
Change 3772972 by Ben.Marsh
Add an adapter which presents a legacy FArchive interface to a FStructuredArchive slot.
Data is serialized into this slot as a stream of elements; raw data is buffered up into fixed size chunks, names and objects are serialized separately.
When used with FBinaryArchiveFormatter, this should result in all data being passed through to the underlying archive in a backwards compatible way, wiith no additional bookkeeping fields.
Change 3773006 by Ben.Marsh
Rename FStructuredArchive::FRecord::EnterSlot() to EnterField().
Change 3773013 by Steve.Robb
bUseInlining target rule added to UnrealBuildTool, which defaults to true, to allow inlining to be disabled for debugging purposes.
Change 3774499 by Ben.Marsh
Minor fixes for FStructuredArchive related classes:
* Text-based archive formats are now compiled out when WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Fixed issue with FTaggedBinaryArchiveFormatter state becoming corrupted when looking ahead at field types.
* FArchiveFieldName constructor is now explicit, to fix cases where strings were being passed directly to serialize functions.
Change 3774600 by Ben.Marsh
Add CopyFormattedData() function, which can copy data from one formatter to another. Add a test case to SerializationAPI that converts from data -> JSON -> binary -> JSON -> data.
This function can be used to implement a generic visitor pattern, by implementing a FArchiveFormatter which receives the deserialized data.
Change 3789721 by Ben.Marsh
TBA: Split FTaggedBinaryArchiveFormatter into separate classes for reading and writing.
Change 3789920 by Ben.Marsh
TBA: Support automatic coercion between any numeric types in tagged binary archives. Also report the smallest type that can contain a value, rather than just in32/double.
#jira UECORE-364
Change 3789982 by Ben.Marsh
TBA: Change FStructuredArchive::Open() to return a slot, rather than a record, to make it easier to implement a raw FArchive adapter.
Change 3792466 by Ben.Marsh
TBA: Better handling of raw data in text based assets. Short sequences of binary data are Base64 encoded as a single string. Longer sequences are stored as an array of Base64 encoded lines, push a SHA1 hash to detect cases where the data was merged incorrectly.
In order to allow inference of the correct type for a field, other fields called "Base64" will be escaped to "_Base64", and any field beginning with "_" will have an additional underscore inserted. Reading files back in reverses these transformations.
Change 3792935 by Ben.Marsh
TBA: Rename FArchiveFormatter to FStructuredArchiveFormatter for consistency with FStructuredArchive.
Change 3795100 by Ben.Marsh
UBT: Rename the ModuleRules Definitions property to PublicDefinitions, to make its semantics clearer.
Change 3795106 by Ben.Marsh
Replace all internal usages of ModuleRules.Definitions, and replace it with ModuleRules.PublicDefinitions.
Change 3796275 by Ben.Marsh
Fix paths to Version.h includes from resource files.
Change 3800683 by Josh.Engebretson
Remove WER from Mac and Linux crash reports in favor of unified runtime-xml format
#jira UE-50073
Change 3803545 by Steve.Robb
TWeakObjPtr const-dropping assignment fix.
Fixes to change.
[CL 3805231 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3494741 by Steve.Robb
Generated code size savings.
#jira UE-43048
Change 3495484 by Steve.Robb
Fix for generated indices of static arrays when saving configs.
Change 3497926 by Robert.Manuszewski
Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.
Change 3498077 by Robert.Manuszewski
Only use the recursion guard in async loading code when the event driven loader is enabled.
Change 3498112 by Ben.Marsh
UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.
Change 3500239 by Robert.Manuszewski
Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.
Change 3500395 by Steve.Robb
Extra codegen savings when not in hot reload.
Change 3501004 by Steve.Robb
EObjectFlags now have constexpr operators.
Change 3502079 by Ben.Marsh
UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.
Change 3502527 by Steve.Robb
Fix for zero-sized array compile error in generated code when all functions are editor-only.
Change 3502542 by Ben.Marsh
UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.
Change 3502868 by Steve.Robb
Workaround for inefficient generated code with stateless lambdas on Clang.
Change 3503550 by Steve.Robb
Another generated code lambda optimization.
Change 3503582 by Ben.Marsh
BuildGraph: Add support for nullable parameter types.
Change 3504424 by Steve.Robb
New AllOf, AnyOf and NoneOf algorithms.
Change 3504712 by Ben.Marsh
UAT: Less spammy log and error output from UAT.
* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
* Name of the calling function is not included in console output by default, but still included in the log.
Change 3504808 by Ben.Marsh
UAT: Suppress P4 output when running a recursive instance of UAT.
Change 3505044 by Steve.Robb
Code generation improved for TCppClassType code.
Change 3505485 by Ben.Marsh
Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.
Change 3505699 by Ben.Marsh
Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.
Change 3506055 by Ben.Marsh
UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.
Change 3507745 by Robert.Manuszewski
Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).
Change 3507911 by Ben.Marsh
Plugins: Minor changes to plugin descriptors.
* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.
Change 3508669 by Ben.Marsh
EC: Parse multi-line messages from UBT and UAT.
Change 3508691 by Ben.Marsh
Fix double-spacing of cook stats.
Change 3509245 by Steve.Robb
UHT makefiles removed.
Flag audit removed.
Change 3509275 by Steve.Robb
Fix for mismatched stat categories in AudioMixer.
#jira UE-46129
Change 3509289 by Robert.Manuszewski
Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.
Change 3509294 by Robert.Manuszewski
UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.
Change 3509312 by Steve.Robb
GitHub# 3679: Add TArray constructor that takes a raw pointer and a count
Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.
#jira UE-46136
Change 3509396 by Steve.Robb
GitHub# 3676: Fix TUnion operator<< compile error
#jira UE-46099
Change 3509633 by Steve.Robb
Fix for line numbers on multiline macros.
Change 3509938 by Gil.Gribb
UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.
Change 3510593 by Daniel.Lamb
Fixed up unsoilicited files getting populated with files which aren't finished being created yet.
#test None
Change 3510594 by Daniel.Lamb
Fixed up temp files directory for patching.
Thanks David Yerkess @ Milestone
#review@Ben.Marsh
Change 3511628 by Ben.Marsh
PR #3707: Fixed UBT stack size (Contributed by gildor2)
Change 3511808 by Ben.Marsh
Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)
#jira UE-46540
Change 3512017 by Ben.Marsh
Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.
Change 3513935 by Steve.Robb
Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.
Change 3514142 by Steve.Robb
MemoryProfiler2 added to generated solution.
Change 3516463 by Ben.Marsh
Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.
Change 3517860 by Ben.Marsh
PR #3727: FString Dereference Fixes (Contributed by jovisgCL)
Change 3517967 by Ben.Marsh
Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.
Change 3518070 by Steve.Robb
Disable Binned2 stats in shipping non-editor builds.
Change 3520079 by Steve.Robb
Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.
#jira UE-24034
Change 3520080 by Robert.Manuszewski
Made max package summary size to be configurable with ini setting
Change 3520083 by Steve.Robb
Force a GC after hot reload to clean up reinstanced objects which may still tick.
#jira UE-40421
Change 3520480 by Robert.Manuszewski
Improved assert message when the initial package read request was too small.
Change 3520590 by Graeme.Thornton
SignedArchiveReader optimizations
- Loads more stats
- Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
- Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
- Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries
Change 3521023 by Graeme.Thornton
Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing
Change 3521787 by Ben.Marsh
PR #3736: Small static code analysis fixes (Contributed by jovisgCL)
Change 3521789 by Ben.Marsh
PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)
Change 3524721 by Ben.Marsh
Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.
Change 3524741 by Ben.Marsh
Move PumpMessages() into FPlatformApplicationMisc.
Change 3525399 by Ben.Marsh
UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.
Change 3525743 by Ben.Marsh
UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.
Change 3525746 by Ben.Marsh
EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.
Change 3526453 by Ben.Marsh
UGS: Do not generate project files when syncing precompiled binaries.
Change 3527045 by Ben.Marsh
Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.
Change 3527420 by Ben.Marsh
UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).
Config files are now read from:
Engine/Programs/UnrealGameSync/UnrealGameSync.ini
Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini
If a project is selected:
<ProjectDir>/Build/UnrealGameSync.ini
<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini
If the .uprojectdirs file is selected:
Engine/Programs/UnrealGameSync/DefaultProject.ini
Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini
Change 3528063 by Ben.Marsh
Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.
Change 3528415 by Ben.Marsh
UAT: Remove \r characters from the end of multiline log messages.
Change 3528427 by Ben.Marsh
EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.
Change 3528485 by Ben.Marsh
EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.
Change 3528505 by Steve.Robb
PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)
#jira UE-46819
Change 3528772 by Robert.Manuszewski
Enabling actor and blueprint clustering in ShooterGame
Change 3528786 by Robert.Manuszewski
PR #3760: Fix typo (Contributed by jesseyeh)
Change 3528792 by Steve.Robb
PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)
#jira UE-46962
Change 3528941 by Robert.Manuszewski
Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.
#jira UE-44996
Change 3530241 by Ben.Marsh
UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.
Change 3531377 by Ben.Marsh
Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.
This has several advantages over the per-module platform whitelist/blacklist:
* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
* References to dependent plugins from platform-specific plugins can now be eliminated.
* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
* The editor can load any plugins without having to whitelist supported editor host platforms.
UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.
Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.
Change 3531502 by Jin.Zhang
Add support for GPUCrash #rb
Change 3531664 by Ben.Marsh
UBT: Change output format from C# JSON writer to match output by the engine.
Change 3531848 by Ben.Marsh
UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.
Change 3531869 by Ben.Marsh
UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.
Change 3532474 by Ben.Marsh
UBT: Use the same mechanism as UAT for logging exceptions.
Change 3532734 by Graeme.Thornton
Initial VSCode Support
- Tasks generated for building all game/engine/program targets
- Debugging support for targets on Win64
Change 3532789 by Steve.Robb
FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
Set_Add and Map_Add no longer have a return value.
FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.
Change 3532845 by Steve.Robb
Obsolete UHT settings deleted.
Change 3532875 by Graeme.Thornton
VSCode
- Add debug targets for different target configurations
- Choose between VS debugger (windows) and GDB (mac/linux)
Change 3532906 by Graeme.Thornton
VSCode
- Point all builds directly at UBT rather than the batch files
- Adjust mac build tasks to run through mono
Change 3532924 by Ben.Marsh
UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.
Change 3535234 by Graeme.Thornton
VSCode - Pass intellisense system a list of paths to use for header resolution
Change 3535247 by Graeme.Thornton
UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation
Change 3535376 by Graeme.Thornton
VSCode
- Added build jobs for C# projects
- Linked launch tasks to relevant build task
Change 3537083 by Ben.Marsh
EC: Change P4 swarm links to start at the changelist for a build.
Change 3537368 by Graeme.Thornton
Fix for crash in FSignedArchiveReader when multithreading is disabled
Change 3537550 by Graeme.Thornton
Fixed a crash in the taskgraph when running single threaded
Change 3537922 by Steve.Robb
Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.
Change 3539691 by Graeme.Thornton
VSCode - Various updates to get PC and Mac C++ projects building and debugging.
- Some other changes to C# setup to allow compilation. Debugging doesn't work.
Change 3539775 by Ben.Marsh
Plugins: Various fixes to settings for enabling plugins.
* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.
Change 3540788 by Ben.Marsh
UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
Example usage:
public class UnrealPakTarget : TargetRules
{
public UnrealPakTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
LaunchModuleName = "UnrealPak";
if(HostPlatform == UnrealTargetPlatform.Win64)
{
PreBuildSteps.Add("echo Before building:");
PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
PostBuildSteps.Add("echo After building!");
PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
}
}
}
Change 3541664 by Graeme.Thornton
VSCode - Add problemMatcher tag to cpp build targets
Change 3541732 by Graeme.Thornton
VSCode - Change UBT command line switch to "-vscode" for simplicity
Change 3541967 by Graeme.Thornton
VSCode - Fixes for Mac/Linux build steps
Change 3541968 by Ben.Marsh
CRP: Pass through the EnabledPlugins element in crash context XML files.
#jira UE-46912
Change 3542519 by Ben.Marsh
UBT: Add chain of references to error messages when configuring plugins.
Change 3542523 by Ben.Marsh
UBT: Add more useful error message when attempt to parse a JSON object fails.
Change 3542658 by Ben.Marsh
UBT: Include a chain of references when reporting errors instantiating modules.
Change 3543432 by Ben.Marsh
Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.
Change 3543436 by Ben.Marsh
UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.
Change 3543536 by Ben.Marsh
UBT: Downgrade message about redundant plugin references to a warning.
Change 3543871 by Gil.Gribb
UE4 - Fixed a critical crash bug with non-EDL loading from pak files.
Change 3543924 by Robert.Manuszewski
Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
+Small optimization to token stream generation code.
Change 3544469 by Jin.Zhang
Crashes page displays the list of plugins from the crash context #rb
Change 3544608 by Steve.Robb
Fix for nativized generated code.
#jira UE-47452
Change 3544612 by Ben.Marsh
Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().
#jira UE-47449
Change 3545954 by Gil.Gribb
Fixed a critical crash bug relating to a race condition in async package summary reading.
Change 3545968 by Ben.Marsh
UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.
#jira UE-47419
Change 3545976 by Ben.Marsh
EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.
Change 3546185 by Ben.Marsh
Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.
Change 3547084 by Gil.Gribb
Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.
Change 3547968 by Gil.Gribb
Fixed critical race which potentially could cause a crash in the pak precacher.
Change 3504722 by Ben.Marsh
BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.
For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:
ERROR: Unable to write to foo.txt
while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
at Engine\Build\InstalledEngineBuild.xml(91)
(see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
Change 3512255 by Ben.Marsh
Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.
Change 3512332 by Ben.Marsh
Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.
Change 3512393 by Ben.Marsh
Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().
Change 3513452 by Ben.Marsh
Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.
Change 3516262 by Ben.Marsh
Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.
* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).
Change 3517565 by Ben.Marsh
Remove fixed engine version numbers from OSS plugins.
Change 3518005 by Ben.Marsh
UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.
Change 3518054 by Ben.Marsh
UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.
Change 3524496 by Ben.Marsh
Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.
Change 3524641 by Ben.Marsh
Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.
Change 3528723 by Steve.Robb
MoveTemp now static asserts if passed a const reference or rvalue.
MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
Fixes to violations of these new rules.
Change 3528876 by Ben.Marsh
Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.
Change 3529073 by Ben.Marsh
Add script to package ShooterGame for any platforms.
Change 3531493 by Ben.Marsh
Update platform-specific plugins to declare the target platforms they support.
Change 3531611 by Ben.Marsh
UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.
Change 3531868 by Ben.Marsh
Resaving project descriptors to remove invalid fields.
Change 3531983 by Ben.Marsh
UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.
* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
* An error is output if any restricted folder names other than the output platform are in the staged output.
Change 3540315 by Ben.Marsh
UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.
Change 3542410 by Ben.Marsh
UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.
Change 3543018 by Ben.Marsh
UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.
Change 3544371 by Steve.Robb
Fixes to TSet_Add and TMap_Add BPs.
#jira UE-47441
[CL 3548391 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975891 on 2016/05/12 by Gil.Gribb
merged in new async stuff from dev-rendering.
Change 2976695 on 2016/05/13 by Gil.Gribb
updated precache list
Change 2977030 on 2016/05/13 by Gil.Gribb
Added time slicing to CreateAsyncPackagesFromQueue, radically reduced the frequency of "precache trimming" and changed a few things in the test rig and logging
Change 2977090 on 2016/05/13 by Gil.Gribb
Fixed module manager threading and added cmd line param to force async loading thread.
Change 2977292 on 2016/05/13 by Gil.Gribb
check for thread safety in looking at asset registry
Change 2977296 on 2016/05/13 by Gil.Gribb
removed some super-expensive check()s from precacher
Change 2978368 on 2016/05/16 by Gil.Gribb
Move several exposive bools inside of the basic tests inside of FLinkerLoad::Preload, saves a fraction of second.
Change 2978414 on 2016/05/16 by Gil.Gribb
Added support and testing for unmounting pak files to the pak precacher.
Change 2978446 on 2016/05/16 by Gil.Gribb
Allow linker listing in non-shipping builds
Change 2978550 on 2016/05/16 by Gil.Gribb
Allowed some linker spew in non-shipping builds (instead of debug builds). Some tweak to help track down the music.uasset leak.
Change 2979952 on 2016/05/17 by Robert.Manuszewski
Merging //UE4/Dev-Core @ 2979938 to Dev-UE-30519-LoadTimes
Change 2984927 on 2016/05/20 by Gil.Gribb
fix a few bugs with an mcp repro
Change 2984951 on 2016/05/20 by Gil.Gribb
fixed issues with USE_NEW_ASYNC_IO = 0
Change 2985296 on 2016/05/20 by Gil.Gribb
Fixed several bugs with the MCP boot test
Change 2987956 on 2016/05/24 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2987959 on 2016/05/24 by Joe.Conley
Enable load timings in block loading also (in addition to async loading).
Change 3017713 on 2016/06/17 by Robert.Manuszewski
Removing GUseSeekFreeLoading.
Change 3017722 on 2016/06/17 by Robert.Manuszewski
Renaming LOAD_SeekFree flag to LOAD_Async to better reflect its current purpose.
Change 3017833 on 2016/06/17 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3017840 on 2016/06/17 by Robert.Manuszewski
Re-doing Dev-Core changes to Delegates 2/2
Change 3022872 on 2016/06/22 by Gil.Gribb
reorder memory trim and deleting loaders
Change 3059218 on 2016/07/21 by Robert.Manuszewski
Fixing compilation errors - adding missing load time tracker stats.
Change 3064508 on 2016/07/26 by Robert.Manuszewski
Removing blocking loading path in cooked builds. LoadPackage will now use the async path.
Change 3066312 on 2016/07/27 by Gil.Gribb
Event driven loader, first pass
Change 3066785 on 2016/07/27 by Gil.Gribb
Removed check...searching forward for export fusion can release a node
Change 3068118 on 2016/07/28 by Gil.Gribb
critical bug fixes for the event driven loader
Change 3068333 on 2016/07/28 by Gil.Gribb
correctly handle the case where a file is rejected after loading the summary
Change 3069618 on 2016/07/28 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3069901 on 2016/07/29 by Robert.Manuszewski
Fixing an hang when loading QA-Blueprints level
Change 3070171 on 2016/07/29 by Gil.Gribb
fixed CDO cyclic dependencies
Change 3075288 on 2016/08/03 by Gil.Gribb
misc fixes to the event driven loader
Change 3077332 on 2016/08/04 by Robert.Manuszewski
Fixing checkSlow asserts caused by new loading code not being flagged as IsInAsyncLoadThread() and CreateSynchEvent deprecation warning.
Change 3078113 on 2016/08/04 by Gil.Gribb
implemented "nicks rule" and undid some previous material and world hacks needed without it.
Change 3079480 on 2016/08/05 by Gil.Gribb
fixes and tweaks on event driven loader
Change 3080135 on 2016/08/07 by Gil.Gribb
misc fixes for event driven loader, now with reasonable memory
Change 3083722 on 2016/08/10 by Robert.Manuszewski
Fixing hangs when async loading packages.
Change 3091747 on 2016/08/17 by Gil.Gribb
Fix all hitches in streaming load that were regressions.
Change 3093258 on 2016/08/18 by Gil.Gribb
Fix bug that caused an assert when packages fail to load for certain reasons (like loading an uncooked file).
Change 3095719 on 2016/08/20 by Gil.Gribb
reenable async loading thread and cleanup and bug fixes
Change 3096350 on 2016/08/22 by Gil.Gribb
tweak task priorities a bit to minimize precaching memory
Change 3096355 on 2016/08/22 by Gil.Gribb
add support for precaching for "loose files" in the generic async layer.
Change 3098091 on 2016/08/23 by Gil.Gribb
Split header into a separate file and disabled a bad optimization in the bulk data.
Change 3099783 on 2016/08/24 by Gil.Gribb
rework dependency graph to be much, much faster. About half done.
Change 3100995 on 2016/08/25 by Gil.Gribb
fixed bugs with streaming texture from .uexp and cook time check that should have been runtime only
Change 3101369 on 2016/08/25 by Gil.Gribb
fixed bug with blueprints in the new loader.
Change 3102793 on 2016/08/26 by Gil.Gribb
PS4 - fixed small block memcpy to actually be inline
Change 3103785 on 2016/08/27 by Gil.Gribb
fixed case bug with pak order. devirtualized flinkerload::serialize, made sure -fileopenlog is not heavily skewed
Change 3104884 on 2016/08/29 by Gil.Gribb
fixed a BP bug and tweaked the -fileopenlog behavior to do leaf assets DFS
Change 3105266 on 2016/08/29 by Ben.Zeigler
Editor build compilation fix
Change 3105774 on 2016/08/30 by Gil.Gribb
add checks to locate cases where we try to use something that isn't loaded yet
Change 3107794 on 2016/08/31 by Gil.Gribb
fixed abug with BP's not loading the parent CDO soon enough
Change 3114278 on 2016/09/06 by Gil.Gribb
looping loads for paragon load test
Change 3114311 on 2016/09/06 by Ben.Zeigler
Fix linux compile
Change 3114350 on 2016/09/06 by Ben.Zeigler
Linux supports fast unaligned int reads
Change 3116169 on 2016/09/07 by Ben.Zeigler
Force enable separate bulk data cooking when using split cooked files, end-of-exp-file doesn't make sense with the new cook scheme and will crash at runtime
Change 3116538 on 2016/09/07 by Gil.Gribb
add dependencies for CDO subobjects
Change 3116596 on 2016/09/07 by Ben.Zeigler
Change crash to warning when trying to load an import to a missing native class, can happen with editor only classes.
Change 3116855 on 2016/09/07 by Ben.Zeigler
Move cook dialog down a bit so I can cook without constant dialogs popping up
Change 3117452 on 2016/09/08 by Robert.Manuszewski
Fixing hang when suspending async loading with the async loading thread enabled.
Change 3119255 on 2016/09/09 by Robert.Manuszewski
Removing texture allocations from PackageFileSummary as they were not used by anything.
Change 3119303 on 2016/09/09 by Gil.Gribb
Fixed font issue by making all all bulk data either inline or in a ubulk. Added support for compressed packages.
Change 3120324 on 2016/09/09 by Ben.Zeigler
Fix Cook warnings. Skip transient and client/server only objects when adding dependencies, and mark ShapeComponent BodySetups as properly transient.
Change 3121960 on 2016/09/12 by Ben.Zeigler
Add RandomizeLoadOrder CVar to randomize the package serial number it uses for sorting async loads
Change 3122635 on 2016/09/13 by Gil.Gribb
reworked searching disk warning and minor change to the background tasks used for decompression
Change 3122743 on 2016/09/13 by Gil.Gribb
added some checks around memory accounting
Change 3123395 on 2016/09/13 by Ben.Zeigler
Enable MallocBinned2 by default on cooked windows builds, similar to how PS4 works.
Disabled thread pool cache clearing on windows, the threading function it was using is very slow on windows specifically
Change 3124748 on 2016/09/14 by Gil.Gribb
Store template in import/export table and refer to it for each export to avoid calling GetArchetypeFromRequiredInfo. Minor fix for some NeedLoadForCLient etc stuff on landscape and CDOs. Fix texture streamer minmips stuff.
Change 3125153 on 2016/09/14 by Gil.Gribb
don't put transient objects in the import map
Change 3126668 on 2016/09/15 by Gil.Gribb
Fix critical bug with imports not waiting for the corresponding export to serialize. Fixed paragon test rig to run longer looping by flushing the renderer. Made random mode more random.
Change 3126755 on 2016/09/15 by Gil.Gribb
ooops, test rig fix
Change 3127408 on 2016/09/15 by Ben.Zeigler
Back out changelist 3123395, restoring windows memory to 4.13 setup
Change 3127409 on 2016/09/15 by Ben.Zeigler
Remove Memory trim from FlushAsyncLoading, because it gets called much more often in new flow and is slow on some platforms
Change 3127948 on 2016/09/16 by Gil.Gribb
Added a check() on any attempt to serialize a pointer to something that hasn't been created yet. This will help us find missing dependencies. There is an exception to this related to CDOs.
Change 3128094 on 2016/09/16 by Robert.Manuszewski
Fixing exports referenced by weak object pointers not being added to the preload dependency list of of the exports that depend on them.
+ Moved weak object pointer serialization to FArchive operator << to be able to override its behavior when cooking.
Change 3128148 on 2016/09/16 by Robert.Manuszewski
Gil's mod to how we detect exports with missing dependencies
Change 3129052 on 2016/09/16 by Ben.Zeigler
Add Missing Serialize helpers for WeakObjectPtrs, fixes crash with replicating weak objects
Change 3129053 on 2016/09/16 by Ben.Zeigler
Fake integrate CL #3123581 from Dev-Framework, to correctly handle detecting components as editor only even when they have collision. Fixes crashes with blueprint editor only components that depend on native templates
Change 3129630 on 2016/09/17 by Gil.Gribb
better logging for missing dependencies and properly ifdef'd the CDO primitive comp hack
Change 3130178 on 2016/09/19 by Robert.Manuszewski
Use the correct macro (COOK_FOR_EVENT_DRIVEN_LOAD instead of USE_NEW_ASYNC_IO) for SavePackage changes from CL #3128094
Change 3130224 on 2016/09/19 by Robert.Manuszewski
Compile error fix
Change 3130391 on 2016/09/19 by Gil.Gribb
Add cook time fatal errors, and undid a previous change we don't seem to need relating to editor only CDOs
Change 3130484 on 2016/09/19 by Gil.Gribb
fixed botched GetArchetypeFromRequiredInfo
Change 3131966 on 2016/09/20 by Robert.Manuszewski
Making the new event driven loader disabled by default. It's now also configurable via project settings (under Streaming Settings -> Event Driven Loader Enabled).
Enabled the event driven loader for a few internal projects.
Change 3132035 on 2016/09/20 by Gil.Gribb
fix dynamic switch on new loader
Change 3132041 on 2016/09/20 by Robert.Manuszewski
Fix for packages not being saved to disk when cooking with event driven loader disabled.
Change 3132195 on 2016/09/20 by Robert.Manuszewski
Enabling the event driven loader for Zen
Change 3133870 on 2016/09/21 by Graeme.Thornton
Config files now enable the event driven loader with the correct cvar name
Change 3135812 on 2016/09/22 by Gil.Gribb
fixed some bugs with GC during streaming
Change 3136102 on 2016/09/22 by Robert.Manuszewski
Release GC lock when FlushingAsyncLoading when running GC.
Change 3136633 on 2016/09/22 by Gil.Gribb
fix bug with linkers finsihing before other things linked their imports
Change 3138002 on 2016/09/23 by Robert.Manuszewski
Added an assert that will prevent content cooked for the event driven loader to be loaded by game builds that have the EDL disabled.
Change 3138012 on 2016/09/23 by Gil.Gribb
Improved the fix to prevent packages from finishing before external imports have linked. Async load object libraries.
Change 3138031 on 2016/09/23 by Gil.Gribb
do not preload obj libs in editor
Change 3139176 on 2016/09/24 by Gil.Gribb
fixed another bug with an attempt to call GetArchetypeFromRequiredInfo
Change 3139459 on 2016/09/26 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3139668 on 2016/09/26 by Gil.Gribb
change some checks to errors on bad bulk data loads
Change 3141127 on 2016/09/27 by Robert.Manuszewski
Preventing linkers from being detached too early when async loading.
Change 3141129 on 2016/09/27 by Robert.Manuszewski
Releasing GC Lock before calling post GC callbacks to allow StaticFindObject use in these callbacks
Change 3142048 on 2016/09/27 by Robert.Manuszewski
Changing async loading code to not close DelayedLinkerClosePackages linkers until the async package that triggered their creation has finished loading.
Change 3143132 on 2016/09/28 by Gil.Gribb
fixed text render comp, which has some editor only issues. Fixes a runtime crash and adds a cooktime warning.
Change 3143198 on 2016/09/28 by Gil.Gribb
fixed it so that bogus loads of bulk data are warned but do not crash
Change 3143287 on 2016/09/28 by Robert.Manuszewski
UBT will now invalidate its makefiles if ini files are newer than the makefile (ini files may contains global build settings).
+ Android toolchain will add hashed command line values to the action reposnse filenames to actually allow it to detect compiler command line changes when detecting actions to execute
Change 3143344 on 2016/09/28 by Robert.Manuszewski
Make UAT pass the project filename to UBT when build non-code projects so that UBT can parse all ini files.
Change 3143865 on 2016/09/28 by Gil.Gribb
iffy fix for the net load assert in paragon, plus a few checks and one bit of code removed that should never be hit in the EDL, but makes no sense
Change 3144683 on 2016/09/29 by Graeme.Thornton
Minor refactor of pak file non-filename stuff
- Don't check for file existing before running through the security delegate
- Default behaviour when using new IO is to reject uasset/umap/ubulk/uexp files immediately. Can be disabled by setting EXCLUDE_NONPAK_UE_EXTENSIONS to 0 in project .build.cs
Change 3144745 on 2016/09/29 by Graeme.Thornton
Orion non-pak file whitelisting is enabled for all cooked game only builds now, rather than just clients
Change 3144780 on 2016/09/29 by Gil.Gribb
use poison proxy on non-test/shipping builds
Change 3144819 on 2016/09/29 by Gil.Gribb
added a few asserts and added an improved fix for the net crash
Change 3145414 on 2016/09/29 by Gil.Gribb
fixed android assert....not sure why I need that block of code.
Change 3146502 on 2016/09/30 by Robert.Manuszewski
Fix for GPU hang from MarcusW
Change 3146774 on 2016/09/30 by Robert.Manuszewski
Fixing a crash when constantly streaming levels in and out caused by keeping references to objects (levels) that were requested to be streamed out.
- Removed FAsyncObjectsReferencer. References will now be owned by FAsyncPackage
- UGCObjectReferencer is now more thread safe
Change 3148008 on 2016/10/01 by Gil.Gribb
add additional error for attempting to create an object from a class that needs to be loaded
Change 3148009 on 2016/10/01 by Gil.Gribb
fix very old threading bug whereby the ASL and GT would attempt to use the same static array
Change 3148222 on 2016/10/02 by Robert.Manuszewski
Fix for an assert when an FGCObject is removed when purging UObjects
Change 3148229 on 2016/10/02 by Gil.Gribb
disable assert that was crashing paragon ps4
Change 3148409 on 2016/10/03 by Robert.Manuszewski
Allow another case for removing FGCObjects while in GC.
Change 3148416 on 2016/10/03 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3149566 on 2016/10/03 by Ben.Zeigler
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149913 on 2016/10/04 by Gil.Gribb
better broadcast
Change 2889560 on 2016/03/02 by Steven.Hutton
Packages for scheduled tasks.
Change 2889566 on 2016/03/02 by Steven.Hutton
Remaining nuget packages for hangfire, unity and scheduled tasks.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3126265 on 2016/09/15 by Steve.Robb
Fix for TCString::Strspn.
Change 3126266 on 2016/09/15 by Steve.Robb
Alternative fix for GitHub 2698: Fix one bug : Parsing command "Enable True" is invalid.
#jira UE-34670
Change 3126268 on 2016/09/15 by Steve.Robb
UWorld can no longer be extended by users.
UHT now handles final class declarations.
#jira UE-35708
Change 3126273 on 2016/09/15 by Steve.Robb
A further attempt to catch uninitialized pointers supplied to the GC.
#jira UE-34361
Change 3130042 on 2016/09/19 by Steve.Robb
Super for USTRUCTs.
Suggested here: https://udn.unrealengine.com/questions/310461/automatically-typedef-super-for-ustructs.html
Change 3131861 on 2016/09/20 by Steven.Hutton
Reconciling work for view engine changes #rb none
Change 3131862 on 2016/09/20 by Steve.Robb
Removal of THasOperatorEquals and THasOperatorNotEquals from Platform.h, which should have happened as part of CL# 3045963.
Change 3131863 on 2016/09/20 by Steven.Hutton
Adding packages #rb none
Change 3131869 on 2016/09/20 by Steve.Robb
Improved error message for enum classes with a missing base:
Error: Missing base specifier for enum class 'EMyEnum' - did you mean ': uint8'?
Change 3132046 on 2016/09/20 by Graeme.Thornton
Fix for cvar thread access assert in FLandscapeComponentGrassData serialization function
- This function can be called from the async thread so access CVarGrassDiscardDataOnLoad with GetValueOnAnyThread() rather than GetValueOnGameThread()
Change 3133201 on 2016/09/20 by Ben.Zeigler
Reorganize WindowsPlatformMemory and MacPlatformMemory to work like LinuxPlatformMemory where there is an enum to select the allocator, and move some of it up to GenericPlatformMemory
Add command line options to select malloc at runtime for Windows and Linux, I don't know how Mac options work
Improve the performance of BroadcastSlow_OnlyUseForSpecialPurposes on windows, but there are cases where it occaisionally stalls for a few seconds waiting for the flush
Add MallocBinned2 as an option for mac, linux, and windows, but default to off due to some threading issues
Change 3133722 on 2016/09/21 by Graeme.Thornton
Cooker forces a shader compilation flush when it detects that it has passed the max memory budget
Change 3133756 on 2016/09/21 by Steve.Robb
Refactor of TrimPrecedingAndTrailing to avoid a call to FString::Mid with a negative count, which is now illegal.
#jira UE-36163
Change 3134182 on 2016/09/21 by Steve.Robb
GitHub #1986: Don't show warnings and erros in console twice with UCommandlet::LogToConsole == true
#jira UE-25915
Change 3134306 on 2016/09/21 by Ben.Zeigler
Fix it so FMallocBinned2::Trim skips task threads on desktop platforms, they are too slow and don't allocate much memory
Enable MallocBinned2 as default binned malloc on Windows
Remove the -Run command line check as it was removed from the old version as well
Change 3135569 on 2016/09/22 by Graeme.Thornton
Don't create material resources if we are in a build that can never render
- Saves a few MB of memory
Change 3135652 on 2016/09/22 by Steve.Robb
New async-loading-thread-safe IsA implementation.
#jira UECORE-298
Change 3135692 on 2016/09/22 by Steven.Hutton
Minor bug fixes to view pages #rb none
Change 3135990 on 2016/09/22 by Robert.Manuszewski
Adding ENGINE_API to FStripDataFlags sp that it can be used outside of the Engine module.
Change 3136020 on 2016/09/22 by Steve.Robb
Display a meaningful error and shutdown if Core modules fail to load.
https://udn.unrealengine.com/questions/312063/mac-unrealheadertool-failing-randomly.html
Change 3136107 on 2016/09/22 by Chris.Wood
Added S3 file upload to output stage of Crash Report Process (v.1.1.26)
[UE-35991] - Crash Report Process to write crash files to S3
Also adds OOM alerts to CRP.
Also disk space alerts changed to 5% free space and repeat once every 30 minutes instead of 10 minutes.
Change 3137562 on 2016/09/23 by Steve.Robb
TUniquePtr<T[]> support.
Change 3138030 on 2016/09/23 by Steve.Robb
Virtual UProperty functions moved out of headers into .cpp files to ease iteration.
Change 3140381 on 2016/09/26 by Chris.Wood
Disabled uploads via CRRs while leaving services switched on to avoid crashes in some clients.
[UETOOL-1005] - Turn off CrashReportReceivers
Change 3141150 on 2016/09/27 by Steve.Robb
Invoke support for TFunction.
Change 3141151 on 2016/09/27 by Steve.Robb
UBoolProperty now supports hashing and is therefore usable as a TSet element or TMap key.
FText is now prevented from being a TSet element or TMap key.
UTextProperty::GetCPPTypeForwardDeclaration implementation moved to the .cpp file.
#jira UE-36051
#jira UE-36053
Change 3141440 on 2016/09/27 by Chris.Wood
Removed legacy queues and unnecessary duplication checks from Crash Report Process (v1.2.0)
[UE-36246] - CRP scalability: Simplify CRP inputs to DataRouter/S3 only
Change 3142999 on 2016/09/28 by Chris.Wood
Added dedicated PS4 crash queue to Crash Report Process (v1.2.1)
Change 3144831 on 2016/09/29 by Steve.Robb
InternalPrecache now flags the archive as in-error so that it can be checked by a caller, rather than popping up a dialog box and asserting.
#jira https://jira.it.epicgames.net/browse/OPP-6036
Change 3145184 on 2016/09/29 by Robert.Manuszewski
FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits.
Change 3148432 on 2016/10/03 by Robert.Manuszewski
Thread safety fixes for the async log writer + made the async log writer flush its archive more often.
Change 3148661 on 2016/10/03 by Graeme.Thornton
Fixing merge of IsNonPakFilenameAllowed()
- Removed directory search stuff... we pass everything to the delegate now anyway
Change 3149669 on 2016/10/03 by Ben.Zeigler
Lower verbosity of warnings from deleting native properties. These cases do not cause any problems and are not fixable without resaving the content after it has started warning. I checked Jira history and neither of these warnings has ever found a real bug, but has caused a lot of content to be resaved unnecessarily.
Change 3149670 on 2016/10/03 by Ben.Zeigler
Merge CL #3149566 from Dev-LoadTimes
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149835 on 2016/10/04 by Graeme.Thornton
Thread safety fix for SkyLightComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149836 on 2016/10/04 by Graeme.Thornton
Thread safety fix for ReflectionCaptureComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149959 on 2016/10/04 by Robert.Manuszewski
Allow import packages to be missing if they're on the KnownMissingPackages list
Change 3150023 on 2016/10/04 by Steven.Hutton
Updating jira strings. #rb none
Change 3150050 on 2016/10/04 by Steve.Robb
MakeShared now returns a TSharedRef (which is implicitly convertible to TSharedPtr) rather than a TSharedPtr (which is not implicitly convertible to TSharedRef), for ease of use and because MakeShared can't return a null pointer anyway.
Change 3150110 on 2016/10/04 by Robert.Manuszewski
Allow UGCObjectReferencer::AddObjects to happen during BeginDestry and FinishDestroy. It's fine as long as we're not adding new objects during reachability analysis.
Change 3150120 on 2016/10/04 by Gil.Gribb
fix task graph/binned2 broadcast for PS4
Change 3150195 on 2016/10/04 by Robert.Manuszewski
Fixing WEX crash
#jira UE-36801
Change 3150212 on 2016/10/04 by Robert.Manuszewski
Increasing compiler memory limit to fix CIS errors
#jira UE-36795
Change 3151583 on 2016/10/05 by Robert.Manuszewski
Temporarily switching to the old IsA path
#jria UE-36803
Change 3151642 on 2016/10/05 by Steve.Robb
Dependency fixes for GameFeedback modules.
Change 3151653 on 2016/10/05 by Robert.Manuszewski
Maybe fix for crash on the Mac
#jira UE-36846
[CL 3152539 by Robert Manuszewski in Main branch]
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2997066 on 2016/06/01 by Michael.Noland
Engine: Marked engine performance target cvars ECVF_Scalability so they can be adjusted via scalability buckets at runtime for games that target different framerates on different levels of hardware
#rb none
#tests Ran Paragon and changed video settings and tested t.TargetFrameTimeThreshold
Change 2996816 on 2016/06/01 by Dan.Youhon
Add FixedWorldDirection option for Root Motion Radial Forces; code/BP hook-up for allowing Price's reworked RMB to send all targets in the same (correct) direction
- FixedWorldDirection added to both root motion system and corresponding ability tasks
- Exposed AddHitResult for EffectContexts for modifying EffectContext hit results from BP
- Hooked up to Price RMB - we (somewhat dirtily) route Price's location and facing through the HitResult of the EffectContext for his displacement GE
#rb Dave.Ratti
#tests MultiPIE
#codereview Billy.Rivers
#lockdown Billy.Rivers
Change 2996526 on 2016/06/01 by Brian.Karis
Fixed tube light typo
JB made this robomerge up. Shader recompiling in our future.
#RB:none
#Tests:none
#ROBOMERGE: MAIN, 27, 26.2
Change 2996428 on 2016/06/01 by Rolando.Caloca
O - Made r.D3D.RemoveUnusedInterpolators a system setting which now also alters ddc key; fix r.Shaders.FastMath actually affecting compilation when =0
#rb Chris.Bunner
#codereview Michael.Noland, Marcus.Wassmer
#jira OR-22573
#tests Run with and without r.D3D.RemoveUnusedInterpolators=1 on DefaultEngine.ini
Change 2996090 on 2016/06/01 by Jason.Bestimt
#ORION_MAIN - Merge 26.2 @ CL 2995754
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2995816 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
#CodeReview: jason.bestimt
Change 2995785 on 2016/06/01 by Robert.Manuszewski
Don't delete non-backup log files when cleaning up the logs folder.
#rb none
#tests Tested in the editor with multiple old log files
Change 2995556 on 2016/05/31 by Dmitry.Rekman
More info about timers on crash (OR-21986).
- Somewhat desperate attempt to get more clue about timer crash. Intended to be removed later.
#rb Michael.Noland
#codereview Marc.Audy, Michael.Noland
#tests Compiled the Linux server, ran it, crashed a few times.
Change 2995397 on 2016/05/31 by Michael.Noland
Rendering: Made the optimization to combine upscaling/downscaling and tonemapping optional based on the amount of upscaling that will occur
- r.Tonemapper.ScreenPercentage has been renamed to r.Tonemapper.MergeWithUpscale.Mode
- r.Tonemapper.MergeWithUpscale.Threshold is a new setting used when r.Tonemapper.MergeWithUpscale.Mode is set to 2, which indcates to only try to merge the passes if the ratio of the area before upscale/downscale to the area afterwards is greater than the threshold
This prevents running the tonemapper on all of the target res pixels when the source res is far smaller, as that can cause it to be a loss to merge the passes
Upgrade Notes: r.Tonemapper.ScreenPercentage has been renamed to r.Tonemapper.MergeWithUpscale.Mode
#rb marcus.wassmer
#tests Ran Paragon at various resolutions on Intel and NV cards
#rn
Change 2995118 on 2016/05/31 by David.Decker
- Fix for build failure
#rb none
#tests golden path game
Change 2994929 on 2016/05/31 by David.Decker
#Orion_Analytics
-Added PacketRecievedHistogram event that fires every minute in game the rate is configurable in DefaultGame.ini
-Moved FHistogram from PerfCountersModule to ProfilingHelpers
-Re-enabled Location event
#rb Dmitry.Rekman
#codereview Dmitry.Rekman, John.Pollard, Christopher.Wright
#tests golden path game
Change 2994920 on 2016/05/31 by Daniel.Lamb
Added some more cooking stats to save package.
#rb Wes.Hunt
#test Cook Orion.
Change 2994622 on 2016/05/31 by Zak.Middleton
#orion - Pickup and Coin filter collision optimizations.
- Added coin collision profile preset and made it ignore everything but Pawn (importantly, now ignores triggers).
- Pickups filter out collision with AI earlier. Profile already did this but this avoids more branches and cache misses in PreFilter.
- Coins now additionally filter out more efficiently Heroes that can't pick them (no overlap events generated at all).
#rb Jon.Lietz, Frank.Gigliotti
#tests PlayGo MultiPIE
Change 2994305 on 2016/05/31 by Andrew.Grant
Restoring prompt/exit on signed archive issue to help identify causes
#rb none
#tests compiled
Change 2994226 on 2016/05/31 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 27 @ CL 2993946
#RB:none
#Tests:none
[CodeReviewed]: graeme.thornton
#ROBOMERGE-SOURCE: CL 2994225 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2994204 on 2016/05/31 by bruce.nesbit
More banner changes
-Fixed an issue with InterpToComponent with very short times
-revisions to test banner
-added fade to banner/charms
-tries to set team color on decativate FX
#rb none
#tests Game+PIE
#codereview Jason.Bestimt
Change 2993973 on 2016/05/30 by Robert.Manuszewski
Updated protection handling
#rb none
#tests Compiled and applied protection
Change 2993588 on 2016/05/27 by Michael.Noland
Engine: Removed a bogus autocomplete for ShowMaterialDrawEvents, which was previously renamed r.ShowMaterialDrawEvents
#rb none
#tests Typed in ShowMat in the console and verified that no autocomplete appeared
#rn
Change 2993510 on 2016/05/27 by John.Pollard
Fix issue with root motion sources and replays, fixes TwinBlast RMB ability animation issue, and other artifacts
#rb RyanG
#tests Replays
Change 2993484 on 2016/05/27 by Uriel.Doyon
New logic for computing the skel mesh streaming scales
#rb marcus.wassmer
#tests loaded editor, played with streaming scale
Change 2993211 on 2016/05/27 by Uriel.Doyon
Workaround for lightmap streaming flags not being correctly set.
#codereview marcus.wassmer
#rb marcus.wassmer
#tests building lighting and investigating streaming
Change 2993068 on 2016/05/27 by Marcus.Wassmer
Duplicate 2989729
Fix for lightmaps and shadowmaps having low resolutions after building lightings
#rb none
#test PC at various scalability
#codereview Uriel.Doyon
Change 2993066 on 2016/05/27 by Lukasz.Furman
fixed behavior tree getting stuck on ResumeLogic call
copied from //UE4/Dev-Framework, CL# 2993058
#jira OR-22498
#rb none
#tests none
Change 2992706 on 2016/05/27 by Marcus.Wassmer
Duplicate 2991726
Fix for grey skin in simple lighting model (shadows off)
#rb none
#test lowest settings on PC
Change 2992705 on 2016/05/27 by Marcus.Wassmer
Duplicate 2991727
Fix emissive decals in simple forward renderer
#rb none
#test PC lowest settings
Change 2992658 on 2016/05/27 by David.Ratti
Remove all occurrences of Ability.PersistPastDeath from granted tags. Fix code to *only* check asset tags for this tag, instead of both.
#rb none
#test pie
Change 2992646 on 2016/05/27 by Ben.Marsh
BuildGraph: Add a BuildGraph task to run a UE4 commandlet. Syntax is <Commandlet Name="..." Project="..." Arguments="...">.
#rb none
#tests none
Change 2992252 on 2016/05/26 by Jason.Bestimt
#ORION_DG - Unclog ROBO Merge in DG
#RB:none
#Tests:none
Change 2992180 on 2016/05/26 by John.Pollard
Fix issue where external data wasn't saving out properly
#rb RyanG
#tests Replays
Change 2992159 on 2016/05/26 by Michael.Noland
CVar to disable/freeze GPU particle simulation (r.GPUParticle.Simulate)
[Replicated from Dev-Rendering checkin CL# 2989752 by Olaf]
#rb olaf.piesche
#tests Tested the command in Agora and verified that GPU particles were not being drawn
Change 2992158 on 2016/05/26 by Michael.Noland
Rendering: Added a cvar that controls unbinding of all texture resources between materials changes in the DX11 renderer (r.UnbindResourcesBetweenDrawsInDX11) to improve the readability of GPA captures
Note: This will probably be moved to be on when markers are on rather than an independent cvar, but it is currently separate for testing
#codereview marcus.wassmer
#rb none
#tests Ran with the var off and on and verified in GPA captures
Change 2991645 on 2016/05/26 by Andrew.Grant
Fix for filesize returning 0 if file not found
#rb none
#tests bugit now works
#jira OR-20488
Change 2991290 on 2016/05/26 by Mieszko.Zielinski
Added a static flag to NavigationSystem that can be used to short-circuit dynamic navigation related functions #UE4
Will save some perf on PS4 in Orion, since clients do use navigation system there.
#rb Lukasz.Furman
#test golden path
Change 2991288 on 2016/05/26 by Mieszko.Zielinski
CL#2990243 manually redone in for Orion #UE4
Original description:
> Fixed behavior tree observers not being applied correctly
#rb Lukasz.Furman
#test golden path
Change 2991271 on 2016/05/26 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2990688
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2991269 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2991185 on 2016/05/26 by Mieszko.Zielinski
Fixed UAITask_MoveTo not releasing paths properly, or clearing path observing when task is being reused #UE4
Also, fixed FNavigationPath::DoneUpdating not converting ENavPathUpdateType properly
#rb Lukasz.Furman
#test golden path
Change 2990788 on 2016/05/25 by Marcus.Wassmer
Fix deprecation warning
#rb none
#test none
Change 2990582 on 2016/05/25 by Marcus.Wassmer
Now that render commands are enqueued again on servers, we shouldn't outright crash if an allocation gets to nullrhi
#codereview Dmitry.Rekman
#rb none
#test none
Change 2990450 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#rb:David.Hill
#jira:OR-22233
#test:PC
Change 2990199 on 2016/05/25 by Marcus.Wassmer
Remove experimental HDR support in tonemapper. Brings tonemapper cost back down into line
#rb none
#codereview Michael.Noland,Brian.Karis
Change 2989908 on 2016/05/25 by Andrew.Grant
Changed warning about DDC cache full to Display
#rb none
#tests compiled
Change 2989903 on 2016/05/25 by Mieszko.Zielinski
Made BT component ignore subtree injection request if relevant BT nodes already use indicated asset #UE4
#rb Lukasz.Furman
#test golden path
Change 2989795 on 2016/05/25 by Ryan.Gerleve
Fix for storing the correct URL on the pending net game for replay playback.
Re-implemented this fix from Dev-Networking CL 2981198, fixes deathcam after latest main integration.
#tests played a reply, enabled deathcam
#rb none
Change 2989483 on 2016/05/25 by David.Ratti
ToggleJuggernaut cheat
#rb danY
#tests pie
Change 2989384 on 2016/05/25 by Graeme.Thornton
Extra chunk decryption tests and logging to help diagnose the random failure we're seeing in the wild
- retry decrypt three times
- after the first attempt, re-decrypt original source, just incase the decrypt cache has been corrupted
#tests cooked pc client + dedicated server
#rb robert.manuszewski
Change 2989225 on 2016/05/24 by Dmitry.Rekman
Fix rare crash in Linux threading code (OR-22193).
- Sometimes, for some reason, freeing memory for an alternate thread from a thread in PostRun() can crash because the jemalloc apparently does not have an arena for this thread anymore.
- This change works around the problem by allocating the said memory statically in LinuxThread class.
#rb none
#codereview Bob.Tellez, David.Vossel
#tests Compiled Linux server, started it.
Change 2988768 on 2016/05/24 by Uriel.Doyon
Added support for SkinnedMesh in the texture streaming MeshCoordSize accuracy viewmode.
#RB marcus.wassmer
#tests loaded game and editor
Change 2988462 on 2016/05/24 by Mieszko.Zielinski
Added a piece of logging to both scenarios or movement aborting in UPathFollowingComponent::UpdatePathSegment to be able to tell them appart while reading the log #Orion
#rb Lukasz.Furman
#test golden path
Change 2988036 on 2016/05/24 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2987910
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2988035 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2987457 on 2016/05/23 by Mieszko.Zielinski
Redone changes from CL#2981193 #UE4
Original description: fixed missing observers in behavior tree when dynamic subtree is changed while waiting for full restart (out of nodes)
#rb Lukasz.Furman
#test golden path
Change 2987388 on 2016/05/23 by Olaf.Piesche
Replicating CL 2985226; don't push mesh emitter transform to pixel shader unless used in the material graph
#rb marcus.wassmer
#tests editor game PC
Change 2986255 on 2016/05/22 by Mieszko.Zielinski
Manually resolving conflict that stoped robomerge from Main to DG #Orion
#rb none
#test compile
#codereview Jason.Bestimt
Change 2986209 on 2016/05/21 by Andrew.Grant
Removed hitchunter logging from http thread
#rb none
#tests compiled
Change 2986202 on 2016/05/21 by Andrew.Grant
Merging //UE4/Main @ 2981382 from //UE4/Orion-Staging
#rb none
#tests engine & game QA passed, built locally
Change 2985899 on 2016/05/20 by Rob.Cannaday
Move PS4 HTTP processing to HTTP thread
#tests golden path
#rb dmitry.rekman
Change 2985884 on 2016/05/20 by Bart.Bressler
Fix issue where oodle wasn't enabled in shipping correctly.
#rb john.pollard
#tests ran orion server in shipping and connecting with a client
Change 2985778 on 2016/05/20 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2985753
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2985774 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2985760 on 2016/05/20 by Rob.Cannaday
Second pass on HTTP threading
Move threaded objects into separate class, FHttpThread. FCurlHttpThread derives from FHttpThread and the curl multi work is performed in FCurlHttpThread
Removed code that limited number of curl easy requests that were added to the multi simultaneously / per frame as now that curl work is performed on a separate thread the performance no longer directly impacts the game thread
Remove lock from CurlHttp and instead of use FThreadSafeCounter
#rb dmitry.rekman
#tests golden path (PC & PS4)
Change 2985658 on 2016/05/20 by John.Pollard
Fixed issue with cached http replay results making time go backwards
#rb none
#tests replays
Change 2985640 on 2016/05/20 by Jason.Bestimt
#ROBOMERGE-AUTHOR: david.ratti
Ability System: call OnRemove event for gameplay cues that are mispredicted. Previously if a looping GC was predictively added, it would only get the OnRemove event if the replicated GC was removed. In the case of a mis prediction there is no replicated version, so the OnRemove was never called and cleanup was never happening.
#rb FrankG
#tests multi pie
#ROBOMERGE-SOURCE: CL 2985638 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2985631 on 2016/05/20 by Jason.Bestimt
#ROBOMERGE-AUTHOR: david.ratti
Fast TArray serialization fixes:
1. Fix case where Array ReplicationKey has changed no items between base and current state have changed. Previously server would early out and not send an update: but this needs be sent so that the client can potentially perform an implicit delete.
This fixes the case where client TArray would have stale items hanging around until a new update was sent (which could potentially be never).
2. Fix case where an array item would be deleted by both explicit delete and implicit delete: causing other items in the array to be deleted (!).
#rb frankG, pollard
#tests golden path
[CodeReviewed] Bob.Tellez, Billy.Bramer, Ben.Zeigler
#ROBOMERGE-SOURCE: CL 2985629 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2985542 on 2016/05/20 by Daniel.Lamb
Added per package stats.
Optimized cooker, moved FTextureSource::Compress from UTexture::Presave to UTexture::Serialize so we can avoid it in the cooker.
#rb Robert.Manuszewski, Andrew.Grant, Marcus.Wassmer
#test cook paragon, save packages paragon editor
Change 2985152 on 2016/05/20 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2985092
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2985150 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2985001 on 2016/05/20 by Chris.Wood
Move fullcrashdump location for Paragon from QA deptartment storage to Paragon project storage. Changes CrashReportClient config only.
Change 2984839 on 2016/05/20 by Robert.Manuszewski
Renaming some confusing function names and updating messages related to exception handling.
#rb none
#tests Cooked Win64 Client and Server, Tested crash reporting in cooked game
Change 2984517 on 2016/05/19 by Mike.Larson
Adjusted 'PlatformHeadroom' audio volume settings to DB-3 on both Windows and PS4
Change 2983932 on 2016/05/19 by jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2983814
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2983921 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
#ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human.
#CodeReview: jason.bestimt
Change 2983864 on 2016/05/19 by Wes.Hunt
Added missing assignment copy/move ops to FAnalyticsEventAttribute. Doh, should have looked at more usages of PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS...
#codereview:steve.robb
#rb none
#tests compiled Orion Editor Win64
Change 2983780 on 2016/05/19 by Wes.Hunt
Modernize FAnalyticsEventAttribute usage. #jira UE-30551.
Replaced FAnalyticsEventAttribute various ctors with a perfect forwarding one that can convert them to strings.
* The Name must be convertible to a string
* The value must be convertible to a string via an AnalyticsConversion::ToString() overload.
* Added/expanded the supported conversions to strings to analytics attribute values. See AnalyticsConversion.h which contains all the previously supported conversions and more.
Added MakeAnalyticsEventAttributeArray(), which uses variadic templates to create an array of event attributes inline, which can be passed to RecordEvent[Json] and efficiently taken ownership of:
RecordEvent("EventName", MakeAnalyticsEventAttributeArray(
"Attr1", false,
"Attr2", 42.0,
"Attr3", SomeMap,
"Attr4", SomeArray);
#codereview:steve.robb,david.decker,sam.spiro
SamS - you've been asking for better attribute conversion facilities for years. Finally got it, haha.
SteveR - I only added copy/move ctors to FAnalyticsEventAttribute. Do I also need to explicitly add the copy/move assignment ops?
DavidD - This will allow you to create attributes a lot more easily and efficiently now.
#rb steve.robb,david.decker
#tests orion editor runs
Change 2983702 on 2016/05/19 by Daniel.Lamb
Renumbered cooking stats to be more correct
#rb Wes.Hunt
#test cook paragon.
Change 2983392 on 2016/05/19 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2983342
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2983391 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2982910 on 2016/05/18 by Marcus.Wassmer
Don't fail entire deployments because obsolete manifest can't find the files to delete
#rb none
#codereview Peter.Sauerbrei
#test none
Change 2982902 on 2016/05/18 by Marcus.Wassmer
Disable HTTP networkfilesystem because it constantly crashes cookonthefly servers. platform team is aware
#rb none
#test cookonthefly
Change 2982837 on 2016/05/18 by David.Ratti
Spot merge safety check in ~FAgggregator. From BobT CL 2966255.
#rb none
#tests compile
Change 2982723 on 2016/05/18 by Wes.Hunt
Analytics no longer adds IsEditor attribute to all events. Wasn't actually used by anyone anymore. #jira UE-30559
#rb none
#tests none
Change 2982716 on 2016/05/18 by Wes.Hunt
Remove Analytics code to divert legacy code to source data collector. #jira UE-27794
#rb none
#tests run orion editor
Change 2982707 on 2016/05/18 by Wes.Hunt
AnalyticsET support for arbitrary Json events. #jira UE-30375
* AnalyticsET supports a new API, RecordEventJson.
* API supports rvalue refs to avoid unnecessary copies of the attribute array.
/**
* Sends an event where each attribute value is expected to be a string-ified Json value.
* Meaning, each attribute value can be an integer, float, bool, string,
* arbitrarily complex Json array, or arbitrarily complex Json object.
*
* The main thing to remember is that if you pass a Json string as an attribute value, it is up to you to
* quote the string, as the string you pass is expected to be able to be pasted directly into a Json value. ie:
*
* {
* "EventName": "MyStringEvent",
* "IntAttr": 42 <--- You simply pass this in as "42"
* "StringAttr": "SomeString" <--- You must pass SomeString as "\"SomeString\""
* }
*
* @param EventName The name of the event.
* @param AttributesJson array of key/value attribute pairs where each value is a Json value (pure Json strings mustbe quoted by the caller).
*/
virtual void RecordEventJson(const FString& EventName, TArray<FAnalyticsEventAttribute>&& AttributesJson) = 0;
#codereview:david.decker
#rb david.decker
#tests run orion editor
Change 2982057 on 2016/05/18 by David.Ratti
GameplayCue loading - fix issue where GCM would invoke fully loaded when there were still UGameplayCueNotify_Statics to be loaded.
#rb Ori.Cohen
#tests golden path
Change 2981943 on 2016/05/18 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2981896
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2981942 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2981812 on 2016/05/18 by Robert.Manuszewski
Suspending thread heartbeat when a message box is being displayed. Fixes false positives in hand detection.
#rb Steve.Robb
#tests Cooked and launched win64 client and server
Change 2981718 on 2016/05/18 by Robert.Manuszewski
Changed how suspending/resuming thread heartbeat works: it will no longer create a heartbeat for a thread that hasn't sent any heartbeats yet.
Reimplementing CL #2951209 from Dev-Core
#rb Steve.Robb
#tests None
Change 2981108 on 2016/05/17 by Wes.Hunt
Fix perfect forwarding constructor in CookStats stuff.
#rb none
#tests investigating assembly output of cook stats code.
#codereview:daniel.lamb
Change 2981028 on 2016/05/17 by Nick.Atamas
Fixing hittest grid with virtual cursor.
We now prefer any directly hit-test widgets with higher layer ids to those discovered through a distance search.
#rb none
#test Game menus
#codereview Cody.Haskell,Matt.Kuhlenschmidt,Sammy.James,Dan.Hertzka
Change 2980963 on 2016/05/17 by Marc.Audy
Fix shadowed variable
#rb None
#tests Compile
Change 2980917 on 2016/05/17 by Daniel.Lamb
Removed script packages from unable to find packages warning.
#rb Andrew.Grant
#test cook paragon
Change 2980838 on 2016/05/17 by Marc.Audy
Shave some time out of UPlayerInput::ProcessInputStack
#rb Michael.Noland
#tests Input works, performance improvement
Change 2980710 on 2016/05/17 by Michael.Noland
Engine: Added helpful comments to the LOD visualization colors
#rn
#rb david.ratti
#tests none
Change 2980706 on 2016/05/17 by Michael.Noland
Engine: Removed unused setting bAllowDebugViewmodesOnConsoles (replaced some time ago by r.ForceDebugViewModes)
#rn
#rb david.ratti
#tests Ran a cooked build with only r.ForceDebugViewModes=1 and confirmed that debug view modes still worked
Change 2980703 on 2016/05/17 by Michael.Noland
Blueprints: Added support for emitting the Blueprint Description as tooltip metadata for the compiled Blueprint class (displayed in class pickers, etc...)
#rb david.ratti
#tests Tested on a Blueprint in Paragon
#codereview mike.beach
#rn
Change 2980702 on 2016/05/17 by Michael.Noland
Rendering: Added ProfileGPU to the console autocomplete list
#rb david.ratti
#tests Tried typing Profile in the console and verified that the completion worked and tooltip was displayed
#rn
Change 2980697 on 2016/05/17 by Michael.Noland
Landscape: Added a 'resource' name for landscape to improve display in the mesh summary list of ProfileGPU
#codereview jack.porter
#rb david.ratti
#tests Used ProfileGPU while standing on some terrain
#rn
Change 2980692 on 2016/05/17 by Michael.Noland
Landscape: Added a scalability CVar for landscape LOD biasing (r.LandscapeLODBias)
#codereview jack.porter
#rb david.ratti
#tests Ran around in Paragon with various r.LandscapeLODBias values
#rn
Change 2980630 on 2016/05/17 by Daniel.Lamb
Added more warnings to help track down crash in paragon cook.
#rb Andrew.Grant
#test cook orion
Change 2980585 on 2016/05/17 by Jamie.Dale
Fixed an issue where the editable text caret could become invisible when using UI scaling
It's now clamped to a min draw size of 1px.
#jira OR-18524
#rb none
#tests Built and ran the game. Verified that the caret now appears where it didn't before.
Change 2979908 on 2016/05/16 by jason.bestimt
#ORION_MAIN - Merge 26.2 @ CL 2979859
#RB:none
#Tests:none
#CodeReview: jaymee.stanford
Change 2979472 on 2016/05/16 by Nick.Atamas
Added support for not clearing the render target when rendering a widget.
#rb Nick.Darnell
#test PIE w/ minimap
Change 2979434 on 2016/05/16 by Dmitry.Rekman
Server: Add reporting of frame time without sleep.
- Also add NumClients to each event so it's easy to filter events that didn't have 10 clients.
#rb none
#tests Built Linux server, ran match on a compatible content.
Change 2979267 on 2016/05/16 by Dmitry.Rekman
Improvements in server hitch hunting / alerting.
- Add an analytics event for unplayable conditions.
- Send % of frames we hitched and time we spent hitching.
- Send more detail about the machine.
#rb none
#tests Built Linux server and Windows client, played a match.
Change 2979030 on 2016/05/16 by Andrew.Grant
Added quick way to reasign GUIDs (-AssignNewMapGuids) to map objects
#rb none
#tests used in editor
Change 2978914 on 2016/05/16 by David.Ratti
Fix issue causing gameplay cue parameters not properly being passed through in cases where GA adds/removes gameplay cue.
#rb DanY
#tests multi pie
#codereview Dave.Ewing
Change 2978681 on 2016/05/16 by Martin.Wilson
Performance improvements for recalc required bones, removed a lot of unneeded array iterating. Reduces cost to roughly 30% of original code.
#rb Thomas.Sarkanen
#tests PS4 games, ded server
Change 2978098 on 2016/05/15 by Andrew.Grant
Clearer error message
#rb none
#tests ran game
Change 2977597 on 2016/05/13 by Olaf.Piesche
Merging using //UE4/Dev-Rendering->//Orion/Dev-General; fixes for beam particle selection code
#rb martin.mittring
#tests PC editor game
Change 2977531 on 2016/05/13 by Daniel.Lamb
Added cooking stat for PreSave callback.
#rb Wes.Hunt
#test cook paragon
Change 2977340 on 2016/05/13 by jason.bestimt
#ORION_MAIN - Merge 26@ CL 2977290
#RB:none
#Tests:none
#ROBOMERGE-SOURCE: CL 2977329 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
#ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human.
#CodeReview: jason.bestimt
Change 2977139 on 2016/05/13 by Jason.Bestimt
#ROBOMERGE-AUTHOR: jon.lietz
OR-20830 only allow the periodic effects from a gameplay volume trigger first application triggers on BeginOverlap and Enable volume.
#RB DaveR
#test tracked when the poinson from an active card is applied and not applied
#ROBOMERGE-SOURCE: CL 2977135 in //Orion/Main/...
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2976741 on 2016/05/13 by David.Ratti
GameplayCues that are triggered off animation notifies on the non-primary mesh will now properly attach to that non primary mesh.
#rb lietz
#test pie, golden path
Change 2976715 on 2016/05/13 by Jason.Bestimt
#ROBOMERGE-AUTHOR: andrew.grant
[NULL MERGE]
Fix for bad merge
#rb none
#tests built automation
#ROBOMERGE-SOURCE: CL 2976680 in //Orion/Release-0.26/... via CL 2976712 via CL 2976713 via CL 2976714
#ROBOMERGE-BOT: ORION (Main -> Dev-General)
Change 2976679 on 2016/05/13 by Robert.Manuszewski
Tweaks to DLL injection detection code
#rb Steve.robb
#tests cooked Win64 client
Change 2976670 on 2016/05/13 by Robert.Manuszewski
UAT: Arxan upgrade to 3.9.1
#rb Ben.Marsh
#tests Win64 cooked client (test config)
Change 2976654 on 2016/05/13 by Graeme.Thornton
Shadowed variable warning fix
#rb none
#tests compiled win64/ps4 client
Change 2976645 on 2016/05/13 by Graeme.Thornton
Refactoring of resident mip calculations
- Cooker takes into account the same compression block thresholds that the runtime previously used
- Runtime doesn't attempt to calculate which mips to perma-load, but just looks at the ones whose bulk data is flagged as end-of-file or seperate-file
#rb nick.penwarden
#tests win64/ps4 client builds, golden path
[CL 3000872 by Andrew Grant in Main branch]
- Two actual bugs were fixed (GitSourceControlUtils.cpp, VisualStudioSourceCodeAccessor.h)
- (These errors were found by using the Clang compiler on Windows platform)
#codereview marc.audy
[CL 2532216 by Mike Fricker in Main branch]
FScopedSlowTask has been refactored to better allow for nesting of slow operations. This allows us to cascade nested scopes and provide accurate feedback on slow tasks. FScopedSlowTasks now work together when nested inside sub functions. Break up long functions that contain calls to multiple nested FScopedSlowTasks with FScopedSlowTask::EnterProgressFrame().
Example Usage:
void DoSlowWork()
{
FScopedSlowTask Progress(2.f, LOCTEXT("DoingSlowWork", "Doing Slow Work..."));
// Optionally make this show a dialog if not already shown
Progress.MakeDialog();
// Indicate that we are entering a frame representing 1 unit of work
Progress.EnterProgressFrame(1.f);
// DoFirstThing() can follow a similar pattern of creating a scope divided into frames. These contribute to their parent's progress frame proportionately.
DoFirstThing();
Progress.EnterProgressFrame(1.f);
DoSecondThing();
}
This addresses TTP#338602 - NEEDS REVIEW: Editor progress bars nearly always just show 100%, don't offer useful indication of progress
[CL 2322391 by Andrew Rodham in Main branch]
- Fixed bad casting in "slow task" window creation code
- Also added comment about treating warnings as errors with Clang
[CL 2260828 by Mike Fricker in Main branch]