Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/System/Utils.cs

1299 lines
43 KiB
C#
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using System.IO;
using System.Diagnostics;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Linq;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
using Tools.DotNETCommon;
namespace UnrealBuildTool
{
/// <summary>
/// Utility functions
/// </summary>
public static class Utils
{
/// <summary>
/// Whether we are currently running on Mono platform. We cache this statically because it is a bit slow to check.
/// </summary>
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
#if NET_CORE
public static readonly bool IsRunningOnMono = true;
#else
public static readonly bool IsRunningOnMono = Type.GetType("Mono.Runtime") != null;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
#endif
/// <summary>
/// Searches for a flag in a set of command-line arguments.
/// </summary>
public static bool ParseCommandLineFlag(string[] Arguments, string FlagName, out int ArgumentIndex)
{
// Find an argument with the given name.
for (ArgumentIndex = 0; ArgumentIndex < Arguments.Length; ArgumentIndex++)
{
string Argument = Arguments[ArgumentIndex].ToUpperInvariant();
if (Argument == FlagName.ToUpperInvariant())
{
return true;
}
}
return false;
}
/// <summary>
/// Regular expression to match $(ENV) and/ or %ENV% environment variables.
/// </summary>
static Regex EnvironmentVariableRegex = new Regex(@"\$\((.*?)\)|\%(.*?)\%", RegexOptions.None);
/// <summary>
/// Resolves $(ENV) and/ or %ENV% to the value of the environment variable in the passed in string.
/// </summary>
/// <param name="InString">String to resolve environment variable in.</param>
/// <returns>String with environment variable expanded/ resolved.</returns>
public static string ResolveEnvironmentVariable(string InString)
{
string Result = InString;
// Try to find $(ENV) substring.
Match M = EnvironmentVariableRegex.Match(InString);
// Iterate over all matches, resolving the match to an environment variable.
while (M.Success)
{
// Convoluted way of stripping first and last character and '(' in the case of $(ENV) to get to ENV
string EnvironmentVariable = M.ToString();
if (EnvironmentVariable.StartsWith("$") && EnvironmentVariable.EndsWith(")"))
{
EnvironmentVariable = EnvironmentVariable.Substring(1, EnvironmentVariable.Length - 2).Replace("(", "");
}
if (EnvironmentVariable.StartsWith("%") && EnvironmentVariable.EndsWith("%"))
{
EnvironmentVariable = EnvironmentVariable.Substring(1, EnvironmentVariable.Length - 2);
}
// Resolve environment variable.
Result = Result.Replace(M.ToString(), Environment.GetEnvironmentVariable(EnvironmentVariable));
// Move on to next match. Multiple environment variables are handled correctly by regexp.
M = M.NextMatch();
}
return Result;
}
/// <summary>
/// Expands variables in $(VarName) format in the given string. Variables are retrieved from the given dictionary, or through the environment of the current process.
/// Any unknown variables are ignored.
/// </summary>
/// <param name="InputString">String to search for variable names</param>
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3233612 on 2016/12/13 by Ben.Marsh UGS: Fix cases where precompiled binaries are submitted for a content change. Change 3235584 on 2016/12/14 by Ben.Marsh UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead. Change 3235741 on 2016/12/14 by Ben.Marsh UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself. Change 3238176 on 2016/12/16 by Ben.Marsh UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs. Change 3238249 on 2016/12/16 by Ben.Marsh UBT: Add attribute-driven command line parser. Change 3238462 on 2016/12/16 by Ben.Marsh UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly. Change 3238564 on 2016/12/16 by Ben.Marsh UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor. Change 3239919 on 2016/12/19 by Ben.Marsh UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined. Change 3240061 on 2016/12/19 by Ben.Marsh UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more. Change 3240175 on 2016/12/19 by Ben.Marsh UBT: Add the target name and project file location to the target rules. Change 3240490 on 2016/12/19 by Ben.Marsh UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs. Change 3240717 on 2016/12/20 by Ben.Marsh UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line. Change 3240718 on 2016/12/20 by Ben.Marsh UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT. Change 3241002 on 2016/12/20 by Ben.Marsh UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance. Change 3241027 on 2016/12/20 by Ben.Marsh Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency. Change 3241055 on 2016/12/20 by Ben.Marsh UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated. Change 3241156 on 2016/12/20 by Ben.Marsh Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using. Change 3241205 on 2016/12/20 by Ben.Marsh Replace all uses of TargetRules.TargetType with TargetType. Change 3241881 on 2016/12/21 by Ben.Marsh UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path. Change 3241895 on 2016/12/21 by Ben.Marsh UBT: Remove toolchain support for Windows XP. Change 3241908 on 2016/12/21 by Ben.Marsh UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field. Change 3242835 on 2016/12/22 by Ben.Marsh UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice. Change 3242837 on 2016/12/22 by Ben.Marsh Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds. Change 3242923 on 2016/12/22 by Ben.Marsh Build: Fixes for conforming incremental workspaces: * P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason. * Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces. Change 3242961 on 2016/12/22 by Ben.Marsh UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before. Change 3242981 on 2016/12/22 by Ben.Marsh UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT. Change 3242999 on 2016/12/22 by Ben.Marsh UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes. Change 3243022 on 2016/12/22 by Ben.Marsh UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line. Change 3243083 on 2016/12/22 by Ben.Marsh UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules. Change 3243090 on 2016/12/22 by Ben.Marsh UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work. Change 3243423 on 2016/12/23 by Ben.Marsh UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes. Change 3243516 on 2016/12/23 by Ben.Marsh UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs) Change 3244020 on 2016/12/28 by Ben.Marsh UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties. Change 3244074 on 2016/12/28 by Ben.Marsh UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary. Change 3244076 on 2016/12/28 by Ben.Marsh UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead. Change 3244083 on 2016/12/28 by Ben.Marsh UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes. Change 3244441 on 2016/12/31 by Ben.Marsh UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur. Change 3244687 on 2017/01/03 by Matthew.Griffin Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs Change 3246112 on 2017/01/04 by Ben.Marsh UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build. Change 3246223 on 2017/01/04 by Ben.Marsh UBT: Prevent version manifests being overridden if a file is not being built as part of the target. Change 3246387 on 2017/01/04 by Ben.Marsh UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it. Change 3247004 on 2017/01/04 by Ben.Marsh UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place. Change 3247250 on 2017/01/04 by Ben.Marsh UBT: Prevent precompiled binaries being added to the list of app binaries twice. Change 3247594 on 2017/01/05 by Ben.Marsh Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build. Change 3247763 on 2017/01/05 by Ben.Marsh UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them. Change 3247775 on 2017/01/05 by Ben.Marsh UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance. Change 3247811 on 2017/01/05 by Ben.Marsh EC: Add a batch file for testing postp filters. Change 3247839 on 2017/01/05 by Ben.Marsh EC: Include the name of the file being compiled when parsing MSVC errors and warnings. Change 3248101 on 2017/01/05 by Ben.Marsh UBT: Fix Android support for force included headers. Change 3248533 on 2017/01/05 by Ben.Marsh PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott) Change 3249205 on 2017/01/06 by Ben.Marsh UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present. Change 3249249 on 2017/01/06 by Ben.Marsh UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines. Change 3249486 on 2017/01/06 by Ben.Marsh UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies. Change 3249736 on 2017/01/06 by Ben.Marsh UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object. Change 3250179 on 2017/01/07 by Ben.Marsh Fix creating installed build when root directory contains a space in the name. Change 3250181 on 2017/01/07 by Ben.Marsh UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms. Change 3250223 on 2017/01/07 by Ben.Marsh UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together. Change 3250233 on 2017/01/07 by Ben.Marsh UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out. Change 3250241 on 2017/01/07 by Ben.Marsh UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules. Change 3250400 on 2017/01/08 by Ben.Marsh UBT: Move executor config settings onto the executor instances. Change 3257708 on 2017/01/13 by Ben.Marsh UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change. Change 3260535 on 2017/01/17 by Ben.Marsh Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job. Change 3260875 on 2017/01/17 by Ben.Marsh EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced. To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile. Change 3261724 on 2017/01/18 by Ben.Marsh Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job. Change 3261756 on 2017/01/18 by Ben.Marsh IncludeTool: Prevent matching a full enum declaration as a forward declaration. Change 3261932 on 2017/01/18 by Ben.Marsh EC: Add support for specifying days of the week in schedules. The following syntaxes are supported: "Monday, Tuesday and Wednesday at 10:30" "Daily except Sunday and Wednesday at 14:30" Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name. #jira UEB-729 Change 3262676 on 2017/01/18 by Ben.Marsh UBT: Split UBTMakefile into its own file. (From PR #3106) Change 3263893 on 2017/01/19 by Ben.Marsh UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc... Change 3264291 on 2017/01/19 by Ben.Marsh UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts. Change 3264534 on 2017/01/19 by Ben.Marsh UBT: Include plugin config files in generated projects. Change 3264571 on 2017/01/19 by Ben.Marsh UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files. Change 3265745 on 2017/01/20 by Ben.Marsh UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance. Change 3265777 on 2017/01/20 by Ben.Marsh UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode. Change 3268314 on 2017/01/23 by Ben.Marsh UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed. Change 3269601 on 2017/01/24 by Ben.Marsh UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled. Change 3269607 on 2017/01/24 by Ben.Marsh UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that. Change 3269608 on 2017/01/24 by Ben.Marsh UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated. Change 3271062 on 2017/01/24 by Ben.Marsh UBT: Fixes for bugs detected by PVS Studio (PR #3161) Change 3272421 on 2017/01/25 by Ben.Marsh Fix commends regarding DDC in BaseEngine.ini #jira UE-41076 Change 3272810 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272935 on 2017/01/25 by Ben.Marsh Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS. Change 3274167 on 2017/01/26 by Ben.Marsh Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables. #jira UE-36457 Change 3275557 on 2017/01/27 by Ben.Marsh Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is. Change 3275628 on 2017/01/27 by Ben.Marsh UBT: Splitting configuration files into one class per-file. Change 3276784 on 2017/01/29 by Ben.Marsh Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it. Change 3276792 on 2017/01/29 by Ben.Marsh UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT. Change 3277263 on 2017/01/30 by Ben.Marsh IncludeTool: Merging various fixes. * Fix warnings about #include directives after first code block from parsing monolithic headers. * Fix exception on startup if the intermediate directory does not already exist. * Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location. * Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare. * Remove (unused) code which makes assumptions about files ending with "Classes.h". * Add a verbose per-file output log to aid with debugging. * Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default. * Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list. * Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant. * Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first. * Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't. Change 3277307 on 2017/01/30 by Ben.Marsh UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line. [CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
/// <param name="AdditionalVariables">Lookup of variable names to values</param>
/// <returns>String with all variables replaced</returns>
public static string ExpandVariables(string InputString, Dictionary<string, string> AdditionalVariables = null)
{
string Result = InputString;
for (int Idx = Result.IndexOf("$("); Idx != -1; Idx = Result.IndexOf("$(", Idx))
{
// Find the end of the variable name
int EndIdx = Result.IndexOf(')', Idx + 2);
if (EndIdx == -1)
{
break;
}
// Extract the variable name from the string
string Name = Result.Substring(Idx + 2, EndIdx - (Idx + 2));
// Find the value for it, either from the dictionary or the environment block
string Value;
if (AdditionalVariables == null || !AdditionalVariables.TryGetValue(Name, out Value))
{
Value = Environment.GetEnvironmentVariable(Name);
if (Value == null)
{
Idx = EndIdx + 1;
continue;
}
}
// Replace the variable, or skip past it
Result = Result.Substring(0, Idx) + Value + Result.Substring(EndIdx + 1);
}
return Result;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4285612) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3836829 by Ben.Marsh UBT: Fix ability to precompile plugins from installed engine builds. 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 4042043 by Steve.Robb GitHub #4705 : Added weak lambda's for delegates and multicast delegates. Change 4042056 by Robert.Manuszewski Optimized Mark Phase of GC by up to 10ms by making it run in parallel and removing a huge array presize which we didn't need. Change 4042104 by Robert.Manuszewski Set the minimum GC cluster size to 5 so that GC doesn't have to process micro clusters which are more expensive than processing individual objects + Exposed the minimum cluster size to ini and project settings as gc.MinGCClusterSize + Added the ability to sort clusters by name/object count/mutable object count/referenced clusters count when dumping them with gc.ListClusters command Change 4042377 by Robert.Manuszewski Reworked how GC and other threads (ALT specifically) interact - GC will now notify the ALT it wants to run and ALT will immediately try to finish its current work to allow that. Also the entire ALT tick is now protected against GC running at the same time to improve ALT stability. + added gc.ForceCollectGarbageEveryFrame console variable that triggers a forced GC every frame Change 4042427 by Robert.Manuszewski Changed FGCCSyncObject to use events when waiting for GC to finish so that it doesn't spin on non-game threads when GC is running Change 4042482 by Robert.Manuszewski Unhashing unreachable objects (ConditionalBeginDestroy) will now also be done incrementally, just like the purge phase of Garbage Collection Change 4042635 by Robert.Manuszewski Fix for a potential assert when incremental purge garbage is pending and something forces a full purge Change 4044092 by Steve.Robb Fix for forward declared CoreUObject weakobject types in delegates when building in Clang. Change 4044102 by Robert.Manuszewski Fix for a possible hang when worker threads are preventing GC from running and something is later trying to FlushAsyncLoading with the Async Loading Thread enabled Change 4044113 by Steve.Robb Another Clang fix. Change 4044160 by Robert.Manuszewski Disregard For GC pool will now be enabled by default in cooked builds Change 4044287 by Steve.Robb Typo fix. Change 4047723 by Graeme.Thornton TBA: Fixes for import/export name cache and object resolving Change 4048015 by Graeme.Thornton TBA: Weak/Soft/Lazy pointer serialization changes * Remove FWeakObjectPtr::Serialize, move it's logic into, and replace usages of with calls to, FArchiveUObject::SerializeWeakObjectPtr(). Ensures that something is always sent to the archive so that structured archives can be kept happy in the future. * Added Weak/Soft/Lazy pointer handling to the structured archive slot interface and all the formatters. Binary formatters just forward the call onto their inner and text archives store as a string path reference. * FArchiveUObjectFromStructuredArchive caches all these pointer types and stores indices in the binary block, same as with a UObject*. All pointers are then forwarded to the underlying formatter in one go on finalization. Change 4048021 by Steve.Robb Fix for binding an unbound TFunction to another TFunction with a different signature. Also all null pointers now count as unbindings, not just nullptr. TIsMemberPointer added. TIsATFunction and TIsATFunctionRef renamed to remove the 'A's. Change 4048544 by Robert.Manuszewski Fixing ConditionalBeginDestroy profiling after changes to incremental CBD. Change 4051028 by Graeme.Thornton TBA: ArchiveFromStructuredArchive adapter uses Inner to determine if it is outputting to text, and sets it's own ArIsTextFormat to false Change 4051056 by Graeme.Thornton TBA: High level tagged property / UObject base class text serialization - UObject serialize converted to structured archive - Properties written to text individually with text tags, and then binary adapted values - Only saves, doesn't load Change 4051111 by Graeme.Thornton TBA: Temporarily disable loading of text assets until tagged property serialization path is fixed up Change 4051154 by Graeme.Thornton TBA: Convert a few uobject serializers to structured archive format for example purposes Change 4051181 by Graeme.Thornton TBA: Added default structured archive implementation of SerializeItem to UProperty, which just calls the FArchive version on an FArchiveUObjectFromStructuredArchive adapter. Implemented structured archive SerializeItem for UArrayProperty Change 4051197 by Graeme.Thornton TBA: ObjectProperty text serialization Change 4051216 by Graeme.Thornton Restored a modified FWeakObjectPtr::Serialize function to keep backwards compatibility in code I don't have access to. Change 4051261 by Graeme.Thornton TBA: Convert UMetaData to structured archive Change 4051374 by Steve.Robb Incorrect assert removed. Change 4051562 by Robert.Manuszewski Adding stats for the new GC internal functions Change 4051614 by Graeme.Thornton TBA: Removed UProperty::SerializeItem(FArchive, ...) and replaced with UProperty::SerializeItem(FStructuredArchive::FSlot, ...). Fixed up most of them to work properly and added adapters in for any that were non-trivial. Change 4052512 by Graeme.Thornton TBA: Temporary workaround for softobjectptr and lazyobjectptr uproperties not serialization anything when they know the archive is a reference collector. They should always be serializing their pointers and letting the underlying archive itself ignore them. Change 4053917 by Robert.Manuszewski Clustered objects from clusters that are no longer reachable will now be marked as unreachable immediately when gathering unreachable objects Change 4053919 by Robert.Manuszewski Added the ability to disable incremental BeginDestroy in ini/project settings Change 4055518 by Daniel.Lamb Fixup for deterministic audio generation issue. Submitted on behalf of Rich.Whitehouse #jira nojira #test prefilght automated test. Change 4056854 by Graeme.Thornton TBA: Added a test asset to EngineTest which contains all the different property types and test cases. Change 4056858 by Graeme.Thornton TBA: Updated USetProperty to proper structured archive usage Change 4056872 by Graeme.Thornton TBA: Add map property field to test object Change 4056873 by Graeme.Thornton TBA: Convert UMapProperty to full structured archive Change 4056994 by Graeme.Thornton TBA: Converted FText over to structured archive. Implemented saving, but not loading. Change 4059728 by Ben.Marsh UBT: Add support for using adaptive non-unity builds when the engine and project are in separate repositories. Change 4059805 by Graeme.Thornton Fixed typo in text serialization. Fixes CIS automation test errors Change 4060007 by Graeme.Thornton TBA: FArchiveFromStructuredArchive will now access it's host slot lazily, i.e. only when a value is actually written to the archive. Change 4060092 by Stefan.Boberg Added optimized Windows console window output path to GenericConsoleOutput since this slowed down cooking considerably (2 minutes spent in wprintf alone for one large dataset) When stdout is attached to a console we use the WriteConsoleW function instead of wprintf since the latter is very slow especially in unbuffered mode which the engine currently configures for stdout (see setvbuf call in LaunchEngineLoop.cpp). At some point we should reconsider this buffering policy since it's likely to slow down other platforms as well but I wanted to do a safe change for now as I don't yet fully understand why the setvbuf call is there in the first place. Change 4060108 by Stefan.Boberg Introduced some additional target platform utilities to help with asset cook optimizations * We now assign each ITargetPlatform a zero-based ordinal value * Introduced FTargetPlatform and FTargetPlatformSet types to help store platform references and platform sets efficiently. These are not currently used in the engine but are designed to replace the existing ITargetPlatform/string/FName representations in the cooking data structures. Change 4060143 by Graeme.Thornton Undo //UE4/Dev-Core/Engine/Source/Runtime/... changelist 4060007 Needs some other changes that I haven't checked in yet... Change 4062432 by Ben.Marsh Fix error message when enumerating P4 changes. Change 4062648 by Ben.Marsh Add missing p4 integration action. Change 4063620 by Graeme.Thornton Integrated a fix from UDN where the engine would crash when trying to load a very small encrypted file (<16bytes) from a pak file, where the read address wasn't already aligned to the AES block size. (https://udn.unrealengine.com/questions/431989/crash-while-reading-a-very-small-file-in-encrypted.html) Change 4066963 by Robert.Manuszewski Fixing GC cluster verification code reporting false positives when a cluster is referencing another cluster through 'mutable' objects list. Change 4067133 by Robert.Manuszewski Changed log verbosity when reporting individual cases of GC cluster assumption violations as they are followed by an asser anyway and this way we get the chance to see all issues before we assert at the end of these checks. Change 4067443 by Steve.Robb FString can now be constructed from any char pointer type and length. Change 4068156 by Steve.Robb Fix necessary because of FString constructor change in CL# 4067443. Change 4070258 by Graeme.Thornton Fixes for VSCode Change 4070372 by Graeme.Thornton TBA: Script struct serialization to structured archives Change 4071913 by Ben.Marsh Move bulk of the code for UnrealPak into an engine developer module, so it can be used in the editor. Change 4071914 by Ben.Marsh Missing files. Change 4071937 by Ben.Marsh Missing header. Change 4072015 by Ben.Marsh Fixes for compiling PakFileUtilities as part of the editor. Change 4072826 by Steve.Robb TBitArray::Reserve() added. TBitArray::Add() overloaded to allow adding multiple bits. TSparseArray::Reserve() optimized to call the overloaded Add(). Change 4073271 by Daniel.Lamb Fixed add patch tier in project launcher passing the wrong commandline option to UAT. #test none Change 4074708 by James.Hopkin #core Removed redundant Casts Change 4074763 by Steve.Robb Fix for TSparseArray::Reserve() size. Change 4076063 by Ben.Marsh Add an "UnrealPak" commandlet with the same functionality as the standalone UnrealPak program. Invoke by running the editor with -run=UnrealPak and the standard UnrealPak commandline options. Change 4077064 by Robert.Manuszewski Fixing compile error in PakFileUtilities Change 4077144 by Graeme.Thornton TBA: TextAssetCommandlet improvements * Collect lists of broken assets during roundtrip tests and print a summary of packages that failed each phase at the end * After resaving as text, load the file back as a plain JSON hierarchy to ensure the output was valid Change 4077412 by Ben.Marsh Set the correct exit code for UnrealPak. Should return 0 on success, not 1. Change 4077760 by Graeme.Thornton TBA: Loading fixed for tagged property serialization Includes conversion of all UProperty::ConvertFromType() and SerializeFromMismatchedTag() functions to use structured archives Lazy initialization of FArchiveFromStructruredArchive when loading, to support the possibility of an adapter being create around an object property serialize call to its inner UStruct, which then decides not to do anything and return false. Stops the ArchiveFromStructuredArchive from consuming the slot and getting upset later on when we try to serialize normal tagged properties from it. Disabled lazy bulk data loading from text assets. Requires a bigger change to make it work. Added some debug checks to json input formatter which track the current value stack size when a new object is pushed onto the stack, and makes sure that the stack has returned to the same size when the object is popped. Catches cases where we unpack an array/stream to the value stack but then don't consume all the items. Change 4078800 by Ben.Marsh Change UAT to using the editor's UnrealPak commandlet rather than invoking the standalone UnrealPak executable. To improve performance when building several PAK files, also add a new -batch=<file> command which reads commands to execute in parallel from a text file. Change 4079745 by Graeme.Thornton TBA: Migrated a couple of UObject Serialize functions to FStructuredArchive (SoundCue / MaterialExpressions / Editor strip flags) Change 4079847 by Graeme.Thornton TBA: Add 'FindMismatchedSerializers' mode to text asset commandlet, which dumps out a list of all UClasses which don't have the CLASS_MatchedSerializers flag, meaning we can't guarantee the have Serialize functions for FArchive AND FStructuredArchive, therefore we can't use the new structured archive based serialize path. Should only ever be native instrinsic classes as UHT takes care of all other cases. Change 4079925 by Ben.Marsh Fix incorrect assignment when deriving name for chunked pak file. Change 4080214 by Ben.Marsh Move the ThreadPoolWorkQueue class into DotNETUtilities so it can be used by other projects. Change 4082394 by Graeme.Thornton CIS fix for variable shadowing warning Change 4082583 by Ben.Marsh Add a IBinarySerializable interface for types that support reading from a BinaryReader and writing to a BinaryWriter. Implementing IBinarySerializable implies a constructor taking a BinaryReader argument is available for deserializing. Change 4082652 by Ben.Marsh Fix FileReference.Directory not returning a directory with a trailing backslash for files in the root directory. Change 4082755 by Graeme.Thornton Fixed an erroneous usage of TUniquePtr<uint8>as a pointer to a uint8 array when creating pak files. Caused a crash when compression was enabled, and has probably surfaced because pak generation is now done by an editor commandlet rather than a standalone program. Change 4082756 by Graeme.Thornton Fixed some incorrect documentation for pakfile compressed chunk headers Change 4082883 by Graeme.Thornton Static analysis warning fix Change 4082912 by Ben.Marsh Move ExceptionUtils into DotNETUtilities. Change 4085291 by Graeme.Thornton TBA: In the Json output formatter, write float and double values out with enough precision for successful roundtripping. Added some debug only code which will immediately reconvert the string back to its original value and compare the the input Change 4085523 by Graeme.Thornton TBA: Remove only explicit usage of DECLARE_FSTRUCTUREDARCHIVE_SERIALIZER. Should only be used from UHT generated code. Change 4086037 by Robert.Manuszewski Fix for a potential race condition when two threads want to acquire GC lock Change 4088655 by Graeme.Thornton Pak creation now uses the bEnablePakSigning setting from the crypto config json file Change 4091474 by Steve.Robb Fix for TStaticBitArray::FindFirstSetBit() and TStaticBitArray::FindFirstClearBit(). Unused variables removed. Change 4093632 by Steve.Robb CIS fixes. Change 4093656 by Graeme.Thornton Build fix Change 4093744 by Ben.Marsh Allow per-chunk settings for whether to enable compression in UnrealPak. Change 4099712 by Gil.Gribb UE4 - Fixed rare case where insufficient space was preallocated for cooldown ticks. #jira UE-59686 Change 4099912 by Stefan.Boberg Cooking timer optimizations: - Replaced data structures for FScopeTimer and FHierarchicalTimerInfo. Previous implementation used FString for many things and caused *lots* of heap and string concatenation activity. Replaced with a compile-time node id (using __COUNTER__) and raw string literals. - Removed PERPACKAGE_TIMER support (was disabled by default and was difficult to test) - Made it possible to toggle OUTPUT_TIMING and ENABLE_COOK_STATS independently - Removed some extremely tight timers because the overhead from calling QPC significantly exceeded the measured code This change shaved some 15% off a clean cook of Fortnite WindowsClient (en) with fully populated local DDC Change 4100519 by Stefan.Boberg Quick fix for Linux build issue introduced in 4099927 Change 4105327 by Stefan.Boberg Cooker: Changed FHierarchicalTimerInfo so it uses a linked list for tracking child nodes, to be able to deal with any child count. Previously we assumed there would never be more than 9 children but it turns out there are cooker modes that need more. Fixes check when using -FullLoadAndSave to cook Change 4105448 by Stefan.Boberg - Fixed Linux build warning re: member initialization order - Also eliminated OUTPUT_HIERARCHYTIMERS/CLEAR_HIEARCHYTIMERS macros (plain functions are fine) - Moved finishing-up code for FullLoadAndSave() to TickCookOnTheSide() call site to improve timer output. Previously some of the scopes would not have been closed before printing and thus the output was misleading. Change 4109031 by Ben.Marsh Attribute-driven Perforce wrapper (old Epic Friday project). Offers a more complete implementation than the current P4 wrapper in UAT without requiring any platform-specific libraries. Uses the Python binary output for parsing. Change 4109588 by Ben.Marsh UBT: Add extension methods for serializing a nullable type to a BinaryReader/BinaryWriter. Change 4109595 by Ben.Marsh Missing project file for DotNETUtilities. Change 4110724 by Stefan.Boberg Removed annotation map locking in UObjectMarks, eliminating around one minute (~3.5%) from Fortnite cook time. The locking was redundant since the annotation maps are managed per thread anyway. Change 4111304 by Ben.Marsh UAT: Add support for setting a status message through the log class. Allows writing transient messages (eg. progress messages) which will be cleared out before writing other messages. Best used through the LogStatusScope class, which can set a status message for the duration of a using() block. As part of this change, the console no longer has to be added as a dedicated trace listener. Since we already special-case this listener when formatting log output, it's easier to just keep the implementation separate to the other trace listeners. Change 4112708 by Steve.Robb Fix for TBitArray::MaxBits in assignment. Change 4114133 by Stefan.Boberg Tweaked how low-level memory (LLM) tracker is implemented to reduce overheads. Previously FMemory functions would acquire the LLM singleton and call OnLowLevelFree/OnLowLevelAlloc etc which would check the bIsDisabled flag and early out if it was set. Due to how frequently these functions were called this ended up costing quite a bit. - This change makes the flag a static member variable instead of a member variable and therefore enables a simpler early-out to be implemented. - The singleton getter is also simplified to avoid hitting the threadsafe singleton construction path on every call. - The enable flag is no longer TAtomic - this also incurs extra overhead for no clear benefit Shaves approximately 3.5% (one minute) off a Fortnite cook test scenario (using -FullLoadAndSave) Change 4115010 by Robert.Manuszewski Fixing CIS Change 4115249 by Robert.Manuszewski Fixing async loading code asserts when exiting game very early due to an error #jira UE-56267 Change 4117091 by Ben.Marsh Prevent doubled-up lines when writing status updates with console log verbosity. Change 4117207 by Ben.Marsh UGS: Do not include executables in diagnostics zip file, and ignore "no such files" error when cleaning workspace. Change 4119175 by Ben.Marsh UGS: Fix crash writing version files when directory does not already exist. Change 4119987 by Ben.Marsh UGS: Show a dialog box while the launcher is updating executables from Perforce, which allows cancelling the operation if necessary. Allow setting the username on the settings window, and prompt for login credentials if necessary. Should prevent situations where users have to update settings from the command prompt. Holding down shift during launch now shows the settings dialog rather than an immediate prompt to launch the unstable version (unstable version is shown as a checkbox on this dialog). Change 4119991 by Ben.Marsh Update version number for UGS launcher to 1.13. Change 4121943 by Robert.Manuszewski Don't use FArchiveAsync2 for reading packages with non-async path in editor builds as its performance is worse than the standard archive's (saves about 1 minute when doing larger cooks and 7 seconds when loading into PIE) Change 4122592 by Steve.Robb GitHub #4762 : Improve wording and grammar of Math comments Also includes improved accuracy in FMath::ComputeBoundingSphereForCone(). Change 4122819 by Stefan.Boberg Don't call CreateDirectory redundantly when opening files for writing using FFileManagerGeneric::CreateFileWriter This change avoids calling IPlatformFile::CreateDirectoryTree if possible since this is a very expensive function especially for deep hierarchies as it performs directory creation from the root directory onwards instead of from the leaf downwards. That function should also be fixed but this change improves performance in the meantime. Change 4122872 by Stefan.Boberg CreateDirectoryTree now creates directories leaf-to-root instead of the other way around. This is much more efficient since we don't spend time on system API calls for directories which already exist. This accounted for a very large amount of CPU time in cooking as the full target file directory hierarchy would be "created" for every single output file. Change 4123109 by Stefan.Boberg - Disable overlapped I/O in editor / cooker. Synchronous I/O reduces the number of syscalls and Windows performs prefetching on our behalf anyway for sequential reads - Eliminated syscall which was issued for every write to update cached file size -- since we're the only writers to the file (file access allows read sharing at most) we can authoritatively update the file size on write completion Change 4123455 by Ben.Marsh PR #4775: New build param PCHMemoryAllocationFactor to set /Zm VS build param. (Contributed by lucaswall) Change 4124207 by Ben.Marsh UBT: Remove some unnecessary indirection for generated code paths. Change 4124217 by Ben.Marsh UBT: Remove another unused variable from UEBuildModuleCPP. Change 4124377 by Stefan.Boberg In IPlatformFile::DeleteDirectoryRecursively, attempt to delete file first and if it fails clear the readonly flag and try again Previously there was a call to clear the readonly flag for every deleted file and this is a waste of resources 99% of the time. The SetFileAttributes call accounted for a significant amount of time during cooker sandbox directory deletion Change 4125071 by Stefan.Boberg Some tweaks to FQueuedThreadPoolBase scheduling and memory management - Explicitly pass in false for TArray::RemoveAt(..., bool bAllowShrinking) argument to prevent memory reallocation when arrays are drained and inevitably repopulated shortly afterwards - Use a MRU strategy instead of LRU when picking a thread to wake up. The MRU thread is the most likely to have a 'hot' cache for the stack etc. Picking from the back of the array also happens to be cheaper since no memory movement is necessary when RemoveAt is called. (This was the strategy in place before CL2600362 which seems to have changed it unintentionally) - Release lock as soon as a thread has been chosen, before asking the worker thread to wake up and do the work Change 4126132 by Ben.Marsh UAT: Detect when stdout is redirected and prevent using backspace characters to move the cursor. Change 4126867 by Graeme.Thornton TBA: Fix tagged binary formatter Change 4127010 by Robert.Manuszewski AnimScriptInstances created at runtime will now also be added to the owning omponent's cluster to avoid GC issues. Change 4127932 by Ben.Marsh WorkspaceTool: Reduce unnecessary logging of status messages when console output is not redirected. Change 4129050 by Ben.Marsh UGS: Check for NET Framework 4.5 being installed before running the installer. Also fix warning trying to kill existing UGS instances before upgrade. Change 4129459 by Graeme.Thornton TBA: TextAssetCommandlet - When outputting converted assets to an output path, replicate the workspace relative path in the output directory Change 4129515 by Graeme.Thornton TBA: Add EnterRecord overload that allows outputting of available field names when loading. Change 4129517 by Graeme.Thornton TBA: Tagged properties are written out as named fields on the "Properties" record, rather than as a stream with a null tag at the end Change 4129518 by Graeme.Thornton TBA: Added a local const bool to allow easy hacking out of text asset loading support Change 4129558 by Graeme.Thornton TBA: Build fix for textasset-less configs Change 4129614 by Ben.Marsh UGS: Main window is now restored to normal size when activated by clicking on the tray icon. #jira UE-60490 Change 4129618 by Ben.Marsh UGS: Speculative fix for unreproduced exception accessing disposed window while shutting down. Change 4131936 by Robert.Manuszewski Removing some WIP code accidentally checked in with CL #4121943 Change 4133490 by Ben.Marsh UGS: Allow the $(Change) variable to be used in more places than just the context menu. #jira UE-60573 Change 4133550 by Ben.Marsh UGS: Setting for whether or not to use incremental builds is now exposed through the variable "$(UseIncrementalBuilds)" for use by custom build steps. #jira UE-60554 Change 4133681 by Ben.Marsh UGS: A per-project list of folders and extensions to be deleted by default when running the 'clean workspace' tool can now be specified through the <ProjectDir>/Build/UnrealGameSync.ini file. Settings may be specified for an individual branch (via a category with the depot path to the project) or for wherever the project is currently open (via the [Default] category). The SafeToDeleteFolders list specifies a substring that will be checked against folder paths. Anything containing this folder will be marked as safe for delete by default. The SafeToDeleteExtensions list specifies a list of extensions for files that can always be deleted. Example: [Default] +SafeToDeleteFolders=/MyGame/Test/ +SafeToDeleteFolders=/DataService/ +SafeToDeleteExtensions=.xx1 +SafeToDeleteExtensions=.xx2 #jira UE-60575 Change 4135449 by Ben.Marsh Fix allowing use of Job objects on Windows platforms (debug code submitted by mistake) Change 4135730 by Ben.Marsh UBT: Plugins can now be enabled and disabled from the .target.cs file (for targets that do not use the shared compile environment), by compiling the list of enabled/disabled plugin names into the Projects module. Change 4135823 by Ben.Marsh UBT: Remove legacy code to handle disabling optional plugins; now that this is compiled into the target, it will work for any plugins we choose. Change 4135945 by Ben.Marsh UBT: Fix error running programs with no explicitly enabled or disabled plugins. Change 4137207 by Ben.Marsh UGS: Align all badges with the same name, to make it easier to see which CIS steps are being run. Allow overriding the slot taken by a particular badge by calling it "SlotName:LabelName". Change 4137311 by Stefan.Boberg Removed child cooker support. In practice it is not a useful feature as it provides no performance improvement (quite the opposite in fact) and adds testing and maintenance complexity. Change 4137393 by Ben.Marsh UGS: Fix display of multiline errors in the status panel. Change 4141708 by Steve.Robb GitHub #3631 : Incorrect default argument in WeakObjectPtrTemplate #jira UE-45490 Change 4146655 by Stefan.Boberg Removed FullGCAssetClasses logic - no longer necessary nor useful Change 4147318 by Ben.Marsh UGS: Compress build badges in a column if it shrinks below the size that they would be visible. Change 4148207 by Ben.Marsh UGS: Added support for showing the latest completed build from a specific list of badges in the status panel. To declare a badge as one that should appear in the status panel rather than the CIS column, add it to the project's UnrealGameSync.ini in the project or [Default] section like so: +ServiceBadges=RoboMerge Change 4148282 by Stefan.Boberg Fixed bug in UCookOnTheFlyServer::GetCookOnTheFlyUnsolicitedFiles - UnsolicitedFiles should be passed by reference not by value Change 4148344 by Stefan.Boberg Fixed minor indentation error (most likely caused by sloppy merge) Change 4148521 by Stefan.Boberg Removed accidentally checked in PRAGMA_DISABLE_OPTIMIZATION from CookOnTheFlyServer.cpp Change 4148639 by Ben.Marsh UGS: Fix tooltips not showing for changes that have description badges. Change 4149373 by Ben.Marsh UGS: Allow adding additional columns to display particular badges by adding entries from the project config file. Example syntax: +Columns=(Name="Desktop",MinWidth=50,DesiredWidth=100,Weight=3,Badges="Editor") +Columns=(Name="Mobile",MinWidth=50,DesiredWidth=100,Weight=3,Badges="IOS,Android") Same form can be used to control how default columns are displayed (though badge settings are ignored). Also allow PerforceMonitor to detect local changes to project config files and update settings automatically. Change 4149399 by Ben.Marsh UGS: Update version to 1.143. Change 4155660 by Steve.Robb PROJECTION and PROJECTION_MEMBER macros which provide the correct behavior when creating projections using functions which are overloaded or use default arguments. Change 4157117 by Ben.Marsh Fix warning due to plugins disabled in .target.cs file. Change 4158011 by Ben.Marsh UBT: Add a check that the UnrealHeaderTool target file exists, rather than throwing an exception when reading it fails. Change 4158646 by Ben.Marsh UGS: Fix exception when login is discovered to have expired during a workspace update. Change 4158678 by Ben.Marsh UGS: Fix an exception on shutdown due to the icon being hidden after it's already been disposed. Change 4158683 by Ben.Marsh UGS: Add an unhandled exception filter which sends the exception data to the backend. Change 4159131 by Ben.Marsh UGS: Reduce the number of characters displayed for build badges based on the available space. Change 4159194 by Graeme.Thornton TBA: Fix incorrect map property conversion code when converting an old property that contains a map with different key/value types Change 4159239 by Steve.Robb Improved readability and compliance with coding standards. Change 4159246 by Ben.Marsh UGS: Allow syncing projects where source code is not available (and various version files don't exist). #jira UE-60985 Change 4159286 by Ben.Marsh UGS: Remove requirement for UE4Editor.target.cs to be visible in the depot in order to open a project. #jira UE-60986 Change 4159302 by Ben.Marsh UGS: Update version to 1.144. Change 4160308 by Ben.Marsh All staging client executables for blueprint projects. #jira UE-60983 Change 4161567 by Steve.Robb GitHub #4816 : UE-60771: Handle escaped double quote in FParse::LineExtended Change 4162641 by Ben.Marsh UGS: Allow customizing the position of custom columns, via the Index=N attribute. Change 4162647 by Ben.Marsh UGS: Update version to 1.145. Change 4165319 by Robert.Manuszewski PR #4812: Fix inconsistent command-line argument handling under Windows (Contributed by adamrehn) Change 4166150 by Ben.Marsh UGS: Include *.inl when looking for code changes. Change 4166551 by Steve.Robb Whitespace fixes caused by a bad merge. Change 4168483 by Ben.Marsh UGS: Add a more useful error if a file to be synced exceeds the max allowed path length. Change 4168490 by Ben.Marsh UGS: Update version to 1.146. Change 4168551 by Ben.Marsh UBT: Move bBuildLargeAddressAwareBinary into an exposed setting. Change 4168560 by Ben.Marsh UBT: Remove static config variable for controlling which configuration of UHT to use. Change 4171296 by Ben.Marsh UGS: Move the check for overlong paths earlier. Change 4171531 by Ben.Marsh UBT: Fix exception if BuildConfiguration.xml contains an unknown category. Change 4183371 by Robert.Manuszewski Fix for a crash in Async Loading Graph's CheckCycles when GC kicks in on the game thread and forces ALT to exit early Change 4184312 by Ben.Marsh UGS: Update version to 1.148 Change 4184480 by Robert.Manuszewski Removing unused async loading stat Change 4186390 by Ben.Marsh UBT: Format XML validation errors in a format that allows double-clicking on the message in Visual Studio. Change 4188644 by Ben.Marsh UBT: Add the MakePathSafeToUseWithCommandLine() function to UBT. Change 4188647 by Ben.Marsh UBT: Fix exception in target receipt when architecture is null. Change 4189617 by Ben.Marsh Change FileSystemReference, FileReference and DirectoryReference objects to use OrdinalIgnoreCase comparisons without creating a separate copy of the string to compare. The filesystem does not use the invariant culture, and it can produce the wrong results in some cases (the ordinal comparison is faster, too). Change 4189740 by Ben.Marsh UAT: Remote code to build UnrealPak when packaging; we use the editor now. Change 4189860 by Ben.Marsh UGS: Make the filter for excluding automated lighting rebuilds more explicit. Change 4190082 by Ben.Marsh Fixes to allow enabling edit and continue for Windows builds. Have experienced quite a few VS crashes when testing it in editor; not yet recommended for general use. - Allow edit and continue for any configuration, not just debug. - Fixed PDB errors compiling files that use a shared PCH with edit and continue enabled. Path to the generated PDB file was using the wrong directory. - Removed code that tracks PDB output files, since they're modified multiple times during a build. - Enable debug information when compiling generated CPP files, since it causes errors if the shared PCH PDB doesn't have the same option. - Disable support for remote execution of steps that modify the PDB, since the same file has to be modified many times. Remote execution causes the PDB files to be corrupted. Unfortunately, this makes E&C builds significantly slower. #jira Change 4192949 by Ben.Marsh UBT: Minor tidy-up (merging UEBuildBinary.Build and UEBuildBinary.SetupOutputFiles) Change 4193218 by Ben.Marsh Fix formatting. Change 4197252 by Mike.Erwin UAT: Fix log output w/ correct count of non-code projects. #jira none Change 4197941 by Ben.Marsh UGS: Add support for DebugGame editors that have an executable with a DebugGame suffix. Change 4197964 by Ben.Marsh UGS: Prevent attempts to automatically reopen projects while a modal dialog is up, or the workspace is syncing. Change 4198144 by Ben.Marsh UGS: Prevent modal dialogs when login expires in P4, and prompt for password when hitting "retry". Change 4198413 by Ben.Marsh UGS: Always show the main window when launched manually, and run with -RestoreState when launched at startup. Also add a couple more places that save the visibility state, since logging off seems like it can terminate the process abrubtly. Change 4198779 by Ben.Marsh UBT: Allow generating manifests to any arbitrary locations with the -Manifest=<Path> argument. Change 4198825 by Ben.Marsh UBT: Move code to enumerate Slate runtime dependencies into the Slate module. Doesn't need to be done inside core UBT. Change 4199341 by Ben.Marsh UGS: Update version to 1.149 Change 4199642 by Chad.Garyet - Deprecate CISController - Add BuildController to replace CIS GET/POST for builds - Add LatestController, GET does what CIS/GET used to do - Change Latest/GET to return the last 25 builds filtered by project, rather than the last 5000 individual Ids - Latest/GET now returns "LatestData" object instead of array of longs - Updated EventMonitor to match all API changes - Fixed bug where IDs were getting reset to initial startup values every update loop Change 4199663 by Chad.Garyet CIS controller still needs to return an array of longs #jira none Change 4199680 by Ben.Marsh UGS: Update version to 1.150 Change 4200457 by Ben.Marsh Merging CIS fix for non-development configurations. Change 4200472 by Mike.Erwin UAT: fix -skipbuildclient param default It was defaulting to skipbuildeditor's value, likely a copy-paste error. #jira none Change 4202595 by Ben.Marsh Fix static analysis warning due to constant comparison against macro. Change 4203250 by Ben.Marsh UGS: Always show the "Sync Precompiled Editor" option, but disable it and show a tooltip explaining why if it is not available. Change 4206191 by Ben.Marsh Exclude editor target files from installed builds, since they leak info about DLLs that have been stripped out. Change 4213011 by Ben.Marsh UBT: Include contents of modified intermediate files in the log, to make it easier to debug hidden dependencies. Change 4213487 by Ben.Marsh UBT: Fix assumption that bPrecompile is equivalent to bBuildAllModules. This is no longer the case; they are now controlled by separate options. Should fix CIS errors building the editor. Change 4213609 by Ben.Marsh Ensure that strings formatted using FMicrosoftPlatformString::GetVarArgs() are always null terminated, whether we use the secure CRT or not. Change 4215971 by Ben.Marsh UBT: Remove action graph visualization code; no longer used. Change 4215996 by Ben.Marsh UBT: Remove unqiue id from all actions in the action graph. This is only used for printing debug info in the case of a (rare) cycle in the action graph, so just look it up when needed. Change 4216022 by Ben.Marsh UBT: Rename Crypto.cs to EncryptionAndSigning.cs to match the name of the class inside it, and move it under the System folder. Change 4216031 by Ben.Marsh UBT: Move all the action executors into their own folder in the project. Change 4216526 by Ben.Marsh Fix CIS warnings. Change 4216544 by Ben.Marsh Replace custom code to ensure FMicrosoftPlatformString::GetVarArgs() null terminates its buffer with Microsoft's standards-compliant implementation. Change 4216633 by Ben.Marsh Add support for UnrealPak plugins. * Project and plugin modules can now specify an array of supported programs in the "WhitelistPrograms" field of their module descriptors, to allow modules to be loaded by programs. * Programs can now load any runtime modules, as long as they are whitelisted. * Programs under the engine directory can now use a shared build environment, so that building with a project file does not cause output binaries to be output to the project directory. * UnrealPak is now always built by default when packaging * Convert UnrealPak to a modular configuration Change 4216736 by Ben.Marsh UnrealPak: Move "ExportDependencies" command into an editor commandlet, since it relies on the UObject system, asset registry, etc... Change 4217447 by Ben.Marsh Back out revision 50 from //UE4/Dev-Core/Engine/Build/InstalledEngineBuild.xml Change 4217451 by Ben.Marsh Back out revision 11 from //UE4/Dev-Core/Engine/Plugins/Developer/VisualStudioSourceCodeAccess/Source/VisualStudioSourceCodeAccess/VisualStudioSourceCodeAccess.Build.cs Change 4217617 by Ben.Marsh Back out changelist 4217451 Change 4222552 by Ben.Marsh Don't use #import <TypeLib> for VS source code accessor when building with Clang; it's not supported. Change 4222630 by Ben.Marsh UBT: Fix spam while generating project files if Clang isn't installed. Change 4223316 by Ben.Marsh UBT: Change the order in which Visual C++ toolchains are enumerated to prefer full releases over preview releases. Change 4223318 by Ben.Marsh UBT: Add a build setting which allows creating a dedicated PCH for every file that's excluded from the unity working set (disabled by default). Improves iteration times when working on individual cpp files, but slows down iterating on header changes (and can take a lot of disk space for large changes). Dedicated PCH contains all includes scraped from the top of each cpp file, until a non-#include directive is encountered. Change 4223401 by Ben.Marsh UBT: Add an option to automatically enable edit and continue for files in the adaptive non-unity working set. E&C doesn't seem very useful for UE4 projects right now; compile time is comparable to regular build times, but it can take several minutes to apply code changes for large projects. Change 4223899 by Ben.Marsh UBT: Fix loading XML config files on Mono; Type.GetField(Name) does not seem to return values unless binding flags are specified. Change 4224637 by Ben.Marsh Add a "SupportedPrograms" field to plugin descriptors, which allows plugins to declare which plugins they support independently of individual modules. Programs now respect the "bEnabledByDefault" setting in plugins. Plugins that are compatible with a program now need to list that program in the SupportedPrograms list, and whitelist any modules that should load for that program. Change 4224710 by Ben.Marsh UBT: Don't add import libraries as final build products unless the target is being precompiled. Prevents the need for building them for leaf nodes in the action graph. Change 4224715 by Ben.Marsh UBT: Remove hack to allow Stats2.cpp to not follow IWYU convention. Change 4224726 by Ben.Marsh Remove commented out line. Change 4224903 by Ben.Marsh Fix non-unity compile error in Stats2.h. Change 4225051 by Ben.Marsh Back out changelist 4224710; causing CIS errors due to receipts not matching. Change 4225134 by Ben.Marsh Fixing non-unity errors. Change 4225203 by Ben.Marsh Another non-unity fix. Change 4225249 by Ben.Marsh Fix Linux dependencies being copied for the Windows editor; they can be added as requirements for the Linux target platform on Windows instead, so it respects the user's chosen platforms. #jira UE-62001 Change 4225512 by Ben.Marsh BuildGraph: Allow setting the target to build when using the <CsCompile> task. Change 4228815 by Ben.Marsh UBT: Always add the generated code directory to the list of include paths when generating project files. It may only be created after UHT has been run. Change 4228944 by Ben.Marsh UBT: Remove legacy CppCompileEnvironment and LinkEnvironment wrappers from TargetRules that were deprecated in 4.19. Change 4229028 by Ben.Marsh UBT: Fix editor targets with unique build environment having the wrong executable path in generated project files. Move move logic to configure target rules post-construction by the rules assembly to ensure it's valid. Change 4229065 by Ben.Marsh UBT: Move another target setting into the rules assembly. Change 4229105 by Ben.Marsh Fix BPT exception when generating project files. Change 4229311 by Ben.Marsh UBT: Store the module rules file location on the ModuleRules instance, as well as the plugin that it was created from. Also expose the plugin directory as a property on the ModuleRules instance. Change 4229421 by Ben.Marsh UBT: Consolidate functionality for UHT module setup in ExternalExecution.cs. Change 4229817 by Ben.Marsh UBT: Modules must now explicitly specify the path to the header used to generate a PCH if one is desired, rather than the header being determined automatically by attempting to parse the source code. Now that PCHs are force-included anyway, this removes a lot of dependencies inside UBT. Change 4229824 by Ben.Marsh UBT: Remove unused lists inside UEBuildModuleCPP.SourceFilesClass. Change 4229841 by Ben.Marsh UBT: Remove some legacy code from auto-detecting PCHs. Change 4230521 by Ben.Marsh UBT: Add utility functions to the log class to allow formatting errors and warnings in Visual Studio output format (eg. File(Line): warning: Message) Change 4230871 by Ben.Marsh UAT: Remove StreamUtilis utility class; there is a simpler way to implement the one place it's used. Change 4230882 by Ben.Marsh UAT: Add StreamUtils back into UAT, seems like it's still used there. Change 4230896 by Ben.Marsh UBT: Remove some redundant parameters from UEBuildModule/UEBuildModuleCPP/UEBuildModuleExternal constructors. Change 4231014 by Ben.Marsh WorkspaceTool: Include a dump of raw bytes when garbage is read from the P4 process, for diagnostic purposes. Change 4231032 by Ben.Marsh Fix CIS. Change 4231096 by Ben.Marsh Bump the FlatCPPIncludeDependencyCache version, to prevent errors trying to load old files. Change 4231446 by Ben.Marsh UBT: Added support for expanding UE-specific variables in include paths and library paths: $(EngineDir), $(ProjectDir), $(PluginDir), $(ModuleDir). Change 4231460 by Ben.Marsh Modules may now explicitly specify rpaths on Linux via the PublicRuntimeLibraryPaths and PrivateRuntimeLibraryPaths properties. Change 4233909 by Robert.Manuszewski PR #4779: Reason fails as the supplied variable is incorrect (Contributed by projectgheist) Change 4233910 by Ben.Marsh Enable PCHs on IOS. Reduces build time by ~25%. Change 4234176 by Ben.Marsh UBT: Add better messaging for modules that need to have a private PCH set. Now detects the likely PCH using the same method as legacy code and includes it as a suggestion. Change 4234193 by Ben.Marsh Add the Delete command to Perforce wrapper in DotNETUtilities. Change 4234688 by Ben.Marsh UBT: Simplify handling of installed/precompiled builds. Settings for whether a folder is installed/read-only or not is now stored on the RulesAssembly instance, allowing multiple things to be configured separately and stacked together (eg. engine/enterprise/project). RulesAssembly.IsReadOnly() allows determining if a flie can be modified or not and replaces many previous IsXXXInstalledCalls(), and traverses the chain of assemblies. Change 4234711 by Ben.Marsh UBT: Runtime dependencies can now be copied to output directories as part of the build. When adding a runtime dependency, an optional source location can be specified to copy from. Both the source and target paths can use variables can be used as part of the path, eg. $(OutputDir), $(ModuleDir), $(PluginDir). Example usage (from a .build.cs file): RuntimeDependencies.Add("$(OutputDir)/Foo.dll", "$(PluginDir)/Source/ThirdParty/Foo.dll", StagedFileType.NonUFS); Change 4234872 by Ben.Marsh Expose a flag for whether the engine is installed, to fix issues generating project files. Change 4234929 by Ben.Marsh Fix null reference generating receipts when UBT makefiles are active. Change 4235883 by Chad.Garyet Merging 4231245 to core Giving Coordinator its own sln. This should fix what 4158155 was supposed to. #jira UE-61955 Change 4236075 by Ben.Marsh CIS fix Change 4237066 by Robert.Manuszewski Fix for a potential crash when terminating the engine while it's being initialized #jira UE-60545 Change 4237078 by Robert.Manuszewski The engine will no longer be resetting all linkers causing massive load times when renaming the world package when entering Play In Editor Change 4237116 by Ben.Marsh Rewrite some Windows utility functions to support paths longer than MAX_PATH. Change 4237158 by Ben.Marsh Add const TCHAR* overloads of FString::RemoveFromStart() and FString::RemoveFromEnd(). Change 4237159 by Ben.Marsh Fix FWindowsPlatformFile::GetFilenameOnDisk() support for paths longer than MAX_PATH, and simplify some of the other long path functions to avoid copying string buffers. Change 4239050 by Ben.Marsh Missing file Change 4239318 by Ben.Marsh Linux CIS fix. Change 4239685 by Ben.Marsh Static analysis CIS fix. Change 4240800 by Ben.Marsh WorkspaceTool: Include the full command line in the log for any P4 commands. Change 4240903 by Ben.Marsh PR #4909: Update copyright notices to 2018 (Contributed by projectgheist) Change 4241025 by Ben.Marsh UBT: Exclude mobile pipeline caches from generated project files. Causes huge slowdown when using 'Find in Files' through the IDE. Change 4241770 by Ben.Marsh UBT: Include action number in parallel executor output. #jira UE-62032 Change 4243469 by Ben.Marsh TBA: Merge FAnnotatedStructuredArchiveFormatter with FStructuredArchiveFormatter. Any functions that are only implemented for text archives now have a _TextOnly suffix, and are exposed through the FStructuredArchive interface. Change 4245723 by Robert.Manuszewski Fixing another creash when terminating the engine while initializing. #jira UE-60545 Change 4245862 by Steve.Robb VectorLoadFloat2(Ptr) added, which loads { Ptr[0], Ptr[1], Ptr[0], Ptr[1] } into a VectorRegister. Change 4246412 by Robert.Manuszewski The warning 'Calling StaticLoadObject during PostLoad may result in hitches during streaming' will now also report the object which had the PostLoad called on it when StaticLoadObject call happened. Change 4246612 by Ben.Marsh UBT: Fix spelling of "Intellisense". Change 4249454 by Robert.Manuszewski Added extra checks to catch scenarios where the EDL Precache Buffer is flushed before a package header is fully read Change 4249513 by Robert.Manuszewski Made sure the Async Loading Thread doesn't continue running after creating new async packages when garbage collector wants to run on the game thread Change 4255207 by Ben.Marsh UGS: Add additional logging whenever a P4 command fails, and when the user is logged out. Change 4255288 by Ben.Marsh PR #4921: Honor ModuleRules' bEnableExceptions flag when creating precompiled h. (Contributed by surakin) Change 4256422 by Ben.Marsh UBT: Add an error if a module referenced by a plugin descriptor doesn't exist. Change 4257385 by Robert.Manuszewski Creating new objects from within ForEachObjectWithOuter will now result in a fatal error as it's unsafe to change internal UObject hash tables when iterating over them. Change 4257454 by Robert.Manuszewski Added the option to filter clusters listed with gc.ListClusters by objects within them. Usage: gc.ListClusters Hierachy With=ObjectName1,ObjectName2... Change 4257526 by Robert.Manuszewski It's now possible to filter clusters that get logged with verbose cluster logging enabled (UE_GCCLUSTER_VERBOSE_LOGGING=1) by objects within them by specifying -DumpClustersWithObjects=ObjectName1,ObjectName2 in the command line Change 4257822 by Ben.Marsh Fixes for PlatformShowcase compile errors. Change 4258771 by Ben.Marsh UBT: Fix project files not being generated for foreign projects when creating .stub files. #jira UE-62462 Change 4258790 by Ben.Marsh UBT: Clean up the logic around generating project files before creating a stub IPA, so that it fails loudly if project files do not exist, and can accept target names not matching project names. Change 4259276 by Ben.Marsh UBT: Make it an error if a framework doesn't exist, rather than failing silently. Also remove some remote toolchain stuff that's no longer necessary. Change 4259280 by Ben.Marsh UBT: Fix embedded framework zips not being uploaded for plugins. #jira UE-62485 Change 4260236 by Ben.Marsh UBT: Fix path to generated engine project file. Change 4260334 by Ben.Marsh UGS: Fix custom build steps dialog inadvertantly modifying config file settings in-place. Change 4260361 by Ben.Marsh UGS: Allow for p4 login commands to fail, even though the user is logged in (due to a bad connection, etc...) Change 4260559 by Ben.Marsh UGS: Update version. Change 4261160 by Robert.Manuszewski MediaPlaylist will now be added to root set if the owning MediaPlayer is in the disregard for GC set (fixes GC assumption violation crash) #jira UE-62495 Change 4261421 by Ben.Marsh Force-sync files for building documentation, to fix issues with files not being updated. #jira UE-62413 Change 4261425 by Ben.Marsh UBT: Remove some leftover functions for handling the remote toolchain. Change 4261530 by Ben.Marsh UBT: Speculative fix (and better error reporting) for IOS mobile provision not being found in CIS. Change 4261611 by Ben.Marsh UBT: Downgrade warning to a log message, since it appears when generating project files. Change 4261710 by Ben.Marsh Remove assert that GLogConsole is set; it won't be for command line utilities that don't depend on ApplicationCore. #jira UE-62545 Change 4261831 by Ben.Marsh Fix compile errors due to missing include path when hot-reloading a module from the editor. There are not necessarily source files to compile when -modulewithsuffix is specified on the command line, which was results in GeneratedCodeWildcard not being set. #jira UE-62463, UE-62384 Change 4262723 by Ben.Marsh Whitelist plugins that need to be loaded by UFE. #jira UE-62564 Change 4265444 by Ben.Marsh Fix incorrect executable name for DebugGame configurations in Xcode. #jira UE-62574 Change 4265892 by Ben.Marsh Fix incremental compile failures due to dependency checking for unity files. CachedIncludePaths was not correctly being set on file items, so dependencies were being ignored. #jira UE-62575, UE-62603, UE-62597 Change 4266019 by Josh.Adams - Fixed the CopyAction for runtime dependencies that need to be copied to different location, on non-XGE Change 4266264 by Ben.Marsh Remove override for the __IPHONE_OS_VERSION_MIN_REQUIRED macro on TVOS. This macro is already defined by system headers (in <AvailabilityInternal.h>). Now that we support PCHs on IOS and TVOS, manually defining this macro results in it being defined three times (once for the PCH, once by AvailabilityInternal.h, and once by the force-included list of definitions for the source file being built). The errors for redefining the macro in AvailabilityInternal.h are suppressed due to it being a system header, but the error for redefining it for the source file being compiled are not. #jira UE-62578 Change 4266273 by Ben.Marsh Fixes incremental build failure when compile arguments for PCH have changed on IOS/TVOS. Compile action needs to have a dependency on PCH build action. Change 4266614 by Graeme.Thornton Fix crash when cooking nativized blueprints due to removal of child cooker system. Change 4266763 by Ben.Marsh Always build UnrealPak when building client targets. The ProjectParams.Pak option is not reliable, because it can be forced on later by the target platform. #jira UE-62584 Change 4267985 by Robert.Manuszewski When iterating with ForEachObjectWithouter, don't lock the entire has table but only the hash bucket that is currently being iterated #jira UE-62600 Change 4268558 by Robert.Manuszewski PurgeLegacyBlueprints will no longer be called from within ForEachObjectWithOuter is it renames objects that reside in hash tables that are being iterated over which may lead to undefined behavior. #jira UE-62600 Change 4269011 by Chad.Garyet - Fixing Wildcard match issue, the change to ugsapi sends projects as //Depot/Stream instead of //Depot/Stream/ Wildcard match was only substringing to 3 chars. - Checking in the change a while back that increases the number of queried jobs up to 432 based on some maths from Bob about how many builds we want to grab Published to ugsapi server 8/8/17 #jira none Change 4270788 by Ben.Marsh Fix IOS provisioning data being using when remote compiling on TVOS. #jira UE-62705 Change 4271916 by Ben.Marsh Tag the XGEControlWorker executable as a build product after compiling SCW, to make sure it's included in the UGS zip file. Change 4271934 by Ben.Marsh Upload all static libraries in plugin folders as part of remote builds. #jira UE-62694 Change 4273368 by Ben.Marsh Fix Slate dependencies not being enumerated, and rules assembly not being rebuilt when building remotely. #jira UE-62705 Change 4274049 by Ben.Marsh Always parse the team UUID out of the mobile provision when doing a remote compile. The provision installed on the remote Mac (and selected for signing) may be different. #jira UE-62751 Change 4274823 by Ben.Marsh Add the -VersionCookedContent argument to disable the -unversioned parameter on the cooker command line. Change 4275838 by Ben.Marsh Fix BuildVersion string not being passed through from <SetVersion> task. Also add a -BuildVersion command line argument to UBT to override it for a particular build. Change 4275913 by Ben.Marsh Add a dummy exported symbol to the XGEController module, to fix build errors due to missing .lib file when it's built with WITH_XGE_CONTROLLER = 0. Change 4284161 by Ben.Marsh Allow mirroring Oodle files to remote Mac. Change 4074774 by Steve.Robb Vast simplification of TFunction, making it smaller in footprint, easier to follow and extend, and more correct. TUniqueFunction added, which is a move-only TFunction which can hold move-only functors. Fix for UWidgetBlueprint::ForEachSourceWidget() which should never have compiled but did. FFunctionGraphTask and TFuture<> updated to use TUniqueFunction to make them more general. TArray::HeapPop() made to work with move-only types. Change 4082591 by Ben.Marsh Move the Log class from UBT to DotNetUtilities. Change 4083236 by Ben.Marsh Add a Log.WriteException() method to dump an exception message to the console (and write the exception trace to the log) Change 4084107 by Ben.Marsh UAT: Remove the unused -SkipHeader argument to UE4Build. Change 4089771 by Steve.Robb GitHub #4743 : modified VirtualAlloc function flag https://blogs.msdn.microsoft.com/oldnewthing/20151008-00/?p=91411 Change 4091456 by Steve.Robb Unification of all platforms' FMath::CountTrailingZeros() and FMath::CountLeadingZeros() for both 32-bit and 64-bit. Change 4156437 by Ben.Marsh Lots and lots of fixes compiling for Clang on Windows. Editor now compiles cleanly without warnings, but crashes on startup due to error in intrinsics test. Disabling that runs further, but crashes accessing freed memory. Switching to the ANSI allocator runs further, but crashes in Slate after the splash screen and before the editor window opens. // TODO! * Switching between Clang/ICL/VS2015/VS2017 is now supported through the same mechanism as switching Visual Studio versions, without requiring any source level changes. To use Clang, set WindowsPlatform.Compiler = WindowsCompiler.Clang from a .target.cs file, or set <WindowsPlatform><Compiler>Clang</Compiler></WindowsPlatform> from BuildConfiguration.xml. To pick a specific toolchain version, set WindowsPlatform.CompilerVersion. * Clang is now supported through AutoSDKs; will be added to CIS. * The Samples/Sandbox/Clang project forces Clang to be used from its target.cs file, and allows easily building all editor modules and plugins with Clang on Windows. * UnrealMathSSE intrinsics have been re-enabled for Clang due to missing functions from the UnrealMathFPU implementation, but causes failure in tests at startup. * SSE4_CRC32() is disabled in D3D12Pipelinestate.cpp, since intrinsics are only allowed if enabled for the whole target (rather than being used in specific functions due to runtime checks) Change 4157389 by Ben.Marsh Few more fixes for compiling the editor with Clang. Change 4183911 by Ben.Marsh Fixes to support incremental linking on Windows. Does not seem to have any net benefit right now; may improve once minimal rebuild is enabled. * Incremental linking no longer forces PDB files to be enabled for source files. * Actions can specify specific files to be deleted before each build. Code to forcibly delete PDB files has been moved to the MSVC toolchain. * Unused libraries produced by the cross-referenced link are no longer added as build products, since (a) deleting them breaks dependency checking for incremental linking and causes a full link, and (b) not deleting them breaks UBT dependency checking and causes actions to be run over and over again. * Icon update is disabled for Windows when incremental linking is enabled. * Removed rarely-used setting to always delete produced items before each build. Change 4184311 by Ben.Marsh UGS: Added a dialog which shows all the required platform SDKs for a branch, linked from the status panel in UGS. The llist is configured via the UGS config file submitted to Engine/Programs/UnrealGameSync/UnrealGameSync.ini (and may be overridden by the project config file if necessary): [Default] ; Set this to a network share which contains the SDK installers for your site SdkInstallerDir= ; All the required SDKs for the current version of the engine +SdkInfo=(Category="Android", Description="NDK r21", Browse="$(SdkInstallerDir)\\Android") +SdkInfo=(Category="Windows", Description="Visual Studio 2017") +SdkInfo=(Category="Windows", Description="Visual C++ Toolchain 14.13.26128") +SdkInfo=(Category="Windows", Description="Windows SDK 10.0.16299.0") Similar entries for console platforms are added in console subdirectories. Each entry may contain an Install="Foo.exe" and/or Browse="C:\Foo" style attribute, specifying the path to an installer to run or directory to open in explorer respectively. The SdkInstallerDir setting is used as a base directory for the default installers, seen above for Android. Licensees may override this with a network path specific to the site that UGS is being deployed to (either in this file, in a project specific config file, or in a Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini file). Change 4200452 by Ben.Marsh UBT: Change DebugGame configurations to output a separate executable rather than requiring a -Debug argument at runtime. Previous behavior was a common source of errors. Engine modules are still shared between Development and DebugGame, but the launch module sets a flag in Core on startup indicating the game configuration. Change 4206189 by Ben.Marsh UBT: Simplify logic for precompiling binaries. * Target no longer has separate list of "precompile only" binaries or modules. New -AllModules option allows adding every module to a target, which can be used with -Precompile and -NoLink to precompile object files for monolithic builds. * Precompiled file lists have been removed from target receipts. * The manifest now includes all generated headers and precompiled files when run with the -Precompile option. * Separate -DependencyList=Foo.txt has been added to write a list of all dependencies required to use precompiled binaries. This file list can be read using the <Tag> task in buildgraph. Change 4215466 by Ben.Marsh UBT: Remove indirect calls to determine extensions for object files and precompiled headers. The toolchain knows the correct convention for the platform. Change 4215975 by Ben.Marsh UBT: Remove telemetry code. This has never proved useful for analyzing performance due to the number of incidental factors that affect build times (eg. number of files being compiled). Change 4220154 by Ben.Marsh Move text-only implementations of FOutputDeviceError back into Core, so we can build command-line applications that don't depend on ApplicationCore. Change 4224708 by Ben.Marsh Add a bCompileAgainstApplicationCore setting to the target rules, which allows compiling out references to the ApplicationCore module (which should only be necessary for applications with a GUI). Removed ApplicationCore from several engine tools and utilities. Change 4224958 by Ben.Marsh Remove CoreMinimal.h includes from Core. Change 4229059 by Ben.Marsh UBT: Remove the UEBuildPlatform.ShouldNotBuildEditor() hook for target platforms. We shouldn't be modifying a target's build environment to disable the editor; it is invalid to build the editor for these target platforms at all, and this is already enforced by the GetSupportedPlatforms() function. Change 4230508 by Ben.Marsh Fixup precompiled header setting for samples and games. Change 4231457 by Ben.Marsh Fix exceptions in log messages having trailing newlines. Change 4232406 by Ben.Marsh UBT: Always force include a PCH for generated code if there's one set; the code may depend on it to compile. Change 4234177 by Ben.Marsh Set up private PCH files everywhere that previously used them. Change 4235973 by Ben.Marsh Change FPlatformMisc::GetEnvironmentVariable() to return an FString() rather than requiring a fixed size buffer to be passed in. Removes references to MAX_PATH. Change 4238842 by Ben.Marsh Add support for paths longer than MAX_PATH in the editor. Requires Windows 10 version 1607, and the functionality to be enabled via a registry key or group policy (see https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Only a subset of Win32 functions support long paths (executables can only be started from paths shorter than MAX_PATH, for example). * Added a FPlatformMisc::GetMaxPathLength() function to return the maximum length of a path on the current system. On Windows, this returns a different value for systems with long paths enabled to those without. * The MAX_PATH define is no longer set by non-Windows platforms. Instead, there is a MAC_MAX_PATH, UNIX_MAX_PATH, etc... for any platform-specific code that still relies on the previous macro. * The MAX_UNREAL_FILENAME_LENGTH macro has been renamed to MAX_UNREAL_FILENAME_LENGTH_DEPRECATED * The PLATFORM_MAX_FILEPATH_LENGTH macro has been renamed to PLATFORM_MAX_FILEPATH_LENGTH_DEPRECATED. * Removed custom resource files for programs, since they are just copies of the base UE4 one (which is used by default anyway). The base UE4 manifest declares support for long paths. * Fix 512 character maximum length on editor commands. 260 character limit remains in place for cooking at the moment (see ContentBrowserUtils.h), until C# staging code supports long paths. Change 4255042 by Ben.Marsh UBT: Remote compilation now uploads the entire workspace to the remote Mac and executes a separate remote instance of UBT rather than synchronizing individual actions. This makes the remote compile codepath much simpler, and removes a lot of special cases that exist to support it previously. The list of files to be transferred to the remote are listed as rsync filter rules in Engine/Build/Rsync/RsyncEngine.txt and RsyncProject.txt, which are applied to the root engine directory and project directory respectively. Projects that need to customize which files are uploaded can add their own <ProjectDir>/Build/Rsync/RsyncProject.txt file, which will be included in the filter before the default version. Change 4260567 by Ben.Marsh UAT: Rename CommandUtils.Log to CommandUtils.LogInformation, to avoid conflicts with the underlying Tools.DotNETCommon.Log class. #rb none [CL 4285673 by Ben Marsh in Main branch]
2018-08-14 18:32:34 -04:00
/// <summary>
/// Makes sure path can be used as a command line param (adds quotes if it contains spaces)
/// </summary>
/// <param name="InPath">Path to convert</param>
/// <returns></returns>
public static string MakePathSafeToUseWithCommandLine(string InPath)
{
if (InPath.Contains(' ') && InPath[0] != '\"')
{
InPath = "\"" + InPath + "\"";
}
return InPath;
}
/// <summary>
/// Makes sure path can be used as a command line param (adds quotes if it contains spaces)
/// </summary>
/// <param name="InPath">Path to convert</param>
/// <returns></returns>
public static string MakePathSafeToUseWithCommandLine(FileReference InPath)
{
return MakePathSafeToUseWithCommandLine(InPath.FullName);
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4285612) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3836829 by Ben.Marsh UBT: Fix ability to precompile plugins from installed engine builds. 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 4042043 by Steve.Robb GitHub #4705 : Added weak lambda's for delegates and multicast delegates. Change 4042056 by Robert.Manuszewski Optimized Mark Phase of GC by up to 10ms by making it run in parallel and removing a huge array presize which we didn't need. Change 4042104 by Robert.Manuszewski Set the minimum GC cluster size to 5 so that GC doesn't have to process micro clusters which are more expensive than processing individual objects + Exposed the minimum cluster size to ini and project settings as gc.MinGCClusterSize + Added the ability to sort clusters by name/object count/mutable object count/referenced clusters count when dumping them with gc.ListClusters command Change 4042377 by Robert.Manuszewski Reworked how GC and other threads (ALT specifically) interact - GC will now notify the ALT it wants to run and ALT will immediately try to finish its current work to allow that. Also the entire ALT tick is now protected against GC running at the same time to improve ALT stability. + added gc.ForceCollectGarbageEveryFrame console variable that triggers a forced GC every frame Change 4042427 by Robert.Manuszewski Changed FGCCSyncObject to use events when waiting for GC to finish so that it doesn't spin on non-game threads when GC is running Change 4042482 by Robert.Manuszewski Unhashing unreachable objects (ConditionalBeginDestroy) will now also be done incrementally, just like the purge phase of Garbage Collection Change 4042635 by Robert.Manuszewski Fix for a potential assert when incremental purge garbage is pending and something forces a full purge Change 4044092 by Steve.Robb Fix for forward declared CoreUObject weakobject types in delegates when building in Clang. Change 4044102 by Robert.Manuszewski Fix for a possible hang when worker threads are preventing GC from running and something is later trying to FlushAsyncLoading with the Async Loading Thread enabled Change 4044113 by Steve.Robb Another Clang fix. Change 4044160 by Robert.Manuszewski Disregard For GC pool will now be enabled by default in cooked builds Change 4044287 by Steve.Robb Typo fix. Change 4047723 by Graeme.Thornton TBA: Fixes for import/export name cache and object resolving Change 4048015 by Graeme.Thornton TBA: Weak/Soft/Lazy pointer serialization changes * Remove FWeakObjectPtr::Serialize, move it's logic into, and replace usages of with calls to, FArchiveUObject::SerializeWeakObjectPtr(). Ensures that something is always sent to the archive so that structured archives can be kept happy in the future. * Added Weak/Soft/Lazy pointer handling to the structured archive slot interface and all the formatters. Binary formatters just forward the call onto their inner and text archives store as a string path reference. * FArchiveUObjectFromStructuredArchive caches all these pointer types and stores indices in the binary block, same as with a UObject*. All pointers are then forwarded to the underlying formatter in one go on finalization. Change 4048021 by Steve.Robb Fix for binding an unbound TFunction to another TFunction with a different signature. Also all null pointers now count as unbindings, not just nullptr. TIsMemberPointer added. TIsATFunction and TIsATFunctionRef renamed to remove the 'A's. Change 4048544 by Robert.Manuszewski Fixing ConditionalBeginDestroy profiling after changes to incremental CBD. Change 4051028 by Graeme.Thornton TBA: ArchiveFromStructuredArchive adapter uses Inner to determine if it is outputting to text, and sets it's own ArIsTextFormat to false Change 4051056 by Graeme.Thornton TBA: High level tagged property / UObject base class text serialization - UObject serialize converted to structured archive - Properties written to text individually with text tags, and then binary adapted values - Only saves, doesn't load Change 4051111 by Graeme.Thornton TBA: Temporarily disable loading of text assets until tagged property serialization path is fixed up Change 4051154 by Graeme.Thornton TBA: Convert a few uobject serializers to structured archive format for example purposes Change 4051181 by Graeme.Thornton TBA: Added default structured archive implementation of SerializeItem to UProperty, which just calls the FArchive version on an FArchiveUObjectFromStructuredArchive adapter. Implemented structured archive SerializeItem for UArrayProperty Change 4051197 by Graeme.Thornton TBA: ObjectProperty text serialization Change 4051216 by Graeme.Thornton Restored a modified FWeakObjectPtr::Serialize function to keep backwards compatibility in code I don't have access to. Change 4051261 by Graeme.Thornton TBA: Convert UMetaData to structured archive Change 4051374 by Steve.Robb Incorrect assert removed. Change 4051562 by Robert.Manuszewski Adding stats for the new GC internal functions Change 4051614 by Graeme.Thornton TBA: Removed UProperty::SerializeItem(FArchive, ...) and replaced with UProperty::SerializeItem(FStructuredArchive::FSlot, ...). Fixed up most of them to work properly and added adapters in for any that were non-trivial. Change 4052512 by Graeme.Thornton TBA: Temporary workaround for softobjectptr and lazyobjectptr uproperties not serialization anything when they know the archive is a reference collector. They should always be serializing their pointers and letting the underlying archive itself ignore them. Change 4053917 by Robert.Manuszewski Clustered objects from clusters that are no longer reachable will now be marked as unreachable immediately when gathering unreachable objects Change 4053919 by Robert.Manuszewski Added the ability to disable incremental BeginDestroy in ini/project settings Change 4055518 by Daniel.Lamb Fixup for deterministic audio generation issue. Submitted on behalf of Rich.Whitehouse #jira nojira #test prefilght automated test. Change 4056854 by Graeme.Thornton TBA: Added a test asset to EngineTest which contains all the different property types and test cases. Change 4056858 by Graeme.Thornton TBA: Updated USetProperty to proper structured archive usage Change 4056872 by Graeme.Thornton TBA: Add map property field to test object Change 4056873 by Graeme.Thornton TBA: Convert UMapProperty to full structured archive Change 4056994 by Graeme.Thornton TBA: Converted FText over to structured archive. Implemented saving, but not loading. Change 4059728 by Ben.Marsh UBT: Add support for using adaptive non-unity builds when the engine and project are in separate repositories. Change 4059805 by Graeme.Thornton Fixed typo in text serialization. Fixes CIS automation test errors Change 4060007 by Graeme.Thornton TBA: FArchiveFromStructuredArchive will now access it's host slot lazily, i.e. only when a value is actually written to the archive. Change 4060092 by Stefan.Boberg Added optimized Windows console window output path to GenericConsoleOutput since this slowed down cooking considerably (2 minutes spent in wprintf alone for one large dataset) When stdout is attached to a console we use the WriteConsoleW function instead of wprintf since the latter is very slow especially in unbuffered mode which the engine currently configures for stdout (see setvbuf call in LaunchEngineLoop.cpp). At some point we should reconsider this buffering policy since it's likely to slow down other platforms as well but I wanted to do a safe change for now as I don't yet fully understand why the setvbuf call is there in the first place. Change 4060108 by Stefan.Boberg Introduced some additional target platform utilities to help with asset cook optimizations * We now assign each ITargetPlatform a zero-based ordinal value * Introduced FTargetPlatform and FTargetPlatformSet types to help store platform references and platform sets efficiently. These are not currently used in the engine but are designed to replace the existing ITargetPlatform/string/FName representations in the cooking data structures. Change 4060143 by Graeme.Thornton Undo //UE4/Dev-Core/Engine/Source/Runtime/... changelist 4060007 Needs some other changes that I haven't checked in yet... Change 4062432 by Ben.Marsh Fix error message when enumerating P4 changes. Change 4062648 by Ben.Marsh Add missing p4 integration action. Change 4063620 by Graeme.Thornton Integrated a fix from UDN where the engine would crash when trying to load a very small encrypted file (<16bytes) from a pak file, where the read address wasn't already aligned to the AES block size. (https://udn.unrealengine.com/questions/431989/crash-while-reading-a-very-small-file-in-encrypted.html) Change 4066963 by Robert.Manuszewski Fixing GC cluster verification code reporting false positives when a cluster is referencing another cluster through 'mutable' objects list. Change 4067133 by Robert.Manuszewski Changed log verbosity when reporting individual cases of GC cluster assumption violations as they are followed by an asser anyway and this way we get the chance to see all issues before we assert at the end of these checks. Change 4067443 by Steve.Robb FString can now be constructed from any char pointer type and length. Change 4068156 by Steve.Robb Fix necessary because of FString constructor change in CL# 4067443. Change 4070258 by Graeme.Thornton Fixes for VSCode Change 4070372 by Graeme.Thornton TBA: Script struct serialization to structured archives Change 4071913 by Ben.Marsh Move bulk of the code for UnrealPak into an engine developer module, so it can be used in the editor. Change 4071914 by Ben.Marsh Missing files. Change 4071937 by Ben.Marsh Missing header. Change 4072015 by Ben.Marsh Fixes for compiling PakFileUtilities as part of the editor. Change 4072826 by Steve.Robb TBitArray::Reserve() added. TBitArray::Add() overloaded to allow adding multiple bits. TSparseArray::Reserve() optimized to call the overloaded Add(). Change 4073271 by Daniel.Lamb Fixed add patch tier in project launcher passing the wrong commandline option to UAT. #test none Change 4074708 by James.Hopkin #core Removed redundant Casts Change 4074763 by Steve.Robb Fix for TSparseArray::Reserve() size. Change 4076063 by Ben.Marsh Add an "UnrealPak" commandlet with the same functionality as the standalone UnrealPak program. Invoke by running the editor with -run=UnrealPak and the standard UnrealPak commandline options. Change 4077064 by Robert.Manuszewski Fixing compile error in PakFileUtilities Change 4077144 by Graeme.Thornton TBA: TextAssetCommandlet improvements * Collect lists of broken assets during roundtrip tests and print a summary of packages that failed each phase at the end * After resaving as text, load the file back as a plain JSON hierarchy to ensure the output was valid Change 4077412 by Ben.Marsh Set the correct exit code for UnrealPak. Should return 0 on success, not 1. Change 4077760 by Graeme.Thornton TBA: Loading fixed for tagged property serialization Includes conversion of all UProperty::ConvertFromType() and SerializeFromMismatchedTag() functions to use structured archives Lazy initialization of FArchiveFromStructruredArchive when loading, to support the possibility of an adapter being create around an object property serialize call to its inner UStruct, which then decides not to do anything and return false. Stops the ArchiveFromStructuredArchive from consuming the slot and getting upset later on when we try to serialize normal tagged properties from it. Disabled lazy bulk data loading from text assets. Requires a bigger change to make it work. Added some debug checks to json input formatter which track the current value stack size when a new object is pushed onto the stack, and makes sure that the stack has returned to the same size when the object is popped. Catches cases where we unpack an array/stream to the value stack but then don't consume all the items. Change 4078800 by Ben.Marsh Change UAT to using the editor's UnrealPak commandlet rather than invoking the standalone UnrealPak executable. To improve performance when building several PAK files, also add a new -batch=<file> command which reads commands to execute in parallel from a text file. Change 4079745 by Graeme.Thornton TBA: Migrated a couple of UObject Serialize functions to FStructuredArchive (SoundCue / MaterialExpressions / Editor strip flags) Change 4079847 by Graeme.Thornton TBA: Add 'FindMismatchedSerializers' mode to text asset commandlet, which dumps out a list of all UClasses which don't have the CLASS_MatchedSerializers flag, meaning we can't guarantee the have Serialize functions for FArchive AND FStructuredArchive, therefore we can't use the new structured archive based serialize path. Should only ever be native instrinsic classes as UHT takes care of all other cases. Change 4079925 by Ben.Marsh Fix incorrect assignment when deriving name for chunked pak file. Change 4080214 by Ben.Marsh Move the ThreadPoolWorkQueue class into DotNETUtilities so it can be used by other projects. Change 4082394 by Graeme.Thornton CIS fix for variable shadowing warning Change 4082583 by Ben.Marsh Add a IBinarySerializable interface for types that support reading from a BinaryReader and writing to a BinaryWriter. Implementing IBinarySerializable implies a constructor taking a BinaryReader argument is available for deserializing. Change 4082652 by Ben.Marsh Fix FileReference.Directory not returning a directory with a trailing backslash for files in the root directory. Change 4082755 by Graeme.Thornton Fixed an erroneous usage of TUniquePtr<uint8>as a pointer to a uint8 array when creating pak files. Caused a crash when compression was enabled, and has probably surfaced because pak generation is now done by an editor commandlet rather than a standalone program. Change 4082756 by Graeme.Thornton Fixed some incorrect documentation for pakfile compressed chunk headers Change 4082883 by Graeme.Thornton Static analysis warning fix Change 4082912 by Ben.Marsh Move ExceptionUtils into DotNETUtilities. Change 4085291 by Graeme.Thornton TBA: In the Json output formatter, write float and double values out with enough precision for successful roundtripping. Added some debug only code which will immediately reconvert the string back to its original value and compare the the input Change 4085523 by Graeme.Thornton TBA: Remove only explicit usage of DECLARE_FSTRUCTUREDARCHIVE_SERIALIZER. Should only be used from UHT generated code. Change 4086037 by Robert.Manuszewski Fix for a potential race condition when two threads want to acquire GC lock Change 4088655 by Graeme.Thornton Pak creation now uses the bEnablePakSigning setting from the crypto config json file Change 4091474 by Steve.Robb Fix for TStaticBitArray::FindFirstSetBit() and TStaticBitArray::FindFirstClearBit(). Unused variables removed. Change 4093632 by Steve.Robb CIS fixes. Change 4093656 by Graeme.Thornton Build fix Change 4093744 by Ben.Marsh Allow per-chunk settings for whether to enable compression in UnrealPak. Change 4099712 by Gil.Gribb UE4 - Fixed rare case where insufficient space was preallocated for cooldown ticks. #jira UE-59686 Change 4099912 by Stefan.Boberg Cooking timer optimizations: - Replaced data structures for FScopeTimer and FHierarchicalTimerInfo. Previous implementation used FString for many things and caused *lots* of heap and string concatenation activity. Replaced with a compile-time node id (using __COUNTER__) and raw string literals. - Removed PERPACKAGE_TIMER support (was disabled by default and was difficult to test) - Made it possible to toggle OUTPUT_TIMING and ENABLE_COOK_STATS independently - Removed some extremely tight timers because the overhead from calling QPC significantly exceeded the measured code This change shaved some 15% off a clean cook of Fortnite WindowsClient (en) with fully populated local DDC Change 4100519 by Stefan.Boberg Quick fix for Linux build issue introduced in 4099927 Change 4105327 by Stefan.Boberg Cooker: Changed FHierarchicalTimerInfo so it uses a linked list for tracking child nodes, to be able to deal with any child count. Previously we assumed there would never be more than 9 children but it turns out there are cooker modes that need more. Fixes check when using -FullLoadAndSave to cook Change 4105448 by Stefan.Boberg - Fixed Linux build warning re: member initialization order - Also eliminated OUTPUT_HIERARCHYTIMERS/CLEAR_HIEARCHYTIMERS macros (plain functions are fine) - Moved finishing-up code for FullLoadAndSave() to TickCookOnTheSide() call site to improve timer output. Previously some of the scopes would not have been closed before printing and thus the output was misleading. Change 4109031 by Ben.Marsh Attribute-driven Perforce wrapper (old Epic Friday project). Offers a more complete implementation than the current P4 wrapper in UAT without requiring any platform-specific libraries. Uses the Python binary output for parsing. Change 4109588 by Ben.Marsh UBT: Add extension methods for serializing a nullable type to a BinaryReader/BinaryWriter. Change 4109595 by Ben.Marsh Missing project file for DotNETUtilities. Change 4110724 by Stefan.Boberg Removed annotation map locking in UObjectMarks, eliminating around one minute (~3.5%) from Fortnite cook time. The locking was redundant since the annotation maps are managed per thread anyway. Change 4111304 by Ben.Marsh UAT: Add support for setting a status message through the log class. Allows writing transient messages (eg. progress messages) which will be cleared out before writing other messages. Best used through the LogStatusScope class, which can set a status message for the duration of a using() block. As part of this change, the console no longer has to be added as a dedicated trace listener. Since we already special-case this listener when formatting log output, it's easier to just keep the implementation separate to the other trace listeners. Change 4112708 by Steve.Robb Fix for TBitArray::MaxBits in assignment. Change 4114133 by Stefan.Boberg Tweaked how low-level memory (LLM) tracker is implemented to reduce overheads. Previously FMemory functions would acquire the LLM singleton and call OnLowLevelFree/OnLowLevelAlloc etc which would check the bIsDisabled flag and early out if it was set. Due to how frequently these functions were called this ended up costing quite a bit. - This change makes the flag a static member variable instead of a member variable and therefore enables a simpler early-out to be implemented. - The singleton getter is also simplified to avoid hitting the threadsafe singleton construction path on every call. - The enable flag is no longer TAtomic - this also incurs extra overhead for no clear benefit Shaves approximately 3.5% (one minute) off a Fortnite cook test scenario (using -FullLoadAndSave) Change 4115010 by Robert.Manuszewski Fixing CIS Change 4115249 by Robert.Manuszewski Fixing async loading code asserts when exiting game very early due to an error #jira UE-56267 Change 4117091 by Ben.Marsh Prevent doubled-up lines when writing status updates with console log verbosity. Change 4117207 by Ben.Marsh UGS: Do not include executables in diagnostics zip file, and ignore "no such files" error when cleaning workspace. Change 4119175 by Ben.Marsh UGS: Fix crash writing version files when directory does not already exist. Change 4119987 by Ben.Marsh UGS: Show a dialog box while the launcher is updating executables from Perforce, which allows cancelling the operation if necessary. Allow setting the username on the settings window, and prompt for login credentials if necessary. Should prevent situations where users have to update settings from the command prompt. Holding down shift during launch now shows the settings dialog rather than an immediate prompt to launch the unstable version (unstable version is shown as a checkbox on this dialog). Change 4119991 by Ben.Marsh Update version number for UGS launcher to 1.13. Change 4121943 by Robert.Manuszewski Don't use FArchiveAsync2 for reading packages with non-async path in editor builds as its performance is worse than the standard archive's (saves about 1 minute when doing larger cooks and 7 seconds when loading into PIE) Change 4122592 by Steve.Robb GitHub #4762 : Improve wording and grammar of Math comments Also includes improved accuracy in FMath::ComputeBoundingSphereForCone(). Change 4122819 by Stefan.Boberg Don't call CreateDirectory redundantly when opening files for writing using FFileManagerGeneric::CreateFileWriter This change avoids calling IPlatformFile::CreateDirectoryTree if possible since this is a very expensive function especially for deep hierarchies as it performs directory creation from the root directory onwards instead of from the leaf downwards. That function should also be fixed but this change improves performance in the meantime. Change 4122872 by Stefan.Boberg CreateDirectoryTree now creates directories leaf-to-root instead of the other way around. This is much more efficient since we don't spend time on system API calls for directories which already exist. This accounted for a very large amount of CPU time in cooking as the full target file directory hierarchy would be "created" for every single output file. Change 4123109 by Stefan.Boberg - Disable overlapped I/O in editor / cooker. Synchronous I/O reduces the number of syscalls and Windows performs prefetching on our behalf anyway for sequential reads - Eliminated syscall which was issued for every write to update cached file size -- since we're the only writers to the file (file access allows read sharing at most) we can authoritatively update the file size on write completion Change 4123455 by Ben.Marsh PR #4775: New build param PCHMemoryAllocationFactor to set /Zm VS build param. (Contributed by lucaswall) Change 4124207 by Ben.Marsh UBT: Remove some unnecessary indirection for generated code paths. Change 4124217 by Ben.Marsh UBT: Remove another unused variable from UEBuildModuleCPP. Change 4124377 by Stefan.Boberg In IPlatformFile::DeleteDirectoryRecursively, attempt to delete file first and if it fails clear the readonly flag and try again Previously there was a call to clear the readonly flag for every deleted file and this is a waste of resources 99% of the time. The SetFileAttributes call accounted for a significant amount of time during cooker sandbox directory deletion Change 4125071 by Stefan.Boberg Some tweaks to FQueuedThreadPoolBase scheduling and memory management - Explicitly pass in false for TArray::RemoveAt(..., bool bAllowShrinking) argument to prevent memory reallocation when arrays are drained and inevitably repopulated shortly afterwards - Use a MRU strategy instead of LRU when picking a thread to wake up. The MRU thread is the most likely to have a 'hot' cache for the stack etc. Picking from the back of the array also happens to be cheaper since no memory movement is necessary when RemoveAt is called. (This was the strategy in place before CL2600362 which seems to have changed it unintentionally) - Release lock as soon as a thread has been chosen, before asking the worker thread to wake up and do the work Change 4126132 by Ben.Marsh UAT: Detect when stdout is redirected and prevent using backspace characters to move the cursor. Change 4126867 by Graeme.Thornton TBA: Fix tagged binary formatter Change 4127010 by Robert.Manuszewski AnimScriptInstances created at runtime will now also be added to the owning omponent's cluster to avoid GC issues. Change 4127932 by Ben.Marsh WorkspaceTool: Reduce unnecessary logging of status messages when console output is not redirected. Change 4129050 by Ben.Marsh UGS: Check for NET Framework 4.5 being installed before running the installer. Also fix warning trying to kill existing UGS instances before upgrade. Change 4129459 by Graeme.Thornton TBA: TextAssetCommandlet - When outputting converted assets to an output path, replicate the workspace relative path in the output directory Change 4129515 by Graeme.Thornton TBA: Add EnterRecord overload that allows outputting of available field names when loading. Change 4129517 by Graeme.Thornton TBA: Tagged properties are written out as named fields on the "Properties" record, rather than as a stream with a null tag at the end Change 4129518 by Graeme.Thornton TBA: Added a local const bool to allow easy hacking out of text asset loading support Change 4129558 by Graeme.Thornton TBA: Build fix for textasset-less configs Change 4129614 by Ben.Marsh UGS: Main window is now restored to normal size when activated by clicking on the tray icon. #jira UE-60490 Change 4129618 by Ben.Marsh UGS: Speculative fix for unreproduced exception accessing disposed window while shutting down. Change 4131936 by Robert.Manuszewski Removing some WIP code accidentally checked in with CL #4121943 Change 4133490 by Ben.Marsh UGS: Allow the $(Change) variable to be used in more places than just the context menu. #jira UE-60573 Change 4133550 by Ben.Marsh UGS: Setting for whether or not to use incremental builds is now exposed through the variable "$(UseIncrementalBuilds)" for use by custom build steps. #jira UE-60554 Change 4133681 by Ben.Marsh UGS: A per-project list of folders and extensions to be deleted by default when running the 'clean workspace' tool can now be specified through the <ProjectDir>/Build/UnrealGameSync.ini file. Settings may be specified for an individual branch (via a category with the depot path to the project) or for wherever the project is currently open (via the [Default] category). The SafeToDeleteFolders list specifies a substring that will be checked against folder paths. Anything containing this folder will be marked as safe for delete by default. The SafeToDeleteExtensions list specifies a list of extensions for files that can always be deleted. Example: [Default] +SafeToDeleteFolders=/MyGame/Test/ +SafeToDeleteFolders=/DataService/ +SafeToDeleteExtensions=.xx1 +SafeToDeleteExtensions=.xx2 #jira UE-60575 Change 4135449 by Ben.Marsh Fix allowing use of Job objects on Windows platforms (debug code submitted by mistake) Change 4135730 by Ben.Marsh UBT: Plugins can now be enabled and disabled from the .target.cs file (for targets that do not use the shared compile environment), by compiling the list of enabled/disabled plugin names into the Projects module. Change 4135823 by Ben.Marsh UBT: Remove legacy code to handle disabling optional plugins; now that this is compiled into the target, it will work for any plugins we choose. Change 4135945 by Ben.Marsh UBT: Fix error running programs with no explicitly enabled or disabled plugins. Change 4137207 by Ben.Marsh UGS: Align all badges with the same name, to make it easier to see which CIS steps are being run. Allow overriding the slot taken by a particular badge by calling it "SlotName:LabelName". Change 4137311 by Stefan.Boberg Removed child cooker support. In practice it is not a useful feature as it provides no performance improvement (quite the opposite in fact) and adds testing and maintenance complexity. Change 4137393 by Ben.Marsh UGS: Fix display of multiline errors in the status panel. Change 4141708 by Steve.Robb GitHub #3631 : Incorrect default argument in WeakObjectPtrTemplate #jira UE-45490 Change 4146655 by Stefan.Boberg Removed FullGCAssetClasses logic - no longer necessary nor useful Change 4147318 by Ben.Marsh UGS: Compress build badges in a column if it shrinks below the size that they would be visible. Change 4148207 by Ben.Marsh UGS: Added support for showing the latest completed build from a specific list of badges in the status panel. To declare a badge as one that should appear in the status panel rather than the CIS column, add it to the project's UnrealGameSync.ini in the project or [Default] section like so: +ServiceBadges=RoboMerge Change 4148282 by Stefan.Boberg Fixed bug in UCookOnTheFlyServer::GetCookOnTheFlyUnsolicitedFiles - UnsolicitedFiles should be passed by reference not by value Change 4148344 by Stefan.Boberg Fixed minor indentation error (most likely caused by sloppy merge) Change 4148521 by Stefan.Boberg Removed accidentally checked in PRAGMA_DISABLE_OPTIMIZATION from CookOnTheFlyServer.cpp Change 4148639 by Ben.Marsh UGS: Fix tooltips not showing for changes that have description badges. Change 4149373 by Ben.Marsh UGS: Allow adding additional columns to display particular badges by adding entries from the project config file. Example syntax: +Columns=(Name="Desktop",MinWidth=50,DesiredWidth=100,Weight=3,Badges="Editor") +Columns=(Name="Mobile",MinWidth=50,DesiredWidth=100,Weight=3,Badges="IOS,Android") Same form can be used to control how default columns are displayed (though badge settings are ignored). Also allow PerforceMonitor to detect local changes to project config files and update settings automatically. Change 4149399 by Ben.Marsh UGS: Update version to 1.143. Change 4155660 by Steve.Robb PROJECTION and PROJECTION_MEMBER macros which provide the correct behavior when creating projections using functions which are overloaded or use default arguments. Change 4157117 by Ben.Marsh Fix warning due to plugins disabled in .target.cs file. Change 4158011 by Ben.Marsh UBT: Add a check that the UnrealHeaderTool target file exists, rather than throwing an exception when reading it fails. Change 4158646 by Ben.Marsh UGS: Fix exception when login is discovered to have expired during a workspace update. Change 4158678 by Ben.Marsh UGS: Fix an exception on shutdown due to the icon being hidden after it's already been disposed. Change 4158683 by Ben.Marsh UGS: Add an unhandled exception filter which sends the exception data to the backend. Change 4159131 by Ben.Marsh UGS: Reduce the number of characters displayed for build badges based on the available space. Change 4159194 by Graeme.Thornton TBA: Fix incorrect map property conversion code when converting an old property that contains a map with different key/value types Change 4159239 by Steve.Robb Improved readability and compliance with coding standards. Change 4159246 by Ben.Marsh UGS: Allow syncing projects where source code is not available (and various version files don't exist). #jira UE-60985 Change 4159286 by Ben.Marsh UGS: Remove requirement for UE4Editor.target.cs to be visible in the depot in order to open a project. #jira UE-60986 Change 4159302 by Ben.Marsh UGS: Update version to 1.144. Change 4160308 by Ben.Marsh All staging client executables for blueprint projects. #jira UE-60983 Change 4161567 by Steve.Robb GitHub #4816 : UE-60771: Handle escaped double quote in FParse::LineExtended Change 4162641 by Ben.Marsh UGS: Allow customizing the position of custom columns, via the Index=N attribute. Change 4162647 by Ben.Marsh UGS: Update version to 1.145. Change 4165319 by Robert.Manuszewski PR #4812: Fix inconsistent command-line argument handling under Windows (Contributed by adamrehn) Change 4166150 by Ben.Marsh UGS: Include *.inl when looking for code changes. Change 4166551 by Steve.Robb Whitespace fixes caused by a bad merge. Change 4168483 by Ben.Marsh UGS: Add a more useful error if a file to be synced exceeds the max allowed path length. Change 4168490 by Ben.Marsh UGS: Update version to 1.146. Change 4168551 by Ben.Marsh UBT: Move bBuildLargeAddressAwareBinary into an exposed setting. Change 4168560 by Ben.Marsh UBT: Remove static config variable for controlling which configuration of UHT to use. Change 4171296 by Ben.Marsh UGS: Move the check for overlong paths earlier. Change 4171531 by Ben.Marsh UBT: Fix exception if BuildConfiguration.xml contains an unknown category. Change 4183371 by Robert.Manuszewski Fix for a crash in Async Loading Graph's CheckCycles when GC kicks in on the game thread and forces ALT to exit early Change 4184312 by Ben.Marsh UGS: Update version to 1.148 Change 4184480 by Robert.Manuszewski Removing unused async loading stat Change 4186390 by Ben.Marsh UBT: Format XML validation errors in a format that allows double-clicking on the message in Visual Studio. Change 4188644 by Ben.Marsh UBT: Add the MakePathSafeToUseWithCommandLine() function to UBT. Change 4188647 by Ben.Marsh UBT: Fix exception in target receipt when architecture is null. Change 4189617 by Ben.Marsh Change FileSystemReference, FileReference and DirectoryReference objects to use OrdinalIgnoreCase comparisons without creating a separate copy of the string to compare. The filesystem does not use the invariant culture, and it can produce the wrong results in some cases (the ordinal comparison is faster, too). Change 4189740 by Ben.Marsh UAT: Remote code to build UnrealPak when packaging; we use the editor now. Change 4189860 by Ben.Marsh UGS: Make the filter for excluding automated lighting rebuilds more explicit. Change 4190082 by Ben.Marsh Fixes to allow enabling edit and continue for Windows builds. Have experienced quite a few VS crashes when testing it in editor; not yet recommended for general use. - Allow edit and continue for any configuration, not just debug. - Fixed PDB errors compiling files that use a shared PCH with edit and continue enabled. Path to the generated PDB file was using the wrong directory. - Removed code that tracks PDB output files, since they're modified multiple times during a build. - Enable debug information when compiling generated CPP files, since it causes errors if the shared PCH PDB doesn't have the same option. - Disable support for remote execution of steps that modify the PDB, since the same file has to be modified many times. Remote execution causes the PDB files to be corrupted. Unfortunately, this makes E&C builds significantly slower. #jira Change 4192949 by Ben.Marsh UBT: Minor tidy-up (merging UEBuildBinary.Build and UEBuildBinary.SetupOutputFiles) Change 4193218 by Ben.Marsh Fix formatting. Change 4197252 by Mike.Erwin UAT: Fix log output w/ correct count of non-code projects. #jira none Change 4197941 by Ben.Marsh UGS: Add support for DebugGame editors that have an executable with a DebugGame suffix. Change 4197964 by Ben.Marsh UGS: Prevent attempts to automatically reopen projects while a modal dialog is up, or the workspace is syncing. Change 4198144 by Ben.Marsh UGS: Prevent modal dialogs when login expires in P4, and prompt for password when hitting "retry". Change 4198413 by Ben.Marsh UGS: Always show the main window when launched manually, and run with -RestoreState when launched at startup. Also add a couple more places that save the visibility state, since logging off seems like it can terminate the process abrubtly. Change 4198779 by Ben.Marsh UBT: Allow generating manifests to any arbitrary locations with the -Manifest=<Path> argument. Change 4198825 by Ben.Marsh UBT: Move code to enumerate Slate runtime dependencies into the Slate module. Doesn't need to be done inside core UBT. Change 4199341 by Ben.Marsh UGS: Update version to 1.149 Change 4199642 by Chad.Garyet - Deprecate CISController - Add BuildController to replace CIS GET/POST for builds - Add LatestController, GET does what CIS/GET used to do - Change Latest/GET to return the last 25 builds filtered by project, rather than the last 5000 individual Ids - Latest/GET now returns "LatestData" object instead of array of longs - Updated EventMonitor to match all API changes - Fixed bug where IDs were getting reset to initial startup values every update loop Change 4199663 by Chad.Garyet CIS controller still needs to return an array of longs #jira none Change 4199680 by Ben.Marsh UGS: Update version to 1.150 Change 4200457 by Ben.Marsh Merging CIS fix for non-development configurations. Change 4200472 by Mike.Erwin UAT: fix -skipbuildclient param default It was defaulting to skipbuildeditor's value, likely a copy-paste error. #jira none Change 4202595 by Ben.Marsh Fix static analysis warning due to constant comparison against macro. Change 4203250 by Ben.Marsh UGS: Always show the "Sync Precompiled Editor" option, but disable it and show a tooltip explaining why if it is not available. Change 4206191 by Ben.Marsh Exclude editor target files from installed builds, since they leak info about DLLs that have been stripped out. Change 4213011 by Ben.Marsh UBT: Include contents of modified intermediate files in the log, to make it easier to debug hidden dependencies. Change 4213487 by Ben.Marsh UBT: Fix assumption that bPrecompile is equivalent to bBuildAllModules. This is no longer the case; they are now controlled by separate options. Should fix CIS errors building the editor. Change 4213609 by Ben.Marsh Ensure that strings formatted using FMicrosoftPlatformString::GetVarArgs() are always null terminated, whether we use the secure CRT or not. Change 4215971 by Ben.Marsh UBT: Remove action graph visualization code; no longer used. Change 4215996 by Ben.Marsh UBT: Remove unqiue id from all actions in the action graph. This is only used for printing debug info in the case of a (rare) cycle in the action graph, so just look it up when needed. Change 4216022 by Ben.Marsh UBT: Rename Crypto.cs to EncryptionAndSigning.cs to match the name of the class inside it, and move it under the System folder. Change 4216031 by Ben.Marsh UBT: Move all the action executors into their own folder in the project. Change 4216526 by Ben.Marsh Fix CIS warnings. Change 4216544 by Ben.Marsh Replace custom code to ensure FMicrosoftPlatformString::GetVarArgs() null terminates its buffer with Microsoft's standards-compliant implementation. Change 4216633 by Ben.Marsh Add support for UnrealPak plugins. * Project and plugin modules can now specify an array of supported programs in the "WhitelistPrograms" field of their module descriptors, to allow modules to be loaded by programs. * Programs can now load any runtime modules, as long as they are whitelisted. * Programs under the engine directory can now use a shared build environment, so that building with a project file does not cause output binaries to be output to the project directory. * UnrealPak is now always built by default when packaging * Convert UnrealPak to a modular configuration Change 4216736 by Ben.Marsh UnrealPak: Move "ExportDependencies" command into an editor commandlet, since it relies on the UObject system, asset registry, etc... Change 4217447 by Ben.Marsh Back out revision 50 from //UE4/Dev-Core/Engine/Build/InstalledEngineBuild.xml Change 4217451 by Ben.Marsh Back out revision 11 from //UE4/Dev-Core/Engine/Plugins/Developer/VisualStudioSourceCodeAccess/Source/VisualStudioSourceCodeAccess/VisualStudioSourceCodeAccess.Build.cs Change 4217617 by Ben.Marsh Back out changelist 4217451 Change 4222552 by Ben.Marsh Don't use #import <TypeLib> for VS source code accessor when building with Clang; it's not supported. Change 4222630 by Ben.Marsh UBT: Fix spam while generating project files if Clang isn't installed. Change 4223316 by Ben.Marsh UBT: Change the order in which Visual C++ toolchains are enumerated to prefer full releases over preview releases. Change 4223318 by Ben.Marsh UBT: Add a build setting which allows creating a dedicated PCH for every file that's excluded from the unity working set (disabled by default). Improves iteration times when working on individual cpp files, but slows down iterating on header changes (and can take a lot of disk space for large changes). Dedicated PCH contains all includes scraped from the top of each cpp file, until a non-#include directive is encountered. Change 4223401 by Ben.Marsh UBT: Add an option to automatically enable edit and continue for files in the adaptive non-unity working set. E&C doesn't seem very useful for UE4 projects right now; compile time is comparable to regular build times, but it can take several minutes to apply code changes for large projects. Change 4223899 by Ben.Marsh UBT: Fix loading XML config files on Mono; Type.GetField(Name) does not seem to return values unless binding flags are specified. Change 4224637 by Ben.Marsh Add a "SupportedPrograms" field to plugin descriptors, which allows plugins to declare which plugins they support independently of individual modules. Programs now respect the "bEnabledByDefault" setting in plugins. Plugins that are compatible with a program now need to list that program in the SupportedPrograms list, and whitelist any modules that should load for that program. Change 4224710 by Ben.Marsh UBT: Don't add import libraries as final build products unless the target is being precompiled. Prevents the need for building them for leaf nodes in the action graph. Change 4224715 by Ben.Marsh UBT: Remove hack to allow Stats2.cpp to not follow IWYU convention. Change 4224726 by Ben.Marsh Remove commented out line. Change 4224903 by Ben.Marsh Fix non-unity compile error in Stats2.h. Change 4225051 by Ben.Marsh Back out changelist 4224710; causing CIS errors due to receipts not matching. Change 4225134 by Ben.Marsh Fixing non-unity errors. Change 4225203 by Ben.Marsh Another non-unity fix. Change 4225249 by Ben.Marsh Fix Linux dependencies being copied for the Windows editor; they can be added as requirements for the Linux target platform on Windows instead, so it respects the user's chosen platforms. #jira UE-62001 Change 4225512 by Ben.Marsh BuildGraph: Allow setting the target to build when using the <CsCompile> task. Change 4228815 by Ben.Marsh UBT: Always add the generated code directory to the list of include paths when generating project files. It may only be created after UHT has been run. Change 4228944 by Ben.Marsh UBT: Remove legacy CppCompileEnvironment and LinkEnvironment wrappers from TargetRules that were deprecated in 4.19. Change 4229028 by Ben.Marsh UBT: Fix editor targets with unique build environment having the wrong executable path in generated project files. Move move logic to configure target rules post-construction by the rules assembly to ensure it's valid. Change 4229065 by Ben.Marsh UBT: Move another target setting into the rules assembly. Change 4229105 by Ben.Marsh Fix BPT exception when generating project files. Change 4229311 by Ben.Marsh UBT: Store the module rules file location on the ModuleRules instance, as well as the plugin that it was created from. Also expose the plugin directory as a property on the ModuleRules instance. Change 4229421 by Ben.Marsh UBT: Consolidate functionality for UHT module setup in ExternalExecution.cs. Change 4229817 by Ben.Marsh UBT: Modules must now explicitly specify the path to the header used to generate a PCH if one is desired, rather than the header being determined automatically by attempting to parse the source code. Now that PCHs are force-included anyway, this removes a lot of dependencies inside UBT. Change 4229824 by Ben.Marsh UBT: Remove unused lists inside UEBuildModuleCPP.SourceFilesClass. Change 4229841 by Ben.Marsh UBT: Remove some legacy code from auto-detecting PCHs. Change 4230521 by Ben.Marsh UBT: Add utility functions to the log class to allow formatting errors and warnings in Visual Studio output format (eg. File(Line): warning: Message) Change 4230871 by Ben.Marsh UAT: Remove StreamUtilis utility class; there is a simpler way to implement the one place it's used. Change 4230882 by Ben.Marsh UAT: Add StreamUtils back into UAT, seems like it's still used there. Change 4230896 by Ben.Marsh UBT: Remove some redundant parameters from UEBuildModule/UEBuildModuleCPP/UEBuildModuleExternal constructors. Change 4231014 by Ben.Marsh WorkspaceTool: Include a dump of raw bytes when garbage is read from the P4 process, for diagnostic purposes. Change 4231032 by Ben.Marsh Fix CIS. Change 4231096 by Ben.Marsh Bump the FlatCPPIncludeDependencyCache version, to prevent errors trying to load old files. Change 4231446 by Ben.Marsh UBT: Added support for expanding UE-specific variables in include paths and library paths: $(EngineDir), $(ProjectDir), $(PluginDir), $(ModuleDir). Change 4231460 by Ben.Marsh Modules may now explicitly specify rpaths on Linux via the PublicRuntimeLibraryPaths and PrivateRuntimeLibraryPaths properties. Change 4233909 by Robert.Manuszewski PR #4779: Reason fails as the supplied variable is incorrect (Contributed by projectgheist) Change 4233910 by Ben.Marsh Enable PCHs on IOS. Reduces build time by ~25%. Change 4234176 by Ben.Marsh UBT: Add better messaging for modules that need to have a private PCH set. Now detects the likely PCH using the same method as legacy code and includes it as a suggestion. Change 4234193 by Ben.Marsh Add the Delete command to Perforce wrapper in DotNETUtilities. Change 4234688 by Ben.Marsh UBT: Simplify handling of installed/precompiled builds. Settings for whether a folder is installed/read-only or not is now stored on the RulesAssembly instance, allowing multiple things to be configured separately and stacked together (eg. engine/enterprise/project). RulesAssembly.IsReadOnly() allows determining if a flie can be modified or not and replaces many previous IsXXXInstalledCalls(), and traverses the chain of assemblies. Change 4234711 by Ben.Marsh UBT: Runtime dependencies can now be copied to output directories as part of the build. When adding a runtime dependency, an optional source location can be specified to copy from. Both the source and target paths can use variables can be used as part of the path, eg. $(OutputDir), $(ModuleDir), $(PluginDir). Example usage (from a .build.cs file): RuntimeDependencies.Add("$(OutputDir)/Foo.dll", "$(PluginDir)/Source/ThirdParty/Foo.dll", StagedFileType.NonUFS); Change 4234872 by Ben.Marsh Expose a flag for whether the engine is installed, to fix issues generating project files. Change 4234929 by Ben.Marsh Fix null reference generating receipts when UBT makefiles are active. Change 4235883 by Chad.Garyet Merging 4231245 to core Giving Coordinator its own sln. This should fix what 4158155 was supposed to. #jira UE-61955 Change 4236075 by Ben.Marsh CIS fix Change 4237066 by Robert.Manuszewski Fix for a potential crash when terminating the engine while it's being initialized #jira UE-60545 Change 4237078 by Robert.Manuszewski The engine will no longer be resetting all linkers causing massive load times when renaming the world package when entering Play In Editor Change 4237116 by Ben.Marsh Rewrite some Windows utility functions to support paths longer than MAX_PATH. Change 4237158 by Ben.Marsh Add const TCHAR* overloads of FString::RemoveFromStart() and FString::RemoveFromEnd(). Change 4237159 by Ben.Marsh Fix FWindowsPlatformFile::GetFilenameOnDisk() support for paths longer than MAX_PATH, and simplify some of the other long path functions to avoid copying string buffers. Change 4239050 by Ben.Marsh Missing file Change 4239318 by Ben.Marsh Linux CIS fix. Change 4239685 by Ben.Marsh Static analysis CIS fix. Change 4240800 by Ben.Marsh WorkspaceTool: Include the full command line in the log for any P4 commands. Change 4240903 by Ben.Marsh PR #4909: Update copyright notices to 2018 (Contributed by projectgheist) Change 4241025 by Ben.Marsh UBT: Exclude mobile pipeline caches from generated project files. Causes huge slowdown when using 'Find in Files' through the IDE. Change 4241770 by Ben.Marsh UBT: Include action number in parallel executor output. #jira UE-62032 Change 4243469 by Ben.Marsh TBA: Merge FAnnotatedStructuredArchiveFormatter with FStructuredArchiveFormatter. Any functions that are only implemented for text archives now have a _TextOnly suffix, and are exposed through the FStructuredArchive interface. Change 4245723 by Robert.Manuszewski Fixing another creash when terminating the engine while initializing. #jira UE-60545 Change 4245862 by Steve.Robb VectorLoadFloat2(Ptr) added, which loads { Ptr[0], Ptr[1], Ptr[0], Ptr[1] } into a VectorRegister. Change 4246412 by Robert.Manuszewski The warning 'Calling StaticLoadObject during PostLoad may result in hitches during streaming' will now also report the object which had the PostLoad called on it when StaticLoadObject call happened. Change 4246612 by Ben.Marsh UBT: Fix spelling of "Intellisense". Change 4249454 by Robert.Manuszewski Added extra checks to catch scenarios where the EDL Precache Buffer is flushed before a package header is fully read Change 4249513 by Robert.Manuszewski Made sure the Async Loading Thread doesn't continue running after creating new async packages when garbage collector wants to run on the game thread Change 4255207 by Ben.Marsh UGS: Add additional logging whenever a P4 command fails, and when the user is logged out. Change 4255288 by Ben.Marsh PR #4921: Honor ModuleRules' bEnableExceptions flag when creating precompiled h. (Contributed by surakin) Change 4256422 by Ben.Marsh UBT: Add an error if a module referenced by a plugin descriptor doesn't exist. Change 4257385 by Robert.Manuszewski Creating new objects from within ForEachObjectWithOuter will now result in a fatal error as it's unsafe to change internal UObject hash tables when iterating over them. Change 4257454 by Robert.Manuszewski Added the option to filter clusters listed with gc.ListClusters by objects within them. Usage: gc.ListClusters Hierachy With=ObjectName1,ObjectName2... Change 4257526 by Robert.Manuszewski It's now possible to filter clusters that get logged with verbose cluster logging enabled (UE_GCCLUSTER_VERBOSE_LOGGING=1) by objects within them by specifying -DumpClustersWithObjects=ObjectName1,ObjectName2 in the command line Change 4257822 by Ben.Marsh Fixes for PlatformShowcase compile errors. Change 4258771 by Ben.Marsh UBT: Fix project files not being generated for foreign projects when creating .stub files. #jira UE-62462 Change 4258790 by Ben.Marsh UBT: Clean up the logic around generating project files before creating a stub IPA, so that it fails loudly if project files do not exist, and can accept target names not matching project names. Change 4259276 by Ben.Marsh UBT: Make it an error if a framework doesn't exist, rather than failing silently. Also remove some remote toolchain stuff that's no longer necessary. Change 4259280 by Ben.Marsh UBT: Fix embedded framework zips not being uploaded for plugins. #jira UE-62485 Change 4260236 by Ben.Marsh UBT: Fix path to generated engine project file. Change 4260334 by Ben.Marsh UGS: Fix custom build steps dialog inadvertantly modifying config file settings in-place. Change 4260361 by Ben.Marsh UGS: Allow for p4 login commands to fail, even though the user is logged in (due to a bad connection, etc...) Change 4260559 by Ben.Marsh UGS: Update version. Change 4261160 by Robert.Manuszewski MediaPlaylist will now be added to root set if the owning MediaPlayer is in the disregard for GC set (fixes GC assumption violation crash) #jira UE-62495 Change 4261421 by Ben.Marsh Force-sync files for building documentation, to fix issues with files not being updated. #jira UE-62413 Change 4261425 by Ben.Marsh UBT: Remove some leftover functions for handling the remote toolchain. Change 4261530 by Ben.Marsh UBT: Speculative fix (and better error reporting) for IOS mobile provision not being found in CIS. Change 4261611 by Ben.Marsh UBT: Downgrade warning to a log message, since it appears when generating project files. Change 4261710 by Ben.Marsh Remove assert that GLogConsole is set; it won't be for command line utilities that don't depend on ApplicationCore. #jira UE-62545 Change 4261831 by Ben.Marsh Fix compile errors due to missing include path when hot-reloading a module from the editor. There are not necessarily source files to compile when -modulewithsuffix is specified on the command line, which was results in GeneratedCodeWildcard not being set. #jira UE-62463, UE-62384 Change 4262723 by Ben.Marsh Whitelist plugins that need to be loaded by UFE. #jira UE-62564 Change 4265444 by Ben.Marsh Fix incorrect executable name for DebugGame configurations in Xcode. #jira UE-62574 Change 4265892 by Ben.Marsh Fix incremental compile failures due to dependency checking for unity files. CachedIncludePaths was not correctly being set on file items, so dependencies were being ignored. #jira UE-62575, UE-62603, UE-62597 Change 4266019 by Josh.Adams - Fixed the CopyAction for runtime dependencies that need to be copied to different location, on non-XGE Change 4266264 by Ben.Marsh Remove override for the __IPHONE_OS_VERSION_MIN_REQUIRED macro on TVOS. This macro is already defined by system headers (in <AvailabilityInternal.h>). Now that we support PCHs on IOS and TVOS, manually defining this macro results in it being defined three times (once for the PCH, once by AvailabilityInternal.h, and once by the force-included list of definitions for the source file being built). The errors for redefining the macro in AvailabilityInternal.h are suppressed due to it being a system header, but the error for redefining it for the source file being compiled are not. #jira UE-62578 Change 4266273 by Ben.Marsh Fixes incremental build failure when compile arguments for PCH have changed on IOS/TVOS. Compile action needs to have a dependency on PCH build action. Change 4266614 by Graeme.Thornton Fix crash when cooking nativized blueprints due to removal of child cooker system. Change 4266763 by Ben.Marsh Always build UnrealPak when building client targets. The ProjectParams.Pak option is not reliable, because it can be forced on later by the target platform. #jira UE-62584 Change 4267985 by Robert.Manuszewski When iterating with ForEachObjectWithouter, don't lock the entire has table but only the hash bucket that is currently being iterated #jira UE-62600 Change 4268558 by Robert.Manuszewski PurgeLegacyBlueprints will no longer be called from within ForEachObjectWithOuter is it renames objects that reside in hash tables that are being iterated over which may lead to undefined behavior. #jira UE-62600 Change 4269011 by Chad.Garyet - Fixing Wildcard match issue, the change to ugsapi sends projects as //Depot/Stream instead of //Depot/Stream/ Wildcard match was only substringing to 3 chars. - Checking in the change a while back that increases the number of queried jobs up to 432 based on some maths from Bob about how many builds we want to grab Published to ugsapi server 8/8/17 #jira none Change 4270788 by Ben.Marsh Fix IOS provisioning data being using when remote compiling on TVOS. #jira UE-62705 Change 4271916 by Ben.Marsh Tag the XGEControlWorker executable as a build product after compiling SCW, to make sure it's included in the UGS zip file. Change 4271934 by Ben.Marsh Upload all static libraries in plugin folders as part of remote builds. #jira UE-62694 Change 4273368 by Ben.Marsh Fix Slate dependencies not being enumerated, and rules assembly not being rebuilt when building remotely. #jira UE-62705 Change 4274049 by Ben.Marsh Always parse the team UUID out of the mobile provision when doing a remote compile. The provision installed on the remote Mac (and selected for signing) may be different. #jira UE-62751 Change 4274823 by Ben.Marsh Add the -VersionCookedContent argument to disable the -unversioned parameter on the cooker command line. Change 4275838 by Ben.Marsh Fix BuildVersion string not being passed through from <SetVersion> task. Also add a -BuildVersion command line argument to UBT to override it for a particular build. Change 4275913 by Ben.Marsh Add a dummy exported symbol to the XGEController module, to fix build errors due to missing .lib file when it's built with WITH_XGE_CONTROLLER = 0. Change 4284161 by Ben.Marsh Allow mirroring Oodle files to remote Mac. Change 4074774 by Steve.Robb Vast simplification of TFunction, making it smaller in footprint, easier to follow and extend, and more correct. TUniqueFunction added, which is a move-only TFunction which can hold move-only functors. Fix for UWidgetBlueprint::ForEachSourceWidget() which should never have compiled but did. FFunctionGraphTask and TFuture<> updated to use TUniqueFunction to make them more general. TArray::HeapPop() made to work with move-only types. Change 4082591 by Ben.Marsh Move the Log class from UBT to DotNetUtilities. Change 4083236 by Ben.Marsh Add a Log.WriteException() method to dump an exception message to the console (and write the exception trace to the log) Change 4084107 by Ben.Marsh UAT: Remove the unused -SkipHeader argument to UE4Build. Change 4089771 by Steve.Robb GitHub #4743 : modified VirtualAlloc function flag https://blogs.msdn.microsoft.com/oldnewthing/20151008-00/?p=91411 Change 4091456 by Steve.Robb Unification of all platforms' FMath::CountTrailingZeros() and FMath::CountLeadingZeros() for both 32-bit and 64-bit. Change 4156437 by Ben.Marsh Lots and lots of fixes compiling for Clang on Windows. Editor now compiles cleanly without warnings, but crashes on startup due to error in intrinsics test. Disabling that runs further, but crashes accessing freed memory. Switching to the ANSI allocator runs further, but crashes in Slate after the splash screen and before the editor window opens. // TODO! * Switching between Clang/ICL/VS2015/VS2017 is now supported through the same mechanism as switching Visual Studio versions, without requiring any source level changes. To use Clang, set WindowsPlatform.Compiler = WindowsCompiler.Clang from a .target.cs file, or set <WindowsPlatform><Compiler>Clang</Compiler></WindowsPlatform> from BuildConfiguration.xml. To pick a specific toolchain version, set WindowsPlatform.CompilerVersion. * Clang is now supported through AutoSDKs; will be added to CIS. * The Samples/Sandbox/Clang project forces Clang to be used from its target.cs file, and allows easily building all editor modules and plugins with Clang on Windows. * UnrealMathSSE intrinsics have been re-enabled for Clang due to missing functions from the UnrealMathFPU implementation, but causes failure in tests at startup. * SSE4_CRC32() is disabled in D3D12Pipelinestate.cpp, since intrinsics are only allowed if enabled for the whole target (rather than being used in specific functions due to runtime checks) Change 4157389 by Ben.Marsh Few more fixes for compiling the editor with Clang. Change 4183911 by Ben.Marsh Fixes to support incremental linking on Windows. Does not seem to have any net benefit right now; may improve once minimal rebuild is enabled. * Incremental linking no longer forces PDB files to be enabled for source files. * Actions can specify specific files to be deleted before each build. Code to forcibly delete PDB files has been moved to the MSVC toolchain. * Unused libraries produced by the cross-referenced link are no longer added as build products, since (a) deleting them breaks dependency checking for incremental linking and causes a full link, and (b) not deleting them breaks UBT dependency checking and causes actions to be run over and over again. * Icon update is disabled for Windows when incremental linking is enabled. * Removed rarely-used setting to always delete produced items before each build. Change 4184311 by Ben.Marsh UGS: Added a dialog which shows all the required platform SDKs for a branch, linked from the status panel in UGS. The llist is configured via the UGS config file submitted to Engine/Programs/UnrealGameSync/UnrealGameSync.ini (and may be overridden by the project config file if necessary): [Default] ; Set this to a network share which contains the SDK installers for your site SdkInstallerDir= ; All the required SDKs for the current version of the engine +SdkInfo=(Category="Android", Description="NDK r21", Browse="$(SdkInstallerDir)\\Android") +SdkInfo=(Category="Windows", Description="Visual Studio 2017") +SdkInfo=(Category="Windows", Description="Visual C++ Toolchain 14.13.26128") +SdkInfo=(Category="Windows", Description="Windows SDK 10.0.16299.0") Similar entries for console platforms are added in console subdirectories. Each entry may contain an Install="Foo.exe" and/or Browse="C:\Foo" style attribute, specifying the path to an installer to run or directory to open in explorer respectively. The SdkInstallerDir setting is used as a base directory for the default installers, seen above for Android. Licensees may override this with a network path specific to the site that UGS is being deployed to (either in this file, in a project specific config file, or in a Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini file). Change 4200452 by Ben.Marsh UBT: Change DebugGame configurations to output a separate executable rather than requiring a -Debug argument at runtime. Previous behavior was a common source of errors. Engine modules are still shared between Development and DebugGame, but the launch module sets a flag in Core on startup indicating the game configuration. Change 4206189 by Ben.Marsh UBT: Simplify logic for precompiling binaries. * Target no longer has separate list of "precompile only" binaries or modules. New -AllModules option allows adding every module to a target, which can be used with -Precompile and -NoLink to precompile object files for monolithic builds. * Precompiled file lists have been removed from target receipts. * The manifest now includes all generated headers and precompiled files when run with the -Precompile option. * Separate -DependencyList=Foo.txt has been added to write a list of all dependencies required to use precompiled binaries. This file list can be read using the <Tag> task in buildgraph. Change 4215466 by Ben.Marsh UBT: Remove indirect calls to determine extensions for object files and precompiled headers. The toolchain knows the correct convention for the platform. Change 4215975 by Ben.Marsh UBT: Remove telemetry code. This has never proved useful for analyzing performance due to the number of incidental factors that affect build times (eg. number of files being compiled). Change 4220154 by Ben.Marsh Move text-only implementations of FOutputDeviceError back into Core, so we can build command-line applications that don't depend on ApplicationCore. Change 4224708 by Ben.Marsh Add a bCompileAgainstApplicationCore setting to the target rules, which allows compiling out references to the ApplicationCore module (which should only be necessary for applications with a GUI). Removed ApplicationCore from several engine tools and utilities. Change 4224958 by Ben.Marsh Remove CoreMinimal.h includes from Core. Change 4229059 by Ben.Marsh UBT: Remove the UEBuildPlatform.ShouldNotBuildEditor() hook for target platforms. We shouldn't be modifying a target's build environment to disable the editor; it is invalid to build the editor for these target platforms at all, and this is already enforced by the GetSupportedPlatforms() function. Change 4230508 by Ben.Marsh Fixup precompiled header setting for samples and games. Change 4231457 by Ben.Marsh Fix exceptions in log messages having trailing newlines. Change 4232406 by Ben.Marsh UBT: Always force include a PCH for generated code if there's one set; the code may depend on it to compile. Change 4234177 by Ben.Marsh Set up private PCH files everywhere that previously used them. Change 4235973 by Ben.Marsh Change FPlatformMisc::GetEnvironmentVariable() to return an FString() rather than requiring a fixed size buffer to be passed in. Removes references to MAX_PATH. Change 4238842 by Ben.Marsh Add support for paths longer than MAX_PATH in the editor. Requires Windows 10 version 1607, and the functionality to be enabled via a registry key or group policy (see https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Only a subset of Win32 functions support long paths (executables can only be started from paths shorter than MAX_PATH, for example). * Added a FPlatformMisc::GetMaxPathLength() function to return the maximum length of a path on the current system. On Windows, this returns a different value for systems with long paths enabled to those without. * The MAX_PATH define is no longer set by non-Windows platforms. Instead, there is a MAC_MAX_PATH, UNIX_MAX_PATH, etc... for any platform-specific code that still relies on the previous macro. * The MAX_UNREAL_FILENAME_LENGTH macro has been renamed to MAX_UNREAL_FILENAME_LENGTH_DEPRECATED * The PLATFORM_MAX_FILEPATH_LENGTH macro has been renamed to PLATFORM_MAX_FILEPATH_LENGTH_DEPRECATED. * Removed custom resource files for programs, since they are just copies of the base UE4 one (which is used by default anyway). The base UE4 manifest declares support for long paths. * Fix 512 character maximum length on editor commands. 260 character limit remains in place for cooking at the moment (see ContentBrowserUtils.h), until C# staging code supports long paths. Change 4255042 by Ben.Marsh UBT: Remote compilation now uploads the entire workspace to the remote Mac and executes a separate remote instance of UBT rather than synchronizing individual actions. This makes the remote compile codepath much simpler, and removes a lot of special cases that exist to support it previously. The list of files to be transferred to the remote are listed as rsync filter rules in Engine/Build/Rsync/RsyncEngine.txt and RsyncProject.txt, which are applied to the root engine directory and project directory respectively. Projects that need to customize which files are uploaded can add their own <ProjectDir>/Build/Rsync/RsyncProject.txt file, which will be included in the filter before the default version. Change 4260567 by Ben.Marsh UAT: Rename CommandUtils.Log to CommandUtils.LogInformation, to avoid conflicts with the underlying Tools.DotNETCommon.Log class. #rb none [CL 4285673 by Ben Marsh in Main branch]
2018-08-14 18:32:34 -04:00
/// <summary>
/// Escapes whitespace in the given command line argument with a backslash. Used on Unix-like platforms for command line arguments in shell commands.
/// </summary>
/// <param name="Argument">The argument to escape </param>
/// <returns>Escaped shell argument</returns>
public static string EscapeShellArgument(string Argument)
{
return Argument.Replace(" ", "\\ ");
}
/// <summary>
/// This is a faster replacement of File.ReadAllText. Code snippet based on code
/// and analysis by Sam Allen
/// http://dotnetperls.com/Content/File-Handling.aspx
/// </summary>
/// <param name="SourceFile"> Source file to fully read and convert to string</param>
/// <returns>Textual representation of file.</returns>
public static string ReadAllText(string SourceFile)
{
using (StreamReader Reader = new StreamReader(SourceFile, System.Text.Encoding.UTF8))
{
return Reader.ReadToEnd();
}
}
/// <summary>
/// Reads the specified environment variable
/// </summary>
/// <param name="VarName"> the environment variable to read</param>
/// <param name="bDefault">the default value to use if missing</param>
/// <returns>the value of the environment variable if found and the default value if missing</returns>
public static bool GetEnvironmentVariable(string VarName, bool bDefault)
{
string Value = Environment.GetEnvironmentVariable(VarName);
if (Value != null)
{
// Convert the string to its boolean value
return Convert.ToBoolean(Value);
}
return bDefault;
}
/// <summary>
/// Reads the specified environment variable
/// </summary>
/// <param name="VarName"> the environment variable to read</param>
/// <param name="Default">the default value to use if missing</param>
/// <returns>the value of the environment variable if found and the default value if missing</returns>
public static string GetStringEnvironmentVariable(string VarName, string Default)
{
string Value = Environment.GetEnvironmentVariable(VarName);
if (Value != null)
{
return Value;
}
return Default;
}
/// <summary>
/// Reads the specified environment variable
/// </summary>
/// <param name="VarName"> the environment variable to read</param>
/// <param name="Default">the default value to use if missing</param>
/// <returns>the value of the environment variable if found and the default value if missing</returns>
public static double GetEnvironmentVariable(string VarName, double Default)
{
string Value = Environment.GetEnvironmentVariable(VarName);
if (Value != null)
{
return Convert.ToDouble(Value);
}
return Default;
}
/// <summary>
/// Reads the specified environment variable
/// </summary>
/// <param name="VarName"> the environment variable to read</param>
/// <param name="Default">the default value to use if missing</param>
/// <returns>the value of the environment variable if found and the default value if missing</returns>
public static string GetEnvironmentVariable(string VarName, string Default)
{
string Value = Environment.GetEnvironmentVariable(VarName);
if (Value != null)
{
return Value;
}
return Default;
}
/// <summary>
/// Try to launch a local process, and produce a friendly error message if it fails.
/// </summary>
public static int RunLocalProcess(Process LocalProcess)
{
int ExitCode = -1;
// release all process resources
using (LocalProcess)
{
LocalProcess.StartInfo.UseShellExecute = false;
LocalProcess.StartInfo.RedirectStandardOutput = true;
LocalProcess.StartInfo.RedirectStandardError = true;
try
{
// Start the process up and then wait for it to finish
LocalProcess.Start();
LocalProcess.BeginOutputReadLine();
LocalProcess.BeginErrorReadLine();
LocalProcess.WaitForExit();
ExitCode = LocalProcess.ExitCode;
}
catch (Exception ex)
{
throw new BuildException(ex, "Failed to start local process for action (\"{0}\"): {1} {2}", ex.Message, LocalProcess.StartInfo.FileName, LocalProcess.StartInfo.Arguments);
}
}
return ExitCode;
}
/// <summary>
/// Runs a local process and pipes the output to the log
/// </summary>
public static int RunLocalProcessAndLogOutput(ProcessStartInfo StartInfo)
{
Process LocalProcess = new Process();
LocalProcess.StartInfo = StartInfo;
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
LocalProcess.OutputDataReceived += (Sender, Args) => { LocalProcessOutput(Args, false); };
LocalProcess.ErrorDataReceived += (Sender, Args) => { LocalProcessOutput(Args, true); };
return RunLocalProcess(LocalProcess);
}
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
/// <summary>
/// Output a line of text from a local process. Implemented as a separate function to give a useful function name in the UAT log prefix.
/// </summary>
static void LocalProcessOutput(DataReceivedEventArgs Args, bool bIsError)
{
if(Args != null && Args.Data != null)
{
if(bIsError)
{
Log.TraceError(Args.Data.TrimEnd());
}
else
{
Log.TraceInformation(Args.Data.TrimEnd());
}
}
}
/// <summary>
/// Runs a local process and pipes the output to a file
/// </summary>
public static int RunLocalProcessAndPrintfOutput(ProcessStartInfo StartInfo)
{
string AppName = Path.GetFileNameWithoutExtension(StartInfo.FileName);
string LogFilenameBase = string.Format("{0}_{1}", AppName, DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss"));
string LogDir = Path.Combine(UnrealBuildTool.EngineDirectory.FullName, "Programs", "AutomationTool", "Saved", "Logs");
string LogFilename = "";
for (int Attempt = 1; Attempt < 100; ++Attempt)
{
try
{
if (!Directory.Exists(LogDir))
{
string IniPath = UnrealBuildTool.GetRemoteIniPath();
if(string.IsNullOrEmpty(IniPath))
{
break;
}
LogDir = Path.Combine(IniPath, "Saved", "Logs");
if(!Directory.Exists(LogDir) && !Directory.CreateDirectory(LogDir).Exists)
{
break;
}
}
string LogFilenameBaseToCreate = LogFilenameBase;
if (Attempt > 1)
{
LogFilenameBaseToCreate += "_" + Attempt;
}
LogFilenameBaseToCreate += ".txt";
string LogFilenameToCreate = Path.Combine(LogDir, LogFilenameBaseToCreate);
if (File.Exists(LogFilenameToCreate))
{
continue;
}
File.CreateText(LogFilenameToCreate).Close();
LogFilename = LogFilenameToCreate;
break;
}
catch (IOException)
{
//fatal error, let report to console
break;
}
}
DataReceivedEventHandler Output = (object sender, DataReceivedEventArgs Args) =>
{
if (Args != null && Args.Data != null)
{
string data = Args.Data.TrimEnd();
if(string.IsNullOrEmpty(data))
{
return;
}
if (!string.IsNullOrEmpty(LogFilename))
{
File.AppendAllLines(LogFilename, data.Split('\n'));
}
else
{
Log.TraceInformation(data);
}
}
};
Process LocalProcess = new Process();
LocalProcess.StartInfo = StartInfo;
LocalProcess.OutputDataReceived += Output;
LocalProcess.ErrorDataReceived += Output;
var ExitCode = RunLocalProcess(LocalProcess);
if(ExitCode != 0 && !string.IsNullOrEmpty(LogFilename))
{
Log.TraceError("Process \'{0}\' failed. Details are in \'{1}\'", AppName, LogFilename);
}
return ExitCode;
}
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
/// <summary>
/// Runs a local process and pipes the output to the log
/// </summary>
public static int RunLocalProcessAndLogOutput(string Command, string Args)
{
return RunLocalProcessAndLogOutput(new ProcessStartInfo(Command, Args));
}
/// <summary>
/// Runs a command line process, and returns simple StdOut output. This doesn't handle errors or return codes
/// </summary>
/// <returns>The entire StdOut generated from the process as a single trimmed string</returns>
/// <param name="Command">Command to run</param>
/// <param name="Args">Arguments to Command</param>
public static string RunLocalProcessAndReturnStdOut(string Command, string Args)
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
{
int ExitCode;
return RunLocalProcessAndReturnStdOut(Command, Args, out ExitCode);
}
/// <summary>
/// Runs a command line process, and returns simple StdOut output.
/// </summary>
/// <returns>The entire StdOut generated from the process as a single trimmed string</returns>
/// <param name="Command">Command to run</param>
/// <param name="Args">Arguments to Command</param>
/// <param name="ExitCode">The return code from the process after it exits</param>
/// <param name="LogOutput">Whether to also log standard output and standard error</param>
public static string RunLocalProcessAndReturnStdOut(string Command, string Args, out int ExitCode, bool LogOutput = false)
{
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 4064755) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3873313 by Nick.Atamas Merging CL 3834212 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a Merging CL 3805354, CL 3822769, CL 3827454, CL 3831789 //UE4/Partner-Google-VR/Engine/... to //Tasks/UE4/Dev-VR-4.19a/Engine/... Change 3873330 by Nick.Atamas Merging CL 3835373 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a Merging CL 3777058 //UE4/Partner-Google-VR/Engine/... to //Tasks/UE4/Dev-VR-4.19a/Engine/... and fixing up QAARApp to work with latest ARCore changes. Change 3873791 by Nick.Atamas Merging //UE4/Dev-Main@3866324 to Dev-VR (//UE4/Dev-VR) to get missing files and fixing CIS. Change 3933769 by Keli.Hlodversson Remove unused IStereoRendering::GetCustomPresent #jira UEVR-1083 Change 3935219 by Nick.Atamas QAARApp re-write. Change 3935664 by Mike.Beach Oculus SI 1.23 changes Change 3941505 by Joe.Graf Made the send & recv buffer sizes for the BackChannel plugin configurable Added send & recv counters for tracking the amount of transmission data Change 3944003 by Joe.Graf Added -buildscw to the CMake build command lines for editors to match what XCode is doing on Mac Change 3945189 by Douglas.Copeland Saving Material with Use w/ Static Lighting Flag set to resolve Engine warnings Change 3945245 by Douglas.Copeland Resaving QA_MeshTypes asset to resolve warnings produced by missing info Change 3945266 by Douglas.Copeland Updating TM-HMDNodes LevelBP WallofGets to use PxielDensity instead of ScreenPercentage. Resolving Engine warnings Change 3947785 by Mike.Beach Oculus changes to Android core count - only count usable cores not deadicated to the OS, etc. Change 3951763 by Joe.Graf Fixed thread ordering bug with remote session frame compression Change 3952242 by Joe.Graf Saved about 20-25% of the cpu time for compressing jpeg when performing the cpu swizzle Change 3954571 by Keli.Hlodversson * Add FXRRenderBridge base class containing common code from different CustomPresent implementations. * Create a default implementation of UpdateViewportRHIBridge in FXRRenderTargetManager by adding GetActiveRenderBridge_GameThread. ** The default implementation now handles calling View->SetCustomPresent instead of making it up to the custom present (now XRRenderBridge) implementation (it already had to handle when the custom present was null.) * Remove unused member variable ViewportRHI from RHICustomPresent. #jira UEVR-1081 Change 3954572 by Keli.Hlodversson * Apply XRRenderBridge and XRRenderTargetManager changes to the SteamVR plugin * Move duplicated methods into an already existing BridgeBaseImpl class #jira UEVR-592 Change 3954573 by Keli.Hlodversson * Apply XRRenderBridge refactor to Oculus plugin #jira UEVR-590 Change 3954575 by Keli.Hlodversson * Apply XRRenderBridge refactor to OSVR #jira UEVR-595 Change 3954578 by Keli.Hlodversson * Apply XRRenderBridge refactor to GoogleVR #jira UEVR-594 Change 3954596 by Keli.Hlodversson Add file missing from cl#3954572 Change 3957882 by Jeff.Fisher UEVR-1100 bLockToHmd false doesn't work correctly -CameraComponent can now tell the LateUpdateManager to store, correctly buffered, the fact that we don't want to do late update this frame. DefaultXRCamera checks that flag before applying the late upate to the camera. #jira UEVR-1100 #review-3956168 Change 3957945 by Jeff.Fisher Fix for Oculus begin/end frame problem after XRRenderBridge refactor. -The 'Frame' lifetime in the frame was not long enough, so it was null by the time GetActiveRenderBridge_GameThread was called. NextFrameToRender is the same value, but has a long enough lifetime. #review-3957897 Change 3958760 by Dongsik.Seo Adding UseCameraRotation feature to StereoPanorama plug-in. To enable this feature, use console command SP.UseCameraRotation 7 Simply add numbers to mark axis to use. 1 = Pitch, 2 = Yaw, 4 = Roll 7 means all axis (1+2+4) #review-3958756 @Joe.Conley Change 3959347 by Douglas.Copeland Fixing spelling errors in test displays Change 3964331 by Jason.Bestimt Merging CL 3959979 from 4.19 to Dev-VR + uplugin change from CL 3954046 GoogleARCore Plugin fixes for Unreal 4.19.1 hotfix: Fixed the crash in Acquire/Release UGoogleARCorePointCloud. Fixed the issue that multiple line trace channel doesn't work correctly. Fixed the issue the passthrough camera texture has blue and red channel swapped when building against gles 3.1 Fixed the issue that UGoogleARCorePointCloud::GetPoint doesn't return position in world space. Change 3967485 by Ryan.Vance Removed the exlude rect, we want to clear stencil on the entire surface. Change 3968028 by Zak.Parrish Nuking contents of existing FaceARSample, to be replaced by the one from Release-4.19. Change 3968114 by Zak.Parrish Adding in the new version of FaceARSample from Release-4.19 #rb none Change 3978381 by Mike.Beach Mirroring CL 3969503 from 4.19 Only triggering new Blueprint event, OnMotionControllerUpdated, from the game thread (causing a assert/crash when triggered from the render thread and the component has been destroyed on the main thread). #jira UE-55445 Change 3981160 by Joe.Graf Merged the BackChannel unit test fix over from Owl Change 3981705 by Mike.Beach [WIP] MR Calibration - Expose a config setting that will alter the tracking origin type used to calibrate (eye vs. floor). #jira UE-55220 Change 3981898 by Joe.Graf Added support for Apple hardware accelerated image conversion to JPEG, TIFF, PNG, and HEIF Added a Blueprint latent action to perform the conversion in the background Change 3981910 by Joe.Graf WIP AR texture support so that other systems can interact with the camera data Change 3982102 by Joe.Graf Pull request: Update CMakefileGenerator.cs for CLion Fixed an issue in the PR and added cleanup for the macro errors that result in FOO()= definitions #jira: UE-57103 GitHub #4619 Change 3982883 by Joe.Graf Added a CLionGenerator for consistency Fixed editor preferred source code accessor parsing in the project file generator Added code to detect the bad assumption of the project name always being UE4 and stripped that off in the CLionSourceCodeAccessor #jira UE-54801 Change 3983687 by Joe.Graf Fixed the lack of platform checks for adding a framework in the Apple image utils plugin causing a Switch compile error Change 3984325 by Jeff.Fisher UEVR-1141 PSVR - fix morpheus on pc render target scaling -Hard coding the target size. Perhaps the old method broke with the pixel density change. #review-3983261 Change 3984563 by Joe.Graf Temporarily disabled ConvertToHEIF on Mac until the build machines are updated to XCode 9.3 Change 3985213 by Zak.Parrish Removing a ton of excess art assets that were taking up lots of space and possibly throwing warnings. We weren't going to use them anyway. #rb none Change 3985577 by Joe.Graf WIP support for the Apple Vision API to perform computer vision tasks on images Change 3985654 by Joe.Graf Fixed missing forward declaration hidden by unity files Change 3990596 by Mike.Beach Adding a delegate for handling when the active XR system modifies the tracking space origin, and a API function for getting a transform between floor and eye space. #jira UE-55220 Change 3990788 by Mike.Beach Attempted CIS fix (fallout from CL 3990596) Change 3990824 by Ryan.Vance Re-submitting 4.19.1 hotfox 3968537 Change 3995804 by Jeff.Fisher Merging cl 3995785 //UE4/Dev-VR-Seal/Engine/Source/... to //UE4/Dev-VR/Engine/Source/... UEVR-1148 bLockToHmd change breaking qagame entry level xr camera behavior -Fixing late update when no camera component is in use. -The camera component's bLockToHMD==false behavior is supposed to be that hmd motion is ignored, meaning we should not do a late update. This behavior is being applied TO the XRCamera system FROM the camera component, but the camera component can go away or be switched at any time. We want the default to be do apply hmd motion and late update, so disabling late update needs to be a positive setting applied each frame. #review-3995764 Change 3999842 by Nick.Whiting Exposing Apple ARKit function library as public for our buddies down under. Change 4005541 by Joe.Graf UE-57541 Blacklisted TVOS since it also defines PLATFORM_IOS as 1 #jira UE-57541 Change 4006308 by Jason.Bestimt #DEV_VR - Hopeful fix for possible unity issue Change 4006543 by Joe.Graf Added code to be more correct on setting face blendshapes Change 4007508 by Jason.Bestimt #LUMIN - Adjusting automation tests. - Moved QA specific content test into QA Game - Wrapped controller not found to only happen on device Change 4007515 by Jason.Bestimt #LUMIN - Disabling privilege warning except on device Change 4007552 by Jason.Bestimt #LUMIN - Wrapping LuminTargetPlatform internals that require WITH_ENGINE Change 4008585 by Joe.Graf Added virtual curves for the head rotation information from the FaceAR's face tracking for streaming via LiveLink #jira: UE-57830 Change 4008604 by Mike.Beach MR - Making the chroma key material easier to customize & switch out. Updating the calibration to let you set whatever params you've exposed in the video processing material (removing hardcoded params for old chroma keying material). #jira UEVR-1153 Change 4009396 by Jason.Bestimt #DEV-VR - Removing warning about stat on different threads (CL 4009124) Change 4009514 by Joe.Graf Added a weighted moving average method to the modify curve anim node Change 4010125 by Jason.Bestimt #DEV-VR - Integrating 0.12 changes from Dev-VR-Seal to Dev-VR Change 4010434 by Jason.Bestimt #DEV-VR - Fix for Lumin Haptic Test include Change 4010945 by Jeff.Fisher QAHapticTests build fix -removed unused bad include Change 4011002 by Nick.Atamas Fixed Android compilation. Change 4011220 by Nick.Atamas - Adding visualization for boundary polygons. - Adding support for vertical planes. Change 4011298 by Mike.Beach MR - Revamping the VideoProcessing/ChromaKeying material so that it: 1) Better extracts luminance from the image 2) Utilizes despill to remove chroma bleed from the scene 3) Leverages the generated despill mask to add back in a faux bounce #jira UEVR-1153 Change 4011858 by Keli.Hlodversson Move ExecuteOn(RHI|Render)Thread from Oculus plugin into XRThreadUtils.{h|cpp} inside the HMD module Use TFunction and TFunctionRef instead of std::function as arguments. (Depends on the changes in CL#3987166: Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures.) -- Ref for methods that guarantee the function has been invoked before returning, TFunction for *_NoWait, as the function may not get execured until later when RHI is in a separate thtread and not bypassed. #jira UE-57380 Change 4011956 by Keli.Hlodversson Fix missing includes after CL#4011858 Change 4012096 by Joe.Graf Disabled building AppleVision on Mac until there's a good solution for older Mac OSes Change 4012294 by Jason.Bestimt #DEV-VR - Adding dependency on LuminRuntimeSettings to MagicLeap module. Hopefully, this will fix the generated files not being found Change 4012390 by Jason.Bestimt #DEV-VR - Misc fixes for static code analysis issues - Guards around GEngine usage - Fix from Rolando for uint32 -> uint64 + shifting warning - Redundant if checks Change 4013426 by Jason.Bestimt #DEV-VR - Guarding RestoreBaseProfile so we don't crash on exit #JIRA: UE-57960 Change 4014661 by Ryan.Vance Initial support for omni-directional stereo captures. https://developers.google.com/vr/jump/rendering-ods-content.pdf Change 4015561 by Jason.Bestimt #DEV-VR - Moving MLSDK out of thirdparty directory to fix static code analysis issue Change 4016202 by Jason.Bestimt #DEV-VR - Integrated CL 2685 from Seal depot #JIRA: UEVR-1157 Change 4016448 by Jason.Bestimt #DEV-VR - Adding LuminRuntimeSettings as dependent modules for anything that references the MLSDK Change 4016457 by Ryan.Vance #jira UE-58018 Cleaning up compiler errors/warnings. Change 4017246 by Jason.Bestimt #DEV-VR - Potential fix for UE-58043 where metal asserts that it should be in the render thread rather than either the render thread OR RHI Thread #JIRA: UE-58043 Change 4018571 by Joe.Graf Added a remapping of curve values in a range to the modify curve anim node Change 4018991 by Joe.Graf Wrapped vertical plane detection in a if iOS 11.3 check since ARKit 1.5 is only availabe from 11.3 on #jira: UE-57999 Change 4019068 by Joe.Graf Changed how Apple Vision support is enabled in code #jira: UE-57552 Change 4019194 by Joe.Graf Added a console command to change where Face AR is publishing LiveLink curve data "LiveLinkFaceAR SendTo=192.168.1.1" Change 4019648 by Keli.Hlodversson Work around build failures caused by missing virtual destructor warnings. Reverting back to Oculus' original method of implementing own RHICommand wrapper around TFunctions and TFunctionRefs (using overloaded inline functions and templates to reduce code duplication.) Change 4019871 by Joe.Graf Changed the __IPHONE_11_3 to the raw numeric value Change 4020121 by Keli.Hlodversson Fix parameter types to match header declarations. Change 4020127 by Keli.Hlodversson Remove dllimport/export macros from cpp file. Change 4020621 by Joe.Graf Wrapped the Apple ARKit plane geometry building in a #if IOS_11_3 check Change 4020910 by Joe.Graf Refactored how ARKit support #define to make it easy to wrap individual features by ARKit version Change 4020952 by Joe.Graf Added checks to make sure PLATFORM_IOS and PLATFORM_TVOS are defined to 0 on non-Apple platforms when checking for ARKit Change 4021116 by Jason.Bestimt #DEV-VR - Integrating CL 4005915 from Dev-Core to remove plugin modules that aren't supported on target platform Change 4021320 by Joe.Graf Fixed warnings resulting from unity builds hiding them Change 4021738 by Chad.Garyet - adding lumin filters - changing defaults for platforms back to true, this was brought over erroneously. #jira none #ROBOMERGE: Dogma, Nightlies Change 4021898 by Chad.Garyet added missing bits from the ue4main script #jira none #ROBOMERGE: Dogma, Nightlies Change 4022583 by Joe.Graf Added functions for checking ARKit version availability at runtime Change 4022610 by Joe.Graf Added checks for ARKit 1.0 availability when creating the AR session to prevent calling invalid selectors on older iOSes Change 4022616 by Joe.Graf Added support for enabling the ARKit 1.5 autofocus setting Change 4022650 by Joe.Graf Defaulted autofocus for AR to on Change 4023026 by Joe.Graf Changed the ARKit video overlay to use the new availability api Change 4023124 by Joe.Graf Switched another version check in the ARKit overlay code to use the faster version Change 4023489 by Ethan.Geller [Dev-VR] #jira none fix AudioMixerModuleName for Lumin. #fyi nick.whiting, jason.bestimt Change 4023995 by Nick.Atamas Properly deprecated the bitfield for plane detection mode. #jira UE-57842 Change 4024992 by Jason.Bestimt #DEV-VR - Adding SupportPlatforms to MagicLeapAnalytics plugin Change 4025702 by Jason.Bestimt #DEV-VR - Fix for loading ML libraries even when the MLSDK is not present #JIRA: UE-58033 Change 4026639 by Mike.Beach Removing innocuous Oculus error that did not match up with the rest of the code - it is handled/acceptable when Frame_RenderThread has been reset. #jira UE-58001 Change 4026949 by Mike.Beach MR - Making a few fixes to the lens undistortion and how it interacts with the MRC component... - Switching to a 16bit displacement map instead of a 32bit UV map (updating the materials accordingly) - Using the OpenCV focal ratio to scale the aspect ratio to avoid stretching from the undistortion - Adding CVar commands to enable/disable pieces of the undistortion - Changing the default undistortion cropping to be uncropped - Removing the need for the 'EnableMapping' material parameter #jira UE-55195 Change 4027147 by Jason.Bestimt #DEV-VR - Fix for UE-58043 (more call sites where it should be Render OR RHI thread) #JIRA: UE-58043 Change 4027301 by Mike.Beach Updating the MRCalibration project's ini so it doesn't error on packaging. Change 4027469 by Mike.Beach MR Calibration - Setting StartInVR to true, so when we package the app, we don't have to manually enable it. Change 4027957 by Mike.Beach As part of renaming the MR plugin, first renaming the root folder to be MixedRealityCaptureFramework. #jira UE-57782 Change 4029182 by Keli.Hlodversson Revert back to not enqueuing RHI tasks when RHI is not on a separate thread. Oculus code depends on being able to call ExecuteOnRHIThread from code potentially called from within other calls to ExecuteOnRHIThread. #jira UE-58079 Change 4029687 by Dragan.Jerosimovic Boy rig and pose asset mb files, maps and masks Change 4030059 by Mike.Beach As part of renaming the MR plugin, renaming the inner module to be MixedRealityCaptureFramework. #jira UE-57782 Change 4030296 by Charles.Egenbacher #LUMIN Copying from Dev-Incoming-Staging to Dev-VR Change 4030593 by Jason.Bestimt #DEV-VR - Merging olaf test maps to Dev-VR Change 4031042 by Keli.Hlodversson Allow executing ExecuteOnRHIThread* on the RHI thread. Enables simplifying destructors that can either be invoked on the RHI or Render thread. #jira UE-58239 Change 4031046 by Keli.Hlodversson Use the new XRThreadUtils functions in the HMD module for executing tasks on the RHI thread #jira UE-58238 Change 4032593 by Mike.Beach As part of renaming the MR plugin, renaming the inner module to be MixedRealityCaptureCalibration. #jira UE-57782 Change 4033911 by Jason.Bestimt #DEV-VR - Fix to LuminToolChain to allow it use a custom strip executable (android instead of gcc) Change 4034087 by Mike.Beach Renaming the MR plugin to be the 'MixedRealityCaptureFramework' plugin. #jira UE-57782 Change 4034253 by Joe.Graf Made the Apple Vision plugin use version checking consistent with ARKit Change 4034543 by Joe.Graf Added availability checks for the Apple Image Utils plugin similar to ARKit #jira: UE-57541 Change 4034548 by Joe.Graf Fixed the implicit conversion in the head rotation curves from the face ar feed causing the values to be 0 Change 4034577 by Jason.Bestimt #DEV-VR - Removing MAC Custom Metal present (fixes Mac with -game rendering all black) Change 4034605 by zak.parrish Checking in test case for head rotation tracking - minor temporary change to AnimBP #rb none Change 4034686 by Jason.Bestimt #DEV-VR - Integrating (most of) CL 3980919 to disable instances of deprecation warnings caused by building for ios11 #JIRA: UE-58046 Change 4034799 by Joe.Graf Added base types for detecting images in a AR session Change 4034820 by Joe.Graf Added a friendly name to UARCandidateImage objects Change 4035010 by Joe.Graf Added support for handling ARImageAnchor notifications from ARKit Change 4035355 by Mike.Beach [WIP] MR - Renaming some classes to reflect the plugin's new name. #jira UE-57782 Change 4035464 by Joe.Graf Added orientation to the ARCandidateImage object to pass to the detection system Change 4035524 by Mike.Beach [WIP] MR - More renaming of some classes to better match the plugin's new name. #jira UE-57782 Change 4035606 by Mike.Beach [WIP] MR - More renaming of some classes to better match the plugin's new name. #jira UE-57782 Change 4035918 by Mike.Beach [WIP] MR - Renaming the MrcFramework module's source files to better match the plugin's new name. #jira UE-57782 Change 4035976 by Mike.Beach [WIP] MR - Renaming some more files and classes to better match the MRC framework's new name. #jira UE-57782 Change 4036044 by Ryan.Vance #jira UEVR-377 Adding support for ISR Translucency. Change 4036069 by Ryan.Vance We can remove the last word PrimitiveVisibilityMap masking for ISR since the maps are always the same size between views. Change 4036073 by Chance.Ivey Fixed select blocks on LuminSamplePawn and GesturesAndTotem map to reflect recent changes. Fixes #JIRA UE-58328 #rb none Change 4036307 by Mike.Beach [WIP] MR - Renaming the MRC calibration files to better match the MRC framework's new name. #jira UE-57782 Change 4036314 by Mike.Beach [WIP] MR - Renaming some more calibration classes to better match the MRC framework's new name. #jira UE-57782 Change 4036319 by Charles.Egenbacher #LUMIN this is an out-of-date version of the lumin sample. Nuking. Change 4036396 by Charles.Egenbacher #LUMIN Adding the up to date version of the LuminSample. Change 4036485 by Sorin.Gradinaru UE-57773 Disable Thermals Message #4.20 #iOS Add in the Remote Session App BP an Execute Console Command node immediately after Event Begin Play, disabling all on-screen messages, for all builds. Change 4036695 by Jason.Bestimt #DEV-VR - Adding Lumin case to PrecompileTargetType check Change 4037110 by Jason.Bestimt #DEV-VR - Extra deprecated macro guards around HarfBuzz includes #JIRA: UE-58046 Change 4037443 by Jason.Bestimt #DEV-VR - Merging CL 4028003 from Partners-Google Change 4037490 by Jason.Bestimt #DEV-VR - Integrating CL 4028922 from Partners-Google (+ assignment guarding) Change 4037691 by Jason.Bestimt #DEV-VR - Swapping order of comparrison operator to deal with const error Change 4037892 by Joe.Graf Added UTexture2D to CGImage conversion in Apple Image Utils plugin Change 4037894 by Joe.Graf Changed the name of a property to make it clearer as to what it is and to have fewer things named similar in the same system Change 4037901 by Joe.Graf Added support for configuring which images you'd like detected during a AR session Change 4037906 by Jason.Bestimt #DEV-VR - Fixing buckled logic for =operator (derp) Change 4038293 by Mike.Beach [WIP] MR - Moving the calibration setup/level/content into its own project, and out of the MR plugin. #jira UE-57782 Change 4038403 by Joe.Graf Added the name from the candidate image when creating the Apple side representation Change 4038488 by Mike.Beach [WIP] MR Calibration - Moving calibration specific files to the MRCalibration project, out of the plugin (followup to CL 4038293). This makes the MRCalibration project a code project now. #jira UE-57782 Change 4038776 by Chance.Ivey Updates to Fix for Gestures change. Affects #JIRA UE-58328, though other non-content issues may cause packaging to fail #rb none #fyi Nick.Whiting Change 4038877 by Mike.Beach [WIP] MR - Renaming assets to better match the new plugin name. #jira UE-57782 Change 4039097 by Joe.Graf Fixed the public include path warnings in the Apple* plugins I added Change 4039106 by Joe.Graf Worked around a bad compile time assert that blocked valid FString::Printf debug code Change 4039209 by Jeff.Fisher Fixing one build script paths Change 4039275 by Jeff.Fisher More include path fixes. Change 4039415 by Joe.Graf Added support for remote session sending AR camera image data to be rendered on the host like we do for AR on device Change 4039471 by Joe.Graf Added a file I missed when adding to the remote session plugin Change 4039473 by Joe.Graf #ifdef-ed some code out until the linkage can be fixed Change 4040249 by Mike.Beach [WIP] MR - Moving some more asset files that aren't needed for the MRC plugin #jira UE-57782 Change 4040365 by Mike.Beach Fixing a compiler issue in the MRCalibration project, since moving MRC files there (WITH_OPENCV is not defined for the project). #jira UE-57782 Change 4040455 by Mike.Beach Moving the few remaining methods that were calibration specific, sprinkled through the MRC plugin. #jira UE-57782 Change 4041404 by Mike.Beach Fixing an issue with BP async nodes - making it so their wrapped function can be renamed and redirected. Change 4041406 by Mike.Beach MR - Splitting the Mrc video util library so that the BP functions needed for calibration aren't exposed to users. #jira UE-57782 Change 4042110 by Jason.Bestimt #DEV-VR - Stopping spew for ML eye tracking when not on platform #JIRA: UE-58365 Change 4042407 by Joe.Graf Disabled HEIF compression on Mac #jira: UE-58479 Change 4042727 by Jason.Bestimt #DEV-VR - Fix for Android compiling without version 24 Change 4042861 by Olaf.Piesche #jira UE-57784 Change 4043105 by Mike.Beach Exposing a way for programmers to strip save game headers from save data, and get to the tagged object serialization portion. #jira UE-58389 Change 4043120 by Mike.Beach MR - Loading the base save data, even if we're unable to fully construct the original save object class. #jira UE-58389 Change 4043401 by Mike.Beach New Oculus poke-a-hole material, in support on SI 1.25. Checking in to alleviate QA contention for testing the rest of SI 1.25. #jira UEVR-1143 Change 4043424 by Mike.Beach Oculus SI 1.24/1.25 - Engine rendering changes #jira UEVR-1143 Change 4043495 by Mike.Beach CIS fix - Missing files needed for the Oculus SI 1.24/25 Vulkan changes. #jira UEVR-1143 Change 4043642 by Zak.Parrish Changes to FaceARSample: added in support for JoeG's smoothing algorithm, also refactored calibration to use the new Modify Curves node. Added some more comments to the AnimBp to make it easier to read. #rb none Change 4045638 by Zak.Parrish Some minor updates to FaceARSample content. Mostly refactoring for new ModifyCurve stuff. Change 4046003 by Jason.Bestimt #DEV-VR - Fix for bEnableAlphaChannelInPostProcessing reading in as false for LuminSample bEnableAlphaChannelInPostProcessing translates to r.PostProcessing.PropagateAlpha in ini files #JIRA: UE-58523 Change 4046548 by Jules.Blok Fix SetInstancedEyeIndex() ignoring the left eye. #jira UE-54044 Change 4046859 by zak.parrish Checking in the new rig from 3Lateral - this prevents the eyelashes from separating Change 4047060 by Nick.Whiting Wrapping -norhithread in PLATFORM_LUMIN to prevent the ML plugin from always disabling RHI threading. #jira UEVR-1192 Change 4047667 by Mike.Beach CIS fix - removing uneeded line from bad merge. Change 4047673 by Mike.Beach More CIS fixes for fallout from recent rendering merge. Change 4048227 by Rolando.Caloca VR - vk - Some Vulkan merge conflicts resolved Change 4048421 by Jason.Bestimt #DEV-VR - Converting OwnerName to EventName in UpdateSceneCaptureContent_RenderThread call Change 4048423 by Jason.Bestimt #DEV-VR - Fixing mediandk version check Change 4048452 by Rolando.Caloca VR - Merge fix Change 4048530 by Rolando.Caloca VR - Merge fix Change 4048607 by Jason.Bestimt #DEV-VR - Probable repair of Mr Mesh post merge Change 4048794 by Rolando.Caloca VK - Fix mobile from merge Change 4048972 by Jeff.Fisher Fixing MeshReconstructor merge problems. Change 4049969 by Ryan.Vance Fixing missing shader assert. Change 4050831 by Ryan.Vance Merge clean up. This is still needed to build w/ vulkan on Lumin. Change 4050854 by Ryan.Vance Merge clean up. We need GetAllocationHandle for the ML Vulkan custom present sRGB workaround. Change 4051495 by Jason.Bestimt #DEV-VR - Adding Android, Quail, Linux vulkan include clauses Change 4052528 by Zak.Parrish Changing defaultEngine.ini for the higher res version of Gremlin Change 4052880 by Ryan.Vance Merge clean up. Now with more Lumin #jira UE-58645 Change 4052991 by zak.parrish Update to FaceTrackingMap2 for proper camera positioning Change 4053139 by Nick.Whiting Fixing Lumin Vulkan platform header Change 4053352 by Mike.Beach On PC (in editor), not enabling ML stereo by default. Waiting for it to be enable by the EnableStereo() call (like we do for Oculus/SteamVR). #jira UE-57991 Change 4053644 by Nick.Whiting Fix for build break by wrapping bStereoDesired in !PLATFORM_LUMIN Change 4054329 by Jason.Bestimt #DEV-VR - Resave of GoogleARCorePassthroughCameraMaterial.uasset #JIRA: UE-58689 Change 4054785 by Mike.Beach Fixing a MRCalibration BP compilation error from the latest merge - was using a deprecated variable which was no longer exposed to BPs. Change 4055466 by Jules.Blok Suppress SteamVR submission errors after they've been logged once. Change 4055500 by Jason.Bestimt #DEV-VR - MrMeshComponent fix for unsupported pixel format #JIRA: UE-58759 Change 4055761 by Ryan.Vance #jira UE-58729 There's a single frame where the TLV textures are not initialized when using FCanvasTileRendererItem on startup. Change 4056008 by Mike.Beach Fixing bad merge from Main. Change 4056616 by Nick.Whiting Changing UBT configs to use Lumin-specific config files #jira UE-58760 Change 4056969 by Keli.Hlodversson MRCalibration: Set r.SceneRenderTargetResizeMethod to "Grow" to avoid cycling the scene render target size on every frame causing a flicker #jira UE-58191 Change 4057356 by Jason.Bestimt #DEV-VR - Guard around JNI function for Lumin Change 4059353 by Nick.Whiting Fix for shadow variable warnings on Linux #jira UE-58843 Change 4060158 by Rolando.Caloca DVR - vk - Temporarily add backbuffer delay/extra copy blit on android #jira UE-58859 Change 4060432 by Mike.Beach Fix for shadow variable warnings on Linux #jira UE-58843 Change 4060520 by Rolando.Caloca VR - Proper fix for r.Vulkan.DelayAcquireBackBuffer=0 - Restore Android to not delay #jira UE-58859 Change 4060587 by Nick.Whiting Fix for minimum iOS version being set to iOS 8 on MRCalibration, which was causing CIS warnings #jira UE-58762 Change 4061277 by Jeff.Fisher UE-58861 //UE4/Dev-VR - Compile UE4Game Lumin - ERROR: MLSDK is not specified; cannot use Lumin toolchain. -Overriding HasAnySDK to setup the MLSDK. Change 4061308 by Jason.Bestimt #DEV-VR - Work around of UE-58864 crashing when mousing over project launcher with only a Lumin device plugged in #JIRA: UE-58864 Change 4062111 by Ryan.Vance #jira UE-58875 Fixing audio compilation failure. Change 4064091 by Jason.Bestimt #DEV-VR - Disabling ML Plugin with the editor when bIsVDZIEnabled is off #JIRA: UE-58954 Change 4064554 by Jason.Bestimt #DEV-VR - Removing ML haptic tests when not on the platform #JIRA: UE-58966 Change 4064755 by Jeff.Fisher UE-58970 Dev-VR - Incremental UE4Editor Linux - Referenced directory 'D:\Build\AutoSDK\HostWin64\Lumin\0.12\lib\linux64' does not exist. -Removed linux from magicleap plugin whitelists, we have no sdk for linux. #review-4064614 #jira UE-58970 [CL 4064889 by Mike Beach in Main branch]
2018-05-10 14:17:01 -04:00
//LUMIN_MERGE
ProcessStartInfo StartInfo = new ProcessStartInfo(Command, Args);
StartInfo.UseShellExecute = false;
StartInfo.RedirectStandardOutput = true;
StartInfo.RedirectStandardError = true;
StartInfo.CreateNoWindow = true;
string FullOutput = "";
string ErrorOutput = "";
using (Process LocalProcess = Process.Start(StartInfo))
{
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 4064755) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3873313 by Nick.Atamas Merging CL 3834212 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a Merging CL 3805354, CL 3822769, CL 3827454, CL 3831789 //UE4/Partner-Google-VR/Engine/... to //Tasks/UE4/Dev-VR-4.19a/Engine/... Change 3873330 by Nick.Atamas Merging CL 3835373 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a Merging CL 3777058 //UE4/Partner-Google-VR/Engine/... to //Tasks/UE4/Dev-VR-4.19a/Engine/... and fixing up QAARApp to work with latest ARCore changes. Change 3873791 by Nick.Atamas Merging //UE4/Dev-Main@3866324 to Dev-VR (//UE4/Dev-VR) to get missing files and fixing CIS. Change 3933769 by Keli.Hlodversson Remove unused IStereoRendering::GetCustomPresent #jira UEVR-1083 Change 3935219 by Nick.Atamas QAARApp re-write. Change 3935664 by Mike.Beach Oculus SI 1.23 changes Change 3941505 by Joe.Graf Made the send & recv buffer sizes for the BackChannel plugin configurable Added send & recv counters for tracking the amount of transmission data Change 3944003 by Joe.Graf Added -buildscw to the CMake build command lines for editors to match what XCode is doing on Mac Change 3945189 by Douglas.Copeland Saving Material with Use w/ Static Lighting Flag set to resolve Engine warnings Change 3945245 by Douglas.Copeland Resaving QA_MeshTypes asset to resolve warnings produced by missing info Change 3945266 by Douglas.Copeland Updating TM-HMDNodes LevelBP WallofGets to use PxielDensity instead of ScreenPercentage. Resolving Engine warnings Change 3947785 by Mike.Beach Oculus changes to Android core count - only count usable cores not deadicated to the OS, etc. Change 3951763 by Joe.Graf Fixed thread ordering bug with remote session frame compression Change 3952242 by Joe.Graf Saved about 20-25% of the cpu time for compressing jpeg when performing the cpu swizzle Change 3954571 by Keli.Hlodversson * Add FXRRenderBridge base class containing common code from different CustomPresent implementations. * Create a default implementation of UpdateViewportRHIBridge in FXRRenderTargetManager by adding GetActiveRenderBridge_GameThread. ** The default implementation now handles calling View->SetCustomPresent instead of making it up to the custom present (now XRRenderBridge) implementation (it already had to handle when the custom present was null.) * Remove unused member variable ViewportRHI from RHICustomPresent. #jira UEVR-1081 Change 3954572 by Keli.Hlodversson * Apply XRRenderBridge and XRRenderTargetManager changes to the SteamVR plugin * Move duplicated methods into an already existing BridgeBaseImpl class #jira UEVR-592 Change 3954573 by Keli.Hlodversson * Apply XRRenderBridge refactor to Oculus plugin #jira UEVR-590 Change 3954575 by Keli.Hlodversson * Apply XRRenderBridge refactor to OSVR #jira UEVR-595 Change 3954578 by Keli.Hlodversson * Apply XRRenderBridge refactor to GoogleVR #jira UEVR-594 Change 3954596 by Keli.Hlodversson Add file missing from cl#3954572 Change 3957882 by Jeff.Fisher UEVR-1100 bLockToHmd false doesn't work correctly -CameraComponent can now tell the LateUpdateManager to store, correctly buffered, the fact that we don't want to do late update this frame. DefaultXRCamera checks that flag before applying the late upate to the camera. #jira UEVR-1100 #review-3956168 Change 3957945 by Jeff.Fisher Fix for Oculus begin/end frame problem after XRRenderBridge refactor. -The 'Frame' lifetime in the frame was not long enough, so it was null by the time GetActiveRenderBridge_GameThread was called. NextFrameToRender is the same value, but has a long enough lifetime. #review-3957897 Change 3958760 by Dongsik.Seo Adding UseCameraRotation feature to StereoPanorama plug-in. To enable this feature, use console command SP.UseCameraRotation 7 Simply add numbers to mark axis to use. 1 = Pitch, 2 = Yaw, 4 = Roll 7 means all axis (1+2+4) #review-3958756 @Joe.Conley Change 3959347 by Douglas.Copeland Fixing spelling errors in test displays Change 3964331 by Jason.Bestimt Merging CL 3959979 from 4.19 to Dev-VR + uplugin change from CL 3954046 GoogleARCore Plugin fixes for Unreal 4.19.1 hotfix: Fixed the crash in Acquire/Release UGoogleARCorePointCloud. Fixed the issue that multiple line trace channel doesn't work correctly. Fixed the issue the passthrough camera texture has blue and red channel swapped when building against gles 3.1 Fixed the issue that UGoogleARCorePointCloud::GetPoint doesn't return position in world space. Change 3967485 by Ryan.Vance Removed the exlude rect, we want to clear stencil on the entire surface. Change 3968028 by Zak.Parrish Nuking contents of existing FaceARSample, to be replaced by the one from Release-4.19. Change 3968114 by Zak.Parrish Adding in the new version of FaceARSample from Release-4.19 #rb none Change 3978381 by Mike.Beach Mirroring CL 3969503 from 4.19 Only triggering new Blueprint event, OnMotionControllerUpdated, from the game thread (causing a assert/crash when triggered from the render thread and the component has been destroyed on the main thread). #jira UE-55445 Change 3981160 by Joe.Graf Merged the BackChannel unit test fix over from Owl Change 3981705 by Mike.Beach [WIP] MR Calibration - Expose a config setting that will alter the tracking origin type used to calibrate (eye vs. floor). #jira UE-55220 Change 3981898 by Joe.Graf Added support for Apple hardware accelerated image conversion to JPEG, TIFF, PNG, and HEIF Added a Blueprint latent action to perform the conversion in the background Change 3981910 by Joe.Graf WIP AR texture support so that other systems can interact with the camera data Change 3982102 by Joe.Graf Pull request: Update CMakefileGenerator.cs for CLion Fixed an issue in the PR and added cleanup for the macro errors that result in FOO()= definitions #jira: UE-57103 GitHub #4619 Change 3982883 by Joe.Graf Added a CLionGenerator for consistency Fixed editor preferred source code accessor parsing in the project file generator Added code to detect the bad assumption of the project name always being UE4 and stripped that off in the CLionSourceCodeAccessor #jira UE-54801 Change 3983687 by Joe.Graf Fixed the lack of platform checks for adding a framework in the Apple image utils plugin causing a Switch compile error Change 3984325 by Jeff.Fisher UEVR-1141 PSVR - fix morpheus on pc render target scaling -Hard coding the target size. Perhaps the old method broke with the pixel density change. #review-3983261 Change 3984563 by Joe.Graf Temporarily disabled ConvertToHEIF on Mac until the build machines are updated to XCode 9.3 Change 3985213 by Zak.Parrish Removing a ton of excess art assets that were taking up lots of space and possibly throwing warnings. We weren't going to use them anyway. #rb none Change 3985577 by Joe.Graf WIP support for the Apple Vision API to perform computer vision tasks on images Change 3985654 by Joe.Graf Fixed missing forward declaration hidden by unity files Change 3990596 by Mike.Beach Adding a delegate for handling when the active XR system modifies the tracking space origin, and a API function for getting a transform between floor and eye space. #jira UE-55220 Change 3990788 by Mike.Beach Attempted CIS fix (fallout from CL 3990596) Change 3990824 by Ryan.Vance Re-submitting 4.19.1 hotfox 3968537 Change 3995804 by Jeff.Fisher Merging cl 3995785 //UE4/Dev-VR-Seal/Engine/Source/... to //UE4/Dev-VR/Engine/Source/... UEVR-1148 bLockToHmd change breaking qagame entry level xr camera behavior -Fixing late update when no camera component is in use. -The camera component's bLockToHMD==false behavior is supposed to be that hmd motion is ignored, meaning we should not do a late update. This behavior is being applied TO the XRCamera system FROM the camera component, but the camera component can go away or be switched at any time. We want the default to be do apply hmd motion and late update, so disabling late update needs to be a positive setting applied each frame. #review-3995764 Change 3999842 by Nick.Whiting Exposing Apple ARKit function library as public for our buddies down under. Change 4005541 by Joe.Graf UE-57541 Blacklisted TVOS since it also defines PLATFORM_IOS as 1 #jira UE-57541 Change 4006308 by Jason.Bestimt #DEV_VR - Hopeful fix for possible unity issue Change 4006543 by Joe.Graf Added code to be more correct on setting face blendshapes Change 4007508 by Jason.Bestimt #LUMIN - Adjusting automation tests. - Moved QA specific content test into QA Game - Wrapped controller not found to only happen on device Change 4007515 by Jason.Bestimt #LUMIN - Disabling privilege warning except on device Change 4007552 by Jason.Bestimt #LUMIN - Wrapping LuminTargetPlatform internals that require WITH_ENGINE Change 4008585 by Joe.Graf Added virtual curves for the head rotation information from the FaceAR's face tracking for streaming via LiveLink #jira: UE-57830 Change 4008604 by Mike.Beach MR - Making the chroma key material easier to customize & switch out. Updating the calibration to let you set whatever params you've exposed in the video processing material (removing hardcoded params for old chroma keying material). #jira UEVR-1153 Change 4009396 by Jason.Bestimt #DEV-VR - Removing warning about stat on different threads (CL 4009124) Change 4009514 by Joe.Graf Added a weighted moving average method to the modify curve anim node Change 4010125 by Jason.Bestimt #DEV-VR - Integrating 0.12 changes from Dev-VR-Seal to Dev-VR Change 4010434 by Jason.Bestimt #DEV-VR - Fix for Lumin Haptic Test include Change 4010945 by Jeff.Fisher QAHapticTests build fix -removed unused bad include Change 4011002 by Nick.Atamas Fixed Android compilation. Change 4011220 by Nick.Atamas - Adding visualization for boundary polygons. - Adding support for vertical planes. Change 4011298 by Mike.Beach MR - Revamping the VideoProcessing/ChromaKeying material so that it: 1) Better extracts luminance from the image 2) Utilizes despill to remove chroma bleed from the scene 3) Leverages the generated despill mask to add back in a faux bounce #jira UEVR-1153 Change 4011858 by Keli.Hlodversson Move ExecuteOn(RHI|Render)Thread from Oculus plugin into XRThreadUtils.{h|cpp} inside the HMD module Use TFunction and TFunctionRef instead of std::function as arguments. (Depends on the changes in CL#3987166: Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures.) -- Ref for methods that guarantee the function has been invoked before returning, TFunction for *_NoWait, as the function may not get execured until later when RHI is in a separate thtread and not bypassed. #jira UE-57380 Change 4011956 by Keli.Hlodversson Fix missing includes after CL#4011858 Change 4012096 by Joe.Graf Disabled building AppleVision on Mac until there's a good solution for older Mac OSes Change 4012294 by Jason.Bestimt #DEV-VR - Adding dependency on LuminRuntimeSettings to MagicLeap module. Hopefully, this will fix the generated files not being found Change 4012390 by Jason.Bestimt #DEV-VR - Misc fixes for static code analysis issues - Guards around GEngine usage - Fix from Rolando for uint32 -> uint64 + shifting warning - Redundant if checks Change 4013426 by Jason.Bestimt #DEV-VR - Guarding RestoreBaseProfile so we don't crash on exit #JIRA: UE-57960 Change 4014661 by Ryan.Vance Initial support for omni-directional stereo captures. https://developers.google.com/vr/jump/rendering-ods-content.pdf Change 4015561 by Jason.Bestimt #DEV-VR - Moving MLSDK out of thirdparty directory to fix static code analysis issue Change 4016202 by Jason.Bestimt #DEV-VR - Integrated CL 2685 from Seal depot #JIRA: UEVR-1157 Change 4016448 by Jason.Bestimt #DEV-VR - Adding LuminRuntimeSettings as dependent modules for anything that references the MLSDK Change 4016457 by Ryan.Vance #jira UE-58018 Cleaning up compiler errors/warnings. Change 4017246 by Jason.Bestimt #DEV-VR - Potential fix for UE-58043 where metal asserts that it should be in the render thread rather than either the render thread OR RHI Thread #JIRA: UE-58043 Change 4018571 by Joe.Graf Added a remapping of curve values in a range to the modify curve anim node Change 4018991 by Joe.Graf Wrapped vertical plane detection in a if iOS 11.3 check since ARKit 1.5 is only availabe from 11.3 on #jira: UE-57999 Change 4019068 by Joe.Graf Changed how Apple Vision support is enabled in code #jira: UE-57552 Change 4019194 by Joe.Graf Added a console command to change where Face AR is publishing LiveLink curve data "LiveLinkFaceAR SendTo=192.168.1.1" Change 4019648 by Keli.Hlodversson Work around build failures caused by missing virtual destructor warnings. Reverting back to Oculus' original method of implementing own RHICommand wrapper around TFunctions and TFunctionRefs (using overloaded inline functions and templates to reduce code duplication.) Change 4019871 by Joe.Graf Changed the __IPHONE_11_3 to the raw numeric value Change 4020121 by Keli.Hlodversson Fix parameter types to match header declarations. Change 4020127 by Keli.Hlodversson Remove dllimport/export macros from cpp file. Change 4020621 by Joe.Graf Wrapped the Apple ARKit plane geometry building in a #if IOS_11_3 check Change 4020910 by Joe.Graf Refactored how ARKit support #define to make it easy to wrap individual features by ARKit version Change 4020952 by Joe.Graf Added checks to make sure PLATFORM_IOS and PLATFORM_TVOS are defined to 0 on non-Apple platforms when checking for ARKit Change 4021116 by Jason.Bestimt #DEV-VR - Integrating CL 4005915 from Dev-Core to remove plugin modules that aren't supported on target platform Change 4021320 by Joe.Graf Fixed warnings resulting from unity builds hiding them Change 4021738 by Chad.Garyet - adding lumin filters - changing defaults for platforms back to true, this was brought over erroneously. #jira none #ROBOMERGE: Dogma, Nightlies Change 4021898 by Chad.Garyet added missing bits from the ue4main script #jira none #ROBOMERGE: Dogma, Nightlies Change 4022583 by Joe.Graf Added functions for checking ARKit version availability at runtime Change 4022610 by Joe.Graf Added checks for ARKit 1.0 availability when creating the AR session to prevent calling invalid selectors on older iOSes Change 4022616 by Joe.Graf Added support for enabling the ARKit 1.5 autofocus setting Change 4022650 by Joe.Graf Defaulted autofocus for AR to on Change 4023026 by Joe.Graf Changed the ARKit video overlay to use the new availability api Change 4023124 by Joe.Graf Switched another version check in the ARKit overlay code to use the faster version Change 4023489 by Ethan.Geller [Dev-VR] #jira none fix AudioMixerModuleName for Lumin. #fyi nick.whiting, jason.bestimt Change 4023995 by Nick.Atamas Properly deprecated the bitfield for plane detection mode. #jira UE-57842 Change 4024992 by Jason.Bestimt #DEV-VR - Adding SupportPlatforms to MagicLeapAnalytics plugin Change 4025702 by Jason.Bestimt #DEV-VR - Fix for loading ML libraries even when the MLSDK is not present #JIRA: UE-58033 Change 4026639 by Mike.Beach Removing innocuous Oculus error that did not match up with the rest of the code - it is handled/acceptable when Frame_RenderThread has been reset. #jira UE-58001 Change 4026949 by Mike.Beach MR - Making a few fixes to the lens undistortion and how it interacts with the MRC component... - Switching to a 16bit displacement map instead of a 32bit UV map (updating the materials accordingly) - Using the OpenCV focal ratio to scale the aspect ratio to avoid stretching from the undistortion - Adding CVar commands to enable/disable pieces of the undistortion - Changing the default undistortion cropping to be uncropped - Removing the need for the 'EnableMapping' material parameter #jira UE-55195 Change 4027147 by Jason.Bestimt #DEV-VR - Fix for UE-58043 (more call sites where it should be Render OR RHI thread) #JIRA: UE-58043 Change 4027301 by Mike.Beach Updating the MRCalibration project's ini so it doesn't error on packaging. Change 4027469 by Mike.Beach MR Calibration - Setting StartInVR to true, so when we package the app, we don't have to manually enable it. Change 4027957 by Mike.Beach As part of renaming the MR plugin, first renaming the root folder to be MixedRealityCaptureFramework. #jira UE-57782 Change 4029182 by Keli.Hlodversson Revert back to not enqueuing RHI tasks when RHI is not on a separate thread. Oculus code depends on being able to call ExecuteOnRHIThread from code potentially called from within other calls to ExecuteOnRHIThread. #jira UE-58079 Change 4029687 by Dragan.Jerosimovic Boy rig and pose asset mb files, maps and masks Change 4030059 by Mike.Beach As part of renaming the MR plugin, renaming the inner module to be MixedRealityCaptureFramework. #jira UE-57782 Change 4030296 by Charles.Egenbacher #LUMIN Copying from Dev-Incoming-Staging to Dev-VR Change 4030593 by Jason.Bestimt #DEV-VR - Merging olaf test maps to Dev-VR Change 4031042 by Keli.Hlodversson Allow executing ExecuteOnRHIThread* on the RHI thread. Enables simplifying destructors that can either be invoked on the RHI or Render thread. #jira UE-58239 Change 4031046 by Keli.Hlodversson Use the new XRThreadUtils functions in the HMD module for executing tasks on the RHI thread #jira UE-58238 Change 4032593 by Mike.Beach As part of renaming the MR plugin, renaming the inner module to be MixedRealityCaptureCalibration. #jira UE-57782 Change 4033911 by Jason.Bestimt #DEV-VR - Fix to LuminToolChain to allow it use a custom strip executable (android instead of gcc) Change 4034087 by Mike.Beach Renaming the MR plugin to be the 'MixedRealityCaptureFramework' plugin. #jira UE-57782 Change 4034253 by Joe.Graf Made the Apple Vision plugin use version checking consistent with ARKit Change 4034543 by Joe.Graf Added availability checks for the Apple Image Utils plugin similar to ARKit #jira: UE-57541 Change 4034548 by Joe.Graf Fixed the implicit conversion in the head rotation curves from the face ar feed causing the values to be 0 Change 4034577 by Jason.Bestimt #DEV-VR - Removing MAC Custom Metal present (fixes Mac with -game rendering all black) Change 4034605 by zak.parrish Checking in test case for head rotation tracking - minor temporary change to AnimBP #rb none Change 4034686 by Jason.Bestimt #DEV-VR - Integrating (most of) CL 3980919 to disable instances of deprecation warnings caused by building for ios11 #JIRA: UE-58046 Change 4034799 by Joe.Graf Added base types for detecting images in a AR session Change 4034820 by Joe.Graf Added a friendly name to UARCandidateImage objects Change 4035010 by Joe.Graf Added support for handling ARImageAnchor notifications from ARKit Change 4035355 by Mike.Beach [WIP] MR - Renaming some classes to reflect the plugin's new name. #jira UE-57782 Change 4035464 by Joe.Graf Added orientation to the ARCandidateImage object to pass to the detection system Change 4035524 by Mike.Beach [WIP] MR - More renaming of some classes to better match the plugin's new name. #jira UE-57782 Change 4035606 by Mike.Beach [WIP] MR - More renaming of some classes to better match the plugin's new name. #jira UE-57782 Change 4035918 by Mike.Beach [WIP] MR - Renaming the MrcFramework module's source files to better match the plugin's new name. #jira UE-57782 Change 4035976 by Mike.Beach [WIP] MR - Renaming some more files and classes to better match the MRC framework's new name. #jira UE-57782 Change 4036044 by Ryan.Vance #jira UEVR-377 Adding support for ISR Translucency. Change 4036069 by Ryan.Vance We can remove the last word PrimitiveVisibilityMap masking for ISR since the maps are always the same size between views. Change 4036073 by Chance.Ivey Fixed select blocks on LuminSamplePawn and GesturesAndTotem map to reflect recent changes. Fixes #JIRA UE-58328 #rb none Change 4036307 by Mike.Beach [WIP] MR - Renaming the MRC calibration files to better match the MRC framework's new name. #jira UE-57782 Change 4036314 by Mike.Beach [WIP] MR - Renaming some more calibration classes to better match the MRC framework's new name. #jira UE-57782 Change 4036319 by Charles.Egenbacher #LUMIN this is an out-of-date version of the lumin sample. Nuking. Change 4036396 by Charles.Egenbacher #LUMIN Adding the up to date version of the LuminSample. Change 4036485 by Sorin.Gradinaru UE-57773 Disable Thermals Message #4.20 #iOS Add in the Remote Session App BP an Execute Console Command node immediately after Event Begin Play, disabling all on-screen messages, for all builds. Change 4036695 by Jason.Bestimt #DEV-VR - Adding Lumin case to PrecompileTargetType check Change 4037110 by Jason.Bestimt #DEV-VR - Extra deprecated macro guards around HarfBuzz includes #JIRA: UE-58046 Change 4037443 by Jason.Bestimt #DEV-VR - Merging CL 4028003 from Partners-Google Change 4037490 by Jason.Bestimt #DEV-VR - Integrating CL 4028922 from Partners-Google (+ assignment guarding) Change 4037691 by Jason.Bestimt #DEV-VR - Swapping order of comparrison operator to deal with const error Change 4037892 by Joe.Graf Added UTexture2D to CGImage conversion in Apple Image Utils plugin Change 4037894 by Joe.Graf Changed the name of a property to make it clearer as to what it is and to have fewer things named similar in the same system Change 4037901 by Joe.Graf Added support for configuring which images you'd like detected during a AR session Change 4037906 by Jason.Bestimt #DEV-VR - Fixing buckled logic for =operator (derp) Change 4038293 by Mike.Beach [WIP] MR - Moving the calibration setup/level/content into its own project, and out of the MR plugin. #jira UE-57782 Change 4038403 by Joe.Graf Added the name from the candidate image when creating the Apple side representation Change 4038488 by Mike.Beach [WIP] MR Calibration - Moving calibration specific files to the MRCalibration project, out of the plugin (followup to CL 4038293). This makes the MRCalibration project a code project now. #jira UE-57782 Change 4038776 by Chance.Ivey Updates to Fix for Gestures change. Affects #JIRA UE-58328, though other non-content issues may cause packaging to fail #rb none #fyi Nick.Whiting Change 4038877 by Mike.Beach [WIP] MR - Renaming assets to better match the new plugin name. #jira UE-57782 Change 4039097 by Joe.Graf Fixed the public include path warnings in the Apple* plugins I added Change 4039106 by Joe.Graf Worked around a bad compile time assert that blocked valid FString::Printf debug code Change 4039209 by Jeff.Fisher Fixing one build script paths Change 4039275 by Jeff.Fisher More include path fixes. Change 4039415 by Joe.Graf Added support for remote session sending AR camera image data to be rendered on the host like we do for AR on device Change 4039471 by Joe.Graf Added a file I missed when adding to the remote session plugin Change 4039473 by Joe.Graf #ifdef-ed some code out until the linkage can be fixed Change 4040249 by Mike.Beach [WIP] MR - Moving some more asset files that aren't needed for the MRC plugin #jira UE-57782 Change 4040365 by Mike.Beach Fixing a compiler issue in the MRCalibration project, since moving MRC files there (WITH_OPENCV is not defined for the project). #jira UE-57782 Change 4040455 by Mike.Beach Moving the few remaining methods that were calibration specific, sprinkled through the MRC plugin. #jira UE-57782 Change 4041404 by Mike.Beach Fixing an issue with BP async nodes - making it so their wrapped function can be renamed and redirected. Change 4041406 by Mike.Beach MR - Splitting the Mrc video util library so that the BP functions needed for calibration aren't exposed to users. #jira UE-57782 Change 4042110 by Jason.Bestimt #DEV-VR - Stopping spew for ML eye tracking when not on platform #JIRA: UE-58365 Change 4042407 by Joe.Graf Disabled HEIF compression on Mac #jira: UE-58479 Change 4042727 by Jason.Bestimt #DEV-VR - Fix for Android compiling without version 24 Change 4042861 by Olaf.Piesche #jira UE-57784 Change 4043105 by Mike.Beach Exposing a way for programmers to strip save game headers from save data, and get to the tagged object serialization portion. #jira UE-58389 Change 4043120 by Mike.Beach MR - Loading the base save data, even if we're unable to fully construct the original save object class. #jira UE-58389 Change 4043401 by Mike.Beach New Oculus poke-a-hole material, in support on SI 1.25. Checking in to alleviate QA contention for testing the rest of SI 1.25. #jira UEVR-1143 Change 4043424 by Mike.Beach Oculus SI 1.24/1.25 - Engine rendering changes #jira UEVR-1143 Change 4043495 by Mike.Beach CIS fix - Missing files needed for the Oculus SI 1.24/25 Vulkan changes. #jira UEVR-1143 Change 4043642 by Zak.Parrish Changes to FaceARSample: added in support for JoeG's smoothing algorithm, also refactored calibration to use the new Modify Curves node. Added some more comments to the AnimBp to make it easier to read. #rb none Change 4045638 by Zak.Parrish Some minor updates to FaceARSample content. Mostly refactoring for new ModifyCurve stuff. Change 4046003 by Jason.Bestimt #DEV-VR - Fix for bEnableAlphaChannelInPostProcessing reading in as false for LuminSample bEnableAlphaChannelInPostProcessing translates to r.PostProcessing.PropagateAlpha in ini files #JIRA: UE-58523 Change 4046548 by Jules.Blok Fix SetInstancedEyeIndex() ignoring the left eye. #jira UE-54044 Change 4046859 by zak.parrish Checking in the new rig from 3Lateral - this prevents the eyelashes from separating Change 4047060 by Nick.Whiting Wrapping -norhithread in PLATFORM_LUMIN to prevent the ML plugin from always disabling RHI threading. #jira UEVR-1192 Change 4047667 by Mike.Beach CIS fix - removing uneeded line from bad merge. Change 4047673 by Mike.Beach More CIS fixes for fallout from recent rendering merge. Change 4048227 by Rolando.Caloca VR - vk - Some Vulkan merge conflicts resolved Change 4048421 by Jason.Bestimt #DEV-VR - Converting OwnerName to EventName in UpdateSceneCaptureContent_RenderThread call Change 4048423 by Jason.Bestimt #DEV-VR - Fixing mediandk version check Change 4048452 by Rolando.Caloca VR - Merge fix Change 4048530 by Rolando.Caloca VR - Merge fix Change 4048607 by Jason.Bestimt #DEV-VR - Probable repair of Mr Mesh post merge Change 4048794 by Rolando.Caloca VK - Fix mobile from merge Change 4048972 by Jeff.Fisher Fixing MeshReconstructor merge problems. Change 4049969 by Ryan.Vance Fixing missing shader assert. Change 4050831 by Ryan.Vance Merge clean up. This is still needed to build w/ vulkan on Lumin. Change 4050854 by Ryan.Vance Merge clean up. We need GetAllocationHandle for the ML Vulkan custom present sRGB workaround. Change 4051495 by Jason.Bestimt #DEV-VR - Adding Android, Quail, Linux vulkan include clauses Change 4052528 by Zak.Parrish Changing defaultEngine.ini for the higher res version of Gremlin Change 4052880 by Ryan.Vance Merge clean up. Now with more Lumin #jira UE-58645 Change 4052991 by zak.parrish Update to FaceTrackingMap2 for proper camera positioning Change 4053139 by Nick.Whiting Fixing Lumin Vulkan platform header Change 4053352 by Mike.Beach On PC (in editor), not enabling ML stereo by default. Waiting for it to be enable by the EnableStereo() call (like we do for Oculus/SteamVR). #jira UE-57991 Change 4053644 by Nick.Whiting Fix for build break by wrapping bStereoDesired in !PLATFORM_LUMIN Change 4054329 by Jason.Bestimt #DEV-VR - Resave of GoogleARCorePassthroughCameraMaterial.uasset #JIRA: UE-58689 Change 4054785 by Mike.Beach Fixing a MRCalibration BP compilation error from the latest merge - was using a deprecated variable which was no longer exposed to BPs. Change 4055466 by Jules.Blok Suppress SteamVR submission errors after they've been logged once. Change 4055500 by Jason.Bestimt #DEV-VR - MrMeshComponent fix for unsupported pixel format #JIRA: UE-58759 Change 4055761 by Ryan.Vance #jira UE-58729 There's a single frame where the TLV textures are not initialized when using FCanvasTileRendererItem on startup. Change 4056008 by Mike.Beach Fixing bad merge from Main. Change 4056616 by Nick.Whiting Changing UBT configs to use Lumin-specific config files #jira UE-58760 Change 4056969 by Keli.Hlodversson MRCalibration: Set r.SceneRenderTargetResizeMethod to "Grow" to avoid cycling the scene render target size on every frame causing a flicker #jira UE-58191 Change 4057356 by Jason.Bestimt #DEV-VR - Guard around JNI function for Lumin Change 4059353 by Nick.Whiting Fix for shadow variable warnings on Linux #jira UE-58843 Change 4060158 by Rolando.Caloca DVR - vk - Temporarily add backbuffer delay/extra copy blit on android #jira UE-58859 Change 4060432 by Mike.Beach Fix for shadow variable warnings on Linux #jira UE-58843 Change 4060520 by Rolando.Caloca VR - Proper fix for r.Vulkan.DelayAcquireBackBuffer=0 - Restore Android to not delay #jira UE-58859 Change 4060587 by Nick.Whiting Fix for minimum iOS version being set to iOS 8 on MRCalibration, which was causing CIS warnings #jira UE-58762 Change 4061277 by Jeff.Fisher UE-58861 //UE4/Dev-VR - Compile UE4Game Lumin - ERROR: MLSDK is not specified; cannot use Lumin toolchain. -Overriding HasAnySDK to setup the MLSDK. Change 4061308 by Jason.Bestimt #DEV-VR - Work around of UE-58864 crashing when mousing over project launcher with only a Lumin device plugged in #JIRA: UE-58864 Change 4062111 by Ryan.Vance #jira UE-58875 Fixing audio compilation failure. Change 4064091 by Jason.Bestimt #DEV-VR - Disabling ML Plugin with the editor when bIsVDZIEnabled is off #JIRA: UE-58954 Change 4064554 by Jason.Bestimt #DEV-VR - Removing ML haptic tests when not on the platform #JIRA: UE-58966 Change 4064755 by Jeff.Fisher UE-58970 Dev-VR - Incremental UE4Editor Linux - Referenced directory 'D:\Build\AutoSDK\HostWin64\Lumin\0.12\lib\linux64' does not exist. -Removed linux from magicleap plugin whitelists, we have no sdk for linux. #review-4064614 #jira UE-58970 [CL 4064889 by Mike Beach in Main branch]
2018-05-10 14:17:01 -04:00
StreamReader OutputReader = LocalProcess.StandardOutput;
// trim off any extraneous new lines, helpful for those one-line outputs
FullOutput = OutputReader.ReadToEnd().Trim();
StreamReader ErrorReader = LocalProcess.StandardError;
// trim off any extraneous new lines, helpful for those one-line outputs
ErrorOutput = ErrorReader.ReadToEnd().Trim();
if (LogOutput)
{
if(FullOutput.Length > 0)
{
Log.TraceInformation(FullOutput);
}
if (ErrorOutput.Length > 0)
{
Log.TraceError(ErrorOutput);
}
}
LocalProcess.WaitForExit();
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
ExitCode = LocalProcess.ExitCode;
}
// trim off any extraneous new lines, helpful for those one-line outputs
if (ErrorOutput.Length > 0)
{
if (FullOutput.Length > 0)
{
FullOutput += Environment.NewLine;
}
FullOutput += ErrorOutput;
}
return FullOutput;
}
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
/// <summary>
/// Find all the platforms in a given class
/// </summary>
/// <param name="Class">Class of platforms to return</param>
/// <returns>Array of platforms in the given class</returns>
public static UnrealTargetPlatform[] GetPlatformsInClass(UnrealPlatformClass Class)
{
switch (Class)
{
case UnrealPlatformClass.All:
return UnrealTargetPlatform.GetValidPlatforms();
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
case UnrealPlatformClass.Desktop:
return UEBuildPlatform.GetPlatformsInGroup(UnrealPlatformGroup.Desktop).ToArray();
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
case UnrealPlatformClass.Editor:
return new UnrealTargetPlatform[] { UnrealTargetPlatform.Win64, UnrealTargetPlatform.Linux, UnrealTargetPlatform.Mac };
case UnrealPlatformClass.Server:
return new UnrealTargetPlatform[] { UnrealTargetPlatform.Win32, UnrealTargetPlatform.Win64, UnrealTargetPlatform.Linux, UnrealTargetPlatform.LinuxAArch64, UnrealTargetPlatform.Mac };
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
}
throw new ArgumentException(String.Format("'{0}' is not a valid value for UnrealPlatformClass", (int)Class));
}
/// <summary>
/// Given a list of supported platforms, returns a list of names of platforms that should not be supported
/// </summary>
/// <param name="SupportedPlatforms">List of supported platforms</param>
/// <param name="bIncludeUnbuildablePlatforms">If true, add platforms that are present but not available for compiling</param>
///
/// <returns>List of unsupported platforms in string format</returns>
public static List<string> MakeListOfUnsupportedPlatforms(List<UnrealTargetPlatform> SupportedPlatforms, bool bIncludeUnbuildablePlatforms)
{
// Make a list of all platform name strings that we're *not* currently compiling, to speed
// up file path comparisons later on
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
List<string> OtherPlatformNameStrings = new List<string>();
{
List<UnrealPlatformGroup> SupportedGroups = new List<UnrealPlatformGroup>();
// look at each group to see if any supported platforms are in it
foreach (UnrealPlatformGroup Group in UnrealPlatformGroup.GetValidGroups())
{
// get the list of platforms registered to this group, if any
List<UnrealTargetPlatform> Platforms = UEBuildPlatform.GetPlatformsInGroup(Group);
if (Platforms != null)
{
// loop over each one
foreach (UnrealTargetPlatform Platform in Platforms)
{
// if it's a compiled platform, then add this group to be supported
if (SupportedPlatforms.Contains(Platform))
{
SupportedGroups.Add(Group);
}
}
}
}
// loop over groups one more time, anything NOT in SupportedGroups is now unsupported, and should be added to the output list
foreach (UnrealPlatformGroup Group in UnrealPlatformGroup.GetValidGroups())
{
if (SupportedGroups.Contains(Group) == false)
{
OtherPlatformNameStrings.Add(Group.ToString());
}
}
foreach (UnrealTargetPlatform CurPlatform in UnrealTargetPlatform.GetValidPlatforms())
{
bool ShouldConsider = true;
// If we have a platform and a group with the same name, don't add the platform
// to the other list if the same-named group is supported. This is a lot of
// lines because we need to do the comparisons as strings.
string CurPlatformString = CurPlatform.ToString();
foreach (UnrealPlatformGroup Group in UnrealPlatformGroup.GetValidGroups())
{
if (Group.ToString().Equals(CurPlatformString))
{
ShouldConsider = false;
break;
}
}
// Don't add our current platform to the list of platform sub-directory names that
// we'll skip source files for
if (ShouldConsider && !SupportedPlatforms.Contains(CurPlatform))
{
OtherPlatformNameStrings.Add(CurPlatform.ToString());
}
// if a platform isn't available to build, then return it
else if (bIncludeUnbuildablePlatforms && !UEBuildPlatform.IsPlatformAvailable(CurPlatform))
{
OtherPlatformNameStrings.Add(CurPlatform.ToString());
}
}
return OtherPlatformNameStrings;
}
}
/// <summary>
/// Takes a path string and makes all of the path separator characters consistent. Also removes unnecessary multiple separators.
/// </summary>
/// <param name="FilePath">File path with potentially inconsistent slashes</param>
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3233612 on 2016/12/13 by Ben.Marsh UGS: Fix cases where precompiled binaries are submitted for a content change. Change 3235584 on 2016/12/14 by Ben.Marsh UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead. Change 3235741 on 2016/12/14 by Ben.Marsh UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself. Change 3238176 on 2016/12/16 by Ben.Marsh UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs. Change 3238249 on 2016/12/16 by Ben.Marsh UBT: Add attribute-driven command line parser. Change 3238462 on 2016/12/16 by Ben.Marsh UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly. Change 3238564 on 2016/12/16 by Ben.Marsh UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor. Change 3239919 on 2016/12/19 by Ben.Marsh UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined. Change 3240061 on 2016/12/19 by Ben.Marsh UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more. Change 3240175 on 2016/12/19 by Ben.Marsh UBT: Add the target name and project file location to the target rules. Change 3240490 on 2016/12/19 by Ben.Marsh UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs. Change 3240717 on 2016/12/20 by Ben.Marsh UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line. Change 3240718 on 2016/12/20 by Ben.Marsh UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT. Change 3241002 on 2016/12/20 by Ben.Marsh UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance. Change 3241027 on 2016/12/20 by Ben.Marsh Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency. Change 3241055 on 2016/12/20 by Ben.Marsh UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated. Change 3241156 on 2016/12/20 by Ben.Marsh Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using. Change 3241205 on 2016/12/20 by Ben.Marsh Replace all uses of TargetRules.TargetType with TargetType. Change 3241881 on 2016/12/21 by Ben.Marsh UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path. Change 3241895 on 2016/12/21 by Ben.Marsh UBT: Remove toolchain support for Windows XP. Change 3241908 on 2016/12/21 by Ben.Marsh UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field. Change 3242835 on 2016/12/22 by Ben.Marsh UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice. Change 3242837 on 2016/12/22 by Ben.Marsh Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds. Change 3242923 on 2016/12/22 by Ben.Marsh Build: Fixes for conforming incremental workspaces: * P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason. * Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces. Change 3242961 on 2016/12/22 by Ben.Marsh UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before. Change 3242981 on 2016/12/22 by Ben.Marsh UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT. Change 3242999 on 2016/12/22 by Ben.Marsh UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes. Change 3243022 on 2016/12/22 by Ben.Marsh UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line. Change 3243083 on 2016/12/22 by Ben.Marsh UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules. Change 3243090 on 2016/12/22 by Ben.Marsh UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work. Change 3243423 on 2016/12/23 by Ben.Marsh UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes. Change 3243516 on 2016/12/23 by Ben.Marsh UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs) Change 3244020 on 2016/12/28 by Ben.Marsh UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties. Change 3244074 on 2016/12/28 by Ben.Marsh UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary. Change 3244076 on 2016/12/28 by Ben.Marsh UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead. Change 3244083 on 2016/12/28 by Ben.Marsh UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes. Change 3244441 on 2016/12/31 by Ben.Marsh UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur. Change 3244687 on 2017/01/03 by Matthew.Griffin Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs Change 3246112 on 2017/01/04 by Ben.Marsh UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build. Change 3246223 on 2017/01/04 by Ben.Marsh UBT: Prevent version manifests being overridden if a file is not being built as part of the target. Change 3246387 on 2017/01/04 by Ben.Marsh UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it. Change 3247004 on 2017/01/04 by Ben.Marsh UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place. Change 3247250 on 2017/01/04 by Ben.Marsh UBT: Prevent precompiled binaries being added to the list of app binaries twice. Change 3247594 on 2017/01/05 by Ben.Marsh Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build. Change 3247763 on 2017/01/05 by Ben.Marsh UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them. Change 3247775 on 2017/01/05 by Ben.Marsh UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance. Change 3247811 on 2017/01/05 by Ben.Marsh EC: Add a batch file for testing postp filters. Change 3247839 on 2017/01/05 by Ben.Marsh EC: Include the name of the file being compiled when parsing MSVC errors and warnings. Change 3248101 on 2017/01/05 by Ben.Marsh UBT: Fix Android support for force included headers. Change 3248533 on 2017/01/05 by Ben.Marsh PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott) Change 3249205 on 2017/01/06 by Ben.Marsh UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present. Change 3249249 on 2017/01/06 by Ben.Marsh UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines. Change 3249486 on 2017/01/06 by Ben.Marsh UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies. Change 3249736 on 2017/01/06 by Ben.Marsh UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object. Change 3250179 on 2017/01/07 by Ben.Marsh Fix creating installed build when root directory contains a space in the name. Change 3250181 on 2017/01/07 by Ben.Marsh UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms. Change 3250223 on 2017/01/07 by Ben.Marsh UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together. Change 3250233 on 2017/01/07 by Ben.Marsh UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out. Change 3250241 on 2017/01/07 by Ben.Marsh UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules. Change 3250400 on 2017/01/08 by Ben.Marsh UBT: Move executor config settings onto the executor instances. Change 3257708 on 2017/01/13 by Ben.Marsh UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change. Change 3260535 on 2017/01/17 by Ben.Marsh Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job. Change 3260875 on 2017/01/17 by Ben.Marsh EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced. To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile. Change 3261724 on 2017/01/18 by Ben.Marsh Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job. Change 3261756 on 2017/01/18 by Ben.Marsh IncludeTool: Prevent matching a full enum declaration as a forward declaration. Change 3261932 on 2017/01/18 by Ben.Marsh EC: Add support for specifying days of the week in schedules. The following syntaxes are supported: "Monday, Tuesday and Wednesday at 10:30" "Daily except Sunday and Wednesday at 14:30" Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name. #jira UEB-729 Change 3262676 on 2017/01/18 by Ben.Marsh UBT: Split UBTMakefile into its own file. (From PR #3106) Change 3263893 on 2017/01/19 by Ben.Marsh UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc... Change 3264291 on 2017/01/19 by Ben.Marsh UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts. Change 3264534 on 2017/01/19 by Ben.Marsh UBT: Include plugin config files in generated projects. Change 3264571 on 2017/01/19 by Ben.Marsh UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files. Change 3265745 on 2017/01/20 by Ben.Marsh UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance. Change 3265777 on 2017/01/20 by Ben.Marsh UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode. Change 3268314 on 2017/01/23 by Ben.Marsh UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed. Change 3269601 on 2017/01/24 by Ben.Marsh UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled. Change 3269607 on 2017/01/24 by Ben.Marsh UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that. Change 3269608 on 2017/01/24 by Ben.Marsh UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated. Change 3271062 on 2017/01/24 by Ben.Marsh UBT: Fixes for bugs detected by PVS Studio (PR #3161) Change 3272421 on 2017/01/25 by Ben.Marsh Fix commends regarding DDC in BaseEngine.ini #jira UE-41076 Change 3272810 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272935 on 2017/01/25 by Ben.Marsh Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS. Change 3274167 on 2017/01/26 by Ben.Marsh Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables. #jira UE-36457 Change 3275557 on 2017/01/27 by Ben.Marsh Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is. Change 3275628 on 2017/01/27 by Ben.Marsh UBT: Splitting configuration files into one class per-file. Change 3276784 on 2017/01/29 by Ben.Marsh Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it. Change 3276792 on 2017/01/29 by Ben.Marsh UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT. Change 3277263 on 2017/01/30 by Ben.Marsh IncludeTool: Merging various fixes. * Fix warnings about #include directives after first code block from parsing monolithic headers. * Fix exception on startup if the intermediate directory does not already exist. * Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location. * Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare. * Remove (unused) code which makes assumptions about files ending with "Classes.h". * Add a verbose per-file output log to aid with debugging. * Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default. * Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list. * Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant. * Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first. * Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't. Change 3277307 on 2017/01/30 by Ben.Marsh UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line. [CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
/// <param name="UseDirectorySeparatorChar">The directory separator to use</param>
/// <returns>File path with consistent separators</returns>
public static string CleanDirectorySeparators(string FilePath, char UseDirectorySeparatorChar = '\0')
{
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
StringBuilder CleanPath = null;
if (UseDirectorySeparatorChar == '\0')
{
UseDirectorySeparatorChar = Environment.OSVersion.Platform == PlatformID.Unix ? '/' : '\\';
}
char PrevC = '\0';
// Don't check for double separators until we run across a valid dir name. Paths that start with '//' or '\\' can still be valid.
bool bCanCheckDoubleSeparators = false;
for (int Index = 0; Index < FilePath.Length; ++Index)
{
char C = FilePath[Index];
if (C == '/' || C == '\\')
{
if (C != UseDirectorySeparatorChar)
{
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
C = UseDirectorySeparatorChar;
if (CleanPath == null)
{
CleanPath = new StringBuilder(FilePath.Substring(0, Index), FilePath.Length);
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
}
}
if (bCanCheckDoubleSeparators && C == PrevC)
{
if (CleanPath == null)
{
CleanPath = new StringBuilder(FilePath.Substring(0, Index), FilePath.Length);
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
}
continue;
}
}
else
{
// First non-separator character, safe to check double separators
bCanCheckDoubleSeparators = true;
}
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
if (CleanPath != null)
{
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
CleanPath.Append(C);
}
PrevC = C;
}
UnrealBuildTool: Experimental fast C++ include dependency scanning - Adds experimental super-fast C++ outdated file checking - This feature is turned off for now as we continue to test and improve it - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml - Here is the basic idea: - We no longer exhaustively scan all includes and build up a big graph every invocation - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin") - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date - Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature. UnrealBuildTool: Determination of which modules have UObjects is now faster - We now cache which modules have UObjects and load those for the next session UnrealBuildTool: Module "shared" precompiled header determination is now much faster - We no longer scan all C++ includes for a module to figure out which "shared" PCH to use - Instead, we use the module dependencies specified in the module's *.Build.cs file - For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH Other UBT optimizations: - Reduced calls to string formatting functions when setting up API definitions for all modules - Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml - We no longer check for "external" headers when scanning includes (this code didn't work at all) - Optimized CleanDirectorySeparators() utility function to avoid string copies Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder [CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
return CleanPath != null ? CleanPath.ToString() : FilePath;
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3566944) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3363699 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3499858 by Matt.Kuhlenschmidt PR #3673: Fixed UE-36416 (Contributed by DarkSlot) Change 3499872 by Matt.Kuhlenschmidt PR #3682: Details view - matrix button visibility toggle and crash fix (Contributed by kamrann) Change 3499873 by Matt.Kuhlenschmidt Hide property matrix button from settings editor. For the combined settings objects view this produces nonsensical results and the property matrix is for bulk editing which settings are not designed for. Change 3501154 by Arciel.Rekman Fix incorrect RPATH. - Fixed LinuxToolChain to use FileItem instead of strings. - Fixed string-based Utils.MakePathRelativeTo - workaround for an old Mono bug was causing invalid "correction" of the relative path, triggered by the fact that path "Foo/Bar/../Baz" was not considered equal to "Foo/Baz". Instead of removing the workaround altogether, added a better comparison. Change 3501337 by Arciel.Rekman Better fix for RPATH. - Ben Marsh's suggestion. Change 3502572 by Matt.Kuhlenschmidt PR #3693: Because "becuase" is spelled because (Contributed by getnamo) Change 3502731 by Matt.Kuhlenschmidt Guard against empty warning toasts #jira UE-46285 Change 3502788 by Matt.Kuhlenschmidt Avoid shutting down the editor during loads and slow tasks if a windows close message comes in during this time Change 3503027 by Michael.Dupuis Optimized UpdateLayerUsageInformation Change 3503299 by Michael.Dupuis Fixed crash when having no layer info object Change 3504529 by Yannick.Lange Use UWorld instead of FWorldContext for EditorWorldExtensions, since we don't use it. Change 3504550 by Jamie.Dale Fixed/Improved DnD validation between Content Browsers Dragging assets between Content Browsers now goes through the same common DnD code (DragDropHandler) as dragging assets between the SPathView and SAssetView, and between items within an SAssetView. This also improves the validation of asset/file drops to prevent you dropping assets/files into class paths. #jira UE-45857 Change 3505369 by Alexis.Matte Make sure undo/redo transactions works for all fbx dialog options. #jira UE-43465 #jira UE-43569 Change 3505500 by Matt.Kuhlenschmidt Fix child usd meshes not importing properly. Change 3505645 by Arciel.Rekman Add USD support on Linux (UE-45383). #jira UE-45383 Change 3505658 by Arciel.Rekman USD: add CMake toolchain file I missed. Change 3506796 by Yannick.Lange Fix EditorWorldExtensionCollection using TWeakObjectPtr for UWorlds instead of UPROPERTY Change 3508082 by Alexis.Matte Make sure the fbx re-import editor preference "show option dialog at reimport" is working when re-importing an animation sequence. Change 3508855 by Max.Chen Add CanFindInContentBrowser to AssetEditorToolkit. False for LevelSequenceEditorToolkit so that sequencer doesn't take over Find In Content Browser and show only the sequencer asset. #jira UE-46241 Change 3509282 by Bradut.Palas #jira UE-45337 Removed check for Actor->GetWorld() against GWorld because the latter would switch between editor world and PIE world during a tick, causing the widget to not update properly. Since the Actor would always point to the PIE world, the check was no longer needed. Change 3509298 by Nick.Darnell Slate - Now has better support for analog navigation, the NavigationConfig is now created per user, and has the ability to deal with repeats and can handle navigation better by waiting until the user has moved enough to intend a direction to move. Change 3509313 by Bradut.Palas #jira UE-44630 As the bug description says, the Undo History was not refreshing correctly because an undo coupled with an action would result in the same number of transactions as the previous tick. Now we also check the variation of undo actions count in order to refresh the list. Change 3509318 by Bradut.Palas #jira UE-1406 To fix the issue we simply close the Consolidate window if ListViewItems is empty. Change 3509402 by Nick.Darnell PR #3703: UE-46362: Fixing typo in EUMGSequencePlayMode.PingPong comment (Contributed by gsfreema) Change 3510447 by Arciel.Rekman ReplayProxy: changed protected to private. Change 3510467 by Max.Chen Property Editor: Disable color widget when editing is disabled. #jira UE-46331 Change 3511249 by Matt.Kuhlenschmidt PR #3715: Turn off the automatic expiration of the restore assets notification (Contributed by IHappyDayI) Change 3511286 by Matt.Kuhlenschmidt Added ability to set properties from USD attributes when using scene import to import USD files. See UsdPropTestScene.usda for an example file of how this works Change 3511528 by Cody.Albert Updated FMoviePlayerWidgetRenderer to use Slate time instea of application time Change 3512149 by Matt.Kuhlenschmidt Dont save non-dirty built data when playing PIE in a standalone process #jira UE-46422 Change 3512259 by Matt.Kuhlenschmidt Fix static analysis Change 3512291 by Matt.Kuhlenschmidt PR #3719: Updating UEditorEngine::ReplaceActors to not copy array of actors (Contributed by gsfreema) Change 3512911 by Matt.Kuhlenschmidt Fixed USD property setting crashing if the usd file contained an array with 0 elements. Fixed USD property setting creating invalid tmaps if the usd file contained a key that already existed Change 3513725 by Matt.Kuhlenschmidt PR #3726: Copy/paste fix for SAdvancedDropdownRow::Construct() (Contributed by jovisgCL) Change 3514453 by Jamie.Dale Added a way to set the UEnum used by a UEnumProperty after using the default constructor This will assert if called on an instance that has already been initialized Change 3514858 by Alexis.Matte Fix crash when importing animation and choosing a different value for option "Import Meshes In Bone Hierarchy" then the value use to import the skeletal mesh. In some case there is no skinned mesh. Change 3514875 by Matt.Kuhlenschmidt PR #3721: Fixed. Screen Message was showed always when screenshot is captured(F9) (Contributed by shuaiharry) Change 3515859 by Bradut.Palas #jira UE-46516 The RenameTextBox didn't handle the OnTextCommitted event (which can be triggered when pressing Enter in the box). Now it does. Change 3515998 by Jamie.Dale Adding missing ) to some log messages Change 3517681 by Matt.Kuhlenschmidt Fix automated import not applying any texure settings to imported textures Change 3517703 by Nick.Darnell Slate - Marking SWidget's destructor as virtual (it always has been because of the parent), but this makes it more obvious. Change 3517737 by Nick.Darnell Slate - The retainer widget now only knows how to store the images in gamma space, rather than rendering in linear and storing using sRGB writes. If you do it that way - you end up in a state of having premultiplied linear space stored in sRGB, and getting that back into a state that looks correct when you finally render it with the rest of Slate becomes very difficult, so to make things simpler Change 3517758 by Nick.Darnell UMG - Updating the retainer box categories and visibility. Change 3517795 by Nick.Darnell Slate - We now don't do inherited volatility if we're also caching. Change 3517861 by Matt.Kuhlenschmidt Update windows USD to .75 Change 3517867 by Matt.Kuhlenschmidt Delete OpenEXR from USD dependencies. It is no longer used Change 3517873 by Matt.Kuhlenschmidt Updated USD windows binaries Change 3517896 by Max.Chen Sequencer: Call SkyLightComponent's SetLightColor() directly, similar to LightComponent #jira UE-46669 Change 3518240 by Max.Chen Sequencer: Set needs update when binding. #jira UE-46619 Change 3518492 by Max.Chen Sequencer: If already at the correct play position, don't jump to it. This fixes a bug where if you play to a position and pause, resuming play will playforward and not keep pausing. #jira UE-45996, UE-45997 Change 3518997 by Max.Chen Fbx: Fix aperture width, height, focal length and field of view calculations. #jira UE-46754 Change 3520190 by Jamie.Dale Cleaned up SCC log spam when finding out-of-date dependencies Change 3520237 by Yannick.Lange VR Editor: cleanup auto entry. Removed TimeSinceHMDChecked and added extra check for if there is currently a vr mode active. Change 3520923 by Max.Chen Sequencer: Refactor displaying sequencer settings in editor so that they're always available and not only when the sequencer type is instantiated. #jira UE-46301 Change 3521212 by Matt.Kuhlenschmidt PR #3757: MAX_NAME_LENGHT -> MAX_NAME_LENGTH (Contributed by Josef-CL) #jira UE-46821 Change 3521216 by Matt.Kuhlenschmidt PR #3751: Spelling fix for ESlateVisibility comment (Contributed by Triplelexx) #jira UE-46810 Change 3521221 by Matt.Kuhlenschmidt PR #3733: UE-46683: Don't increment MovieIndex when playing next movie (Contributed by projectgheist) #jira UE-46683,UE-46714 Change 3521344 by Yannick.Lange Fix selection tools in the Levels editor window. After selecting all levels SWorldHierarchyImpl::OnUpdateSelection used GetSelectedTreeItems(). At that point the tree items were not updated yet and it would return the 'previous' items. Making it look like nothing happened. Instead WorldModel->GetSelectedLevels() had to be used to get the new list of selected levels (this was used in 4.16) and then convert the list of FLevelModel to the new system that uses WorldHierarchy::FWorldTreeItemID. #jira UE-46741 Change 3521825 by Joe.Graf #Xb1 Added missing VectorSetFloat1 by copying the one in UnrealMathSSE.h #CodeReview: ben.woodhouse Change 3522114 by Joe.Graf #Xb1 Changed the missing VectorSetFloat1 to use MakeRegisterVector to be more consistent with other Xbox defines per Ben's code review #CodeReview: ben.woodhouse Change 3524202 by Matt.Kuhlenschmidt Prevent resizing when a context menu is open. This prevents a number of rare crashes when a window is resized when a child menu is open causing the child to lose connection to the parent (happens when the parent widgets are clipped and no longer processed). This is consistent with behavior on windows and mac. #jira UE-46653 Change 3524263 by Bradut.Palas #jira UE-46671 The issue happened because a parent callback of OnAssetRenameCommitted would allow an implicit sync and it would reset the search. Solved by blocking the parent callback if the user is searching. Change 3524265 by Bradut.Palas #jira UE-46261 Console command was doing something illegal. Opening a map from editor when multiprocess and client mode were enabled is prohibited by code in Playlevel.cpp (( !CanRunUnderOneProcess && PlayNetMode == EPlayNetMode::PIE_Client )) Solved by banning that specific use of the command. Change 3524266 by Bradut.Palas #jira UE-45592 The bug was caused by an iteration in EndPlayMap() that re-selected all previous actors but without the notify flag (hence, not triggering the code that validated showing the transform widget). Fixed by notifying just once per group, for performance reasons. Change 3524585 by Bradut.Palas Back out changelist 3524265 until I can figure out why the build system doesn't like it. Change 3525921 by Bradut.Palas Resubmitting revision 3524265 with properly guarded editor code (#if WITH_EDITOR) Change 3526124 by Matt.Kuhlenschmidt Remvoe debug canvas proxy Change 3526139 by Matt.Kuhlenschmidt Force low quality fallback mode on ES2 devices for slate blur widgets. This feature does not work on es2 Change 3526663 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527028 by Cody.Albert Back out changelist 3526663 Change 3527241 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527829 by Max.Chen Fbx: Add static transform values to curve data import. #jira UE-46888 Change 3527830 by Max.Chen Sequencer: Import static/default transforms and camera focal lengths from fbx. #jira UE-46888 Change 3528768 by Matt.Kuhlenschmidt Refactor of GetDetailsView method on IDetalLayoutBuilder for some upcoming changes. There is no longer a guarantee that a physical details panel is present wwhen customizing a property so GetDetailsView now returns a pointer and will be null if no details view exists. This refactor is necessary for a change to allow us to make loose property widgets for use outside of a details view. Change 3528776 by Yannick.Lange Allow thumbnails to be captured from a viewport always. #jira UE-45392 Change 3530675 by Michael.Dupuis #jira UE-46913 : Added extra validation to prevent possible crash Change 3530991 by Matt.Kuhlenschmidt Added ability for users to specifiy usd plugins for the USD importer Change 3531110 by Matt.Kuhlenschmidt Added automated import support for USD. Automated import now also supports loading a level per import group so that factories may spawn actors and manipulate the level Change 3531119 by Matt.Kuhlenschmidt USD Scene import now uses actor factories to determine the correct actor type to spawn for an asset specified in USD Change 3531220 by Jamie.Dale Fixed some places that were iterating over sets/maps using their element indices as if they were the sparse indices Change 3531831 by Cody.Albert BP nodes can no longer be renamed on read-only graphs. Change 3531938 by Yannick.Lange Enable setting justification at runtime for multi-line text boxes. #jira UE-44801 Change 3533011 by Matt.Kuhlenschmidt Exporting render targets now chooses PNG if the render target format is an LDR format Change 3533370 by Arciel.Rekman Fix comparison of the RT format. Change 3533717 by Nick.Darnell Slate - Adding justification to SEditableText and SpinBox, also adding the field for UMG. Change 3534756 by Arciel.Rekman Linux: add path to bundled GL headers. - Seems like we have been implicitly relying on it being added someplace else or simply present in the system. - Change by Cengiz.Terzibas Change 3535421 by Arciel.Rekman Reduce SCW logspam on Linux (UE-46634) #jira UE-46634 Change 3537520 by Matt.Kuhlenschmidt PR #3780: Fix typo steam to stream (Contributed by YuchenMei) Change 3537539 by Nick.Darnell UMG - Fixing a bug with aspect ratio locking cameras when in HDPI mode, the spaces were slightly different. Moving over the code that calculates the offsets to function in normalized space, so that it's trivial to combine with the existing normalized viewport dimensions and offset information, without space confusion. Change 3537542 by Nick.Darnell UMG - Fixing some bugs with the retainer widget which was not properly resetting or registering the hit testing information when rendered every frame. This should fix some issues that have been seen with clicks locking the viewport rendering, or not being clickable. Change 3537596 by Alexis.Matte Fbx SDK 2018.1.1 Integration #jira UE-45070 Change 3537672 by Matt.Kuhlenschmidt Simple fix for seconds of time being spent refreshing the settings editor if commands are registered while it is open. The request to refresh is deferred until next tick, meaning that each command list registered in a frame is not refreshing the details panel. Change 3537796 by Alexis.Matte Make sure all general settings are persist when we re-import a staticmesh from fbx file. #jira UE-46829 Change 3537961 by Michael.Dupuis #jira UE-47222: Prevent possible crash in some bad drag & drop case Change 3538149 by Alexis.Matte Make sure we export NTB information instead of just the normal when exporting to fbx #jira UE-46785 Change 3538237 by Alexis.Matte Fix import of large fbx scene (over 2 Gb) pr #3784 #jira UE-47124 Change 3538270 by Lauren.Ridge Epic Friday: Preview scenes in material editors Change 3539707 by Yannick.Lange Optimize viewport interactor hitresult for laser. Store the first hitresult and use that when calling UViewportInteractor::GetHitResultFromLaserPointer multiple times a frame. Change 3539964 by Lauren.Ridge Fix for cubemap not persisting between loads Change 3540321 by Arciel.Rekman Linux: CEF rebuilt with fewer dependencies (UE-46433). - Removed source-only binary to save size (we can link to the runtime one, this also allows RPATH to be generated automatically). - Change by Cengiz.Terzibas, polished by RCL. Change 3540458 by Alexis.Matte Fix the HDR pixel inspector. The HDR value is now RGBA in editor viewport and RGB in Game mode. #jira UE-47199 Change 3540681 by Arciel.Rekman Linux: fix flickering (UE-46351) - redoing fix from 4.17 - Slate rendering policy can set a scissor rect equal to a (smaller) window, which would get inherited by the scene renderer later. #jira UE-46351 (Redoing the fix from CL 3538578 in 4.17). Change 3540838 by Matt.Kuhlenschmidt Fix locked actors still being moved by piloting them Change 3542212 by Nick.Darnell Slate - Fixing a crash with per character wrapping. When used in rich text fields, it can cause a crash due to negative lengths for measurements, due to the way we calculate start and end indexes. New code now ensures the End is always >= to the Start. Change 3544033 by Arciel.Rekman Drop and deprecate /-prefixed commandline switches. - Dropped on all platforms except Windows, where it will produce a warning. Complete drop is expected in 4.19. Change 3544213 by Nick.Darnell Slate - Fixing another potential crash with the slate loading thread. The default movie player was listening for map load finishing using the AddSP callaback, which means the weakptr would be accessed, switching these over to AddRaws to be safer. Change 3546113 by Nick.Darnell Slate - Resurecting the slate visualizer support in the slate renderer for batch visualization, and overdraw. Change 3547129 by Michael.Trepka Few small changes that make UnrealBuildTool faster when running on Mono Change 3547454 by Jamie.Dale Added search to editable texts Change 3547460 by Jamie.Dale The output log now applies a search to its editable text when filtering This highlights the term matches on each line Change 3548177 by Jamie.Dale Optimized PO entry look-up Change 3548287 by Matt.Kuhlenschmidt Fix one off speedtree crash #jira UE-47538 Change 3548377 by Lauren.Ridge Checking that the Environment Map Path is set before trying to load it. #jira UE-47365 Change 3548628 by Matt.Kuhlenschmidt Fix focus graphic for tabs not pointing to the correct image Change 3549289 by Max.Chen Movie Scene Capture: Move window to within the desktop bounds when resizing. #jira UE-37330 Change 3549290 by Arciel.Rekman Fix hlslcc not working properly with newer clangs. - Both the clang 3.8+ problem and UB reported by UBSan. Change 3550573 by Max.Chen Sequencer: Track drag drop. Implement drag and drop onto a camera track, subscene track, and cinematic shot track. #jira UE-45773 #jira UE-45387 Change 3550729 by Max.Chen Sequence Recorder: Add interpolation and tangent settings for animation recording keys #jira UE-46146 Change 3551558 by Nick.Darnell UMG - Tweaking some designer elements, playing around with a 'real-time' mode. Also fixing a bug with decendant widgets in named slots not triggering design effects like updating the widget switcher. #jira UE-39404 Change 3551671 by Joe.Graf Merged over the change to expose more of dormancy to Blueprints (UE-46240) Change 3551684 by Cody.Albert Removing some unused code from map check Change 3552673 by Yannick.Lange Fix crash select all levels with folders in the treewidget. Change 3552960 by Yannick.Lange Frontend filter for files referenced by any level in the project and a filter for not referenced by any level. #jira UE-22153 Change 3553727 by Max.Chen Sequencer: Capture thumbnail before pre save so that the thumbnail isn't captured with the evaluation in a reset state. #jira UE-47693 Change 3553778 by Arciel.Rekman Cache check for compiler availability (UE-47699). - Fixes performance drop in the blueprint editor. Better than caching in a particular source accessors because affects all accessors (incl. Mac which isn't cached either) and reduces calls. Change 3554128 by Matt.Kuhlenschmidt Null out GEditor after it has been destoyed. Any modules that access GEditor can now properly check for a null geditor instead of blindly accessing it Change 3554266 by Max.Chen Movie Scene Capture: Override cinematic mode in the movie scene capture. #jira UE-33473 Change 3555563 by Alexis.Matte Fix static mesh screensize lost when converting from an old version. The conversion require valid extended bounds which was converted after the LOD screensize. #jira UE-47697 Change 3555755 by Yannick.Lange VR Editor: Add exit button inside new menu called "system" on radial menu. Still needs correct icons. Change 3556334 by Matt.Kuhlenschmidt Added a new type of property editor called a property row generator. This is essentially a details panel that can generate each unique row but adds no visual styling around the property editors and does not generate a master tree widget for the properties. This is useful for creating proper widgets for properties and displaying them in a UI that is not the details panel Change 3558100 by Matt.Kuhlenschmidt PR #3823: Incorrect comment syntax in ini files (Contributed by projectgheist) Change 3558240 by Lauren.Ridge Move floor in material editor preview scene based on preview mesh Change 3558242 by Matt.Kuhlenschmidt Fix console variables help page showing only rendering cvars by default Change 3558243 by Matt.Kuhlenschmidt Fix static analysis Change 3558342 by Alexis.Matte Make the code to find the best sample rate to import fbx animation more simple and more robust. The code need to be able to support all the possible case. Add a lot of animation sample rate automation tests #jira UE-47342 Change 3558515 by Yannick.Lange VR Editor: Changed icon for system and exit button on radial menu. Change 3558973 by Matt.Kuhlenschmidt Fix camera placement of the default map Change 3559230 by Arciel.Rekman Do not link CEF3 for servers (UE-47721). Change 3559572 by Arciel.Rekman Linux: make sure the engine is rebuilt during the updates. Change 3560197 by Arciel.Rekman Linux: cosmetic cleanup of an old code. Change 3560904 by Max.Chen Movie Scene Capture: Expose "Open Folder" hyperlink while capturing. Change 3561213 by Matt.Kuhlenschmidt Enable USD by default in QA game for testing Change 3561928 by Matt.Kuhlenschmidt Fix green glowing in the mateiral editor #jira UE-47826 Change 3562259 by Arciel.Rekman Made FPlatformMisc::DebugBreak() not inlined on Linux. - Saves a great deal of binary size without really impacting a performance. Change 3562630 by Arciel.Rekman Make Linux editor compilable with clang 5.0-rc1. Change 3563564 by Yannick.Lange Fix Cube Static Mesh Thumbnail renders black. Cleared out the thumbnail, causing it to create the correct new one. #jira UE-47777 Change 3564529 by Jamie.Dale Const-correct UScriptStruct::ExportText Change 3564972 by Alexis.Matte Fix staticmesh merge applying build scale multiple time Git PR #3807 #jira UE-47645 Change 3565253 by Arciel.Rekman Fix "Anim to Play" being inaccessible after import (UE-47885). - The variable was not initialized and could remain false on Linux. #jira UE-47885 Change 3565293 by Jamie.Dale Merged "Categories" into the main Output Log filter list Change 3565939 by Alexis.Matte Back out revision 3 from //UE4/Dev-Editor/Engine/Source/Developer/MeshMergeUtilities/Private/MeshMergeHelpers.cpp Change 3566081 by Alexis.Matte Fix staticmesh merge applying scale twice PR #3807 #jira UE-47645 Change 3566232 by Matt.Kuhlenschmidt Fix edit inline properties not clipping properly #jira UE-47775 [CL 3567077 by Matt Kuhlenschmidt in Main branch]
2017-08-01 15:55:31 -04:00
/// <summary>
/// Correctly collapses any ../ or ./ entries in a path.
/// </summary>
/// <param name="InPath">The path to be collapsed</param>
/// <returns>true if the path could be collapsed, false otherwise.</returns>
public static string CollapseRelativeDirectories(string InPath)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3566944) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3363699 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3499858 by Matt.Kuhlenschmidt PR #3673: Fixed UE-36416 (Contributed by DarkSlot) Change 3499872 by Matt.Kuhlenschmidt PR #3682: Details view - matrix button visibility toggle and crash fix (Contributed by kamrann) Change 3499873 by Matt.Kuhlenschmidt Hide property matrix button from settings editor. For the combined settings objects view this produces nonsensical results and the property matrix is for bulk editing which settings are not designed for. Change 3501154 by Arciel.Rekman Fix incorrect RPATH. - Fixed LinuxToolChain to use FileItem instead of strings. - Fixed string-based Utils.MakePathRelativeTo - workaround for an old Mono bug was causing invalid "correction" of the relative path, triggered by the fact that path "Foo/Bar/../Baz" was not considered equal to "Foo/Baz". Instead of removing the workaround altogether, added a better comparison. Change 3501337 by Arciel.Rekman Better fix for RPATH. - Ben Marsh's suggestion. Change 3502572 by Matt.Kuhlenschmidt PR #3693: Because "becuase" is spelled because (Contributed by getnamo) Change 3502731 by Matt.Kuhlenschmidt Guard against empty warning toasts #jira UE-46285 Change 3502788 by Matt.Kuhlenschmidt Avoid shutting down the editor during loads and slow tasks if a windows close message comes in during this time Change 3503027 by Michael.Dupuis Optimized UpdateLayerUsageInformation Change 3503299 by Michael.Dupuis Fixed crash when having no layer info object Change 3504529 by Yannick.Lange Use UWorld instead of FWorldContext for EditorWorldExtensions, since we don't use it. Change 3504550 by Jamie.Dale Fixed/Improved DnD validation between Content Browsers Dragging assets between Content Browsers now goes through the same common DnD code (DragDropHandler) as dragging assets between the SPathView and SAssetView, and between items within an SAssetView. This also improves the validation of asset/file drops to prevent you dropping assets/files into class paths. #jira UE-45857 Change 3505369 by Alexis.Matte Make sure undo/redo transactions works for all fbx dialog options. #jira UE-43465 #jira UE-43569 Change 3505500 by Matt.Kuhlenschmidt Fix child usd meshes not importing properly. Change 3505645 by Arciel.Rekman Add USD support on Linux (UE-45383). #jira UE-45383 Change 3505658 by Arciel.Rekman USD: add CMake toolchain file I missed. Change 3506796 by Yannick.Lange Fix EditorWorldExtensionCollection using TWeakObjectPtr for UWorlds instead of UPROPERTY Change 3508082 by Alexis.Matte Make sure the fbx re-import editor preference "show option dialog at reimport" is working when re-importing an animation sequence. Change 3508855 by Max.Chen Add CanFindInContentBrowser to AssetEditorToolkit. False for LevelSequenceEditorToolkit so that sequencer doesn't take over Find In Content Browser and show only the sequencer asset. #jira UE-46241 Change 3509282 by Bradut.Palas #jira UE-45337 Removed check for Actor->GetWorld() against GWorld because the latter would switch between editor world and PIE world during a tick, causing the widget to not update properly. Since the Actor would always point to the PIE world, the check was no longer needed. Change 3509298 by Nick.Darnell Slate - Now has better support for analog navigation, the NavigationConfig is now created per user, and has the ability to deal with repeats and can handle navigation better by waiting until the user has moved enough to intend a direction to move. Change 3509313 by Bradut.Palas #jira UE-44630 As the bug description says, the Undo History was not refreshing correctly because an undo coupled with an action would result in the same number of transactions as the previous tick. Now we also check the variation of undo actions count in order to refresh the list. Change 3509318 by Bradut.Palas #jira UE-1406 To fix the issue we simply close the Consolidate window if ListViewItems is empty. Change 3509402 by Nick.Darnell PR #3703: UE-46362: Fixing typo in EUMGSequencePlayMode.PingPong comment (Contributed by gsfreema) Change 3510447 by Arciel.Rekman ReplayProxy: changed protected to private. Change 3510467 by Max.Chen Property Editor: Disable color widget when editing is disabled. #jira UE-46331 Change 3511249 by Matt.Kuhlenschmidt PR #3715: Turn off the automatic expiration of the restore assets notification (Contributed by IHappyDayI) Change 3511286 by Matt.Kuhlenschmidt Added ability to set properties from USD attributes when using scene import to import USD files. See UsdPropTestScene.usda for an example file of how this works Change 3511528 by Cody.Albert Updated FMoviePlayerWidgetRenderer to use Slate time instea of application time Change 3512149 by Matt.Kuhlenschmidt Dont save non-dirty built data when playing PIE in a standalone process #jira UE-46422 Change 3512259 by Matt.Kuhlenschmidt Fix static analysis Change 3512291 by Matt.Kuhlenschmidt PR #3719: Updating UEditorEngine::ReplaceActors to not copy array of actors (Contributed by gsfreema) Change 3512911 by Matt.Kuhlenschmidt Fixed USD property setting crashing if the usd file contained an array with 0 elements. Fixed USD property setting creating invalid tmaps if the usd file contained a key that already existed Change 3513725 by Matt.Kuhlenschmidt PR #3726: Copy/paste fix for SAdvancedDropdownRow::Construct() (Contributed by jovisgCL) Change 3514453 by Jamie.Dale Added a way to set the UEnum used by a UEnumProperty after using the default constructor This will assert if called on an instance that has already been initialized Change 3514858 by Alexis.Matte Fix crash when importing animation and choosing a different value for option "Import Meshes In Bone Hierarchy" then the value use to import the skeletal mesh. In some case there is no skinned mesh. Change 3514875 by Matt.Kuhlenschmidt PR #3721: Fixed. Screen Message was showed always when screenshot is captured(F9) (Contributed by shuaiharry) Change 3515859 by Bradut.Palas #jira UE-46516 The RenameTextBox didn't handle the OnTextCommitted event (which can be triggered when pressing Enter in the box). Now it does. Change 3515998 by Jamie.Dale Adding missing ) to some log messages Change 3517681 by Matt.Kuhlenschmidt Fix automated import not applying any texure settings to imported textures Change 3517703 by Nick.Darnell Slate - Marking SWidget's destructor as virtual (it always has been because of the parent), but this makes it more obvious. Change 3517737 by Nick.Darnell Slate - The retainer widget now only knows how to store the images in gamma space, rather than rendering in linear and storing using sRGB writes. If you do it that way - you end up in a state of having premultiplied linear space stored in sRGB, and getting that back into a state that looks correct when you finally render it with the rest of Slate becomes very difficult, so to make things simpler Change 3517758 by Nick.Darnell UMG - Updating the retainer box categories and visibility. Change 3517795 by Nick.Darnell Slate - We now don't do inherited volatility if we're also caching. Change 3517861 by Matt.Kuhlenschmidt Update windows USD to .75 Change 3517867 by Matt.Kuhlenschmidt Delete OpenEXR from USD dependencies. It is no longer used Change 3517873 by Matt.Kuhlenschmidt Updated USD windows binaries Change 3517896 by Max.Chen Sequencer: Call SkyLightComponent's SetLightColor() directly, similar to LightComponent #jira UE-46669 Change 3518240 by Max.Chen Sequencer: Set needs update when binding. #jira UE-46619 Change 3518492 by Max.Chen Sequencer: If already at the correct play position, don't jump to it. This fixes a bug where if you play to a position and pause, resuming play will playforward and not keep pausing. #jira UE-45996, UE-45997 Change 3518997 by Max.Chen Fbx: Fix aperture width, height, focal length and field of view calculations. #jira UE-46754 Change 3520190 by Jamie.Dale Cleaned up SCC log spam when finding out-of-date dependencies Change 3520237 by Yannick.Lange VR Editor: cleanup auto entry. Removed TimeSinceHMDChecked and added extra check for if there is currently a vr mode active. Change 3520923 by Max.Chen Sequencer: Refactor displaying sequencer settings in editor so that they're always available and not only when the sequencer type is instantiated. #jira UE-46301 Change 3521212 by Matt.Kuhlenschmidt PR #3757: MAX_NAME_LENGHT -> MAX_NAME_LENGTH (Contributed by Josef-CL) #jira UE-46821 Change 3521216 by Matt.Kuhlenschmidt PR #3751: Spelling fix for ESlateVisibility comment (Contributed by Triplelexx) #jira UE-46810 Change 3521221 by Matt.Kuhlenschmidt PR #3733: UE-46683: Don't increment MovieIndex when playing next movie (Contributed by projectgheist) #jira UE-46683,UE-46714 Change 3521344 by Yannick.Lange Fix selection tools in the Levels editor window. After selecting all levels SWorldHierarchyImpl::OnUpdateSelection used GetSelectedTreeItems(). At that point the tree items were not updated yet and it would return the 'previous' items. Making it look like nothing happened. Instead WorldModel->GetSelectedLevels() had to be used to get the new list of selected levels (this was used in 4.16) and then convert the list of FLevelModel to the new system that uses WorldHierarchy::FWorldTreeItemID. #jira UE-46741 Change 3521825 by Joe.Graf #Xb1 Added missing VectorSetFloat1 by copying the one in UnrealMathSSE.h #CodeReview: ben.woodhouse Change 3522114 by Joe.Graf #Xb1 Changed the missing VectorSetFloat1 to use MakeRegisterVector to be more consistent with other Xbox defines per Ben's code review #CodeReview: ben.woodhouse Change 3524202 by Matt.Kuhlenschmidt Prevent resizing when a context menu is open. This prevents a number of rare crashes when a window is resized when a child menu is open causing the child to lose connection to the parent (happens when the parent widgets are clipped and no longer processed). This is consistent with behavior on windows and mac. #jira UE-46653 Change 3524263 by Bradut.Palas #jira UE-46671 The issue happened because a parent callback of OnAssetRenameCommitted would allow an implicit sync and it would reset the search. Solved by blocking the parent callback if the user is searching. Change 3524265 by Bradut.Palas #jira UE-46261 Console command was doing something illegal. Opening a map from editor when multiprocess and client mode were enabled is prohibited by code in Playlevel.cpp (( !CanRunUnderOneProcess && PlayNetMode == EPlayNetMode::PIE_Client )) Solved by banning that specific use of the command. Change 3524266 by Bradut.Palas #jira UE-45592 The bug was caused by an iteration in EndPlayMap() that re-selected all previous actors but without the notify flag (hence, not triggering the code that validated showing the transform widget). Fixed by notifying just once per group, for performance reasons. Change 3524585 by Bradut.Palas Back out changelist 3524265 until I can figure out why the build system doesn't like it. Change 3525921 by Bradut.Palas Resubmitting revision 3524265 with properly guarded editor code (#if WITH_EDITOR) Change 3526124 by Matt.Kuhlenschmidt Remvoe debug canvas proxy Change 3526139 by Matt.Kuhlenschmidt Force low quality fallback mode on ES2 devices for slate blur widgets. This feature does not work on es2 Change 3526663 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527028 by Cody.Albert Back out changelist 3526663 Change 3527241 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527829 by Max.Chen Fbx: Add static transform values to curve data import. #jira UE-46888 Change 3527830 by Max.Chen Sequencer: Import static/default transforms and camera focal lengths from fbx. #jira UE-46888 Change 3528768 by Matt.Kuhlenschmidt Refactor of GetDetailsView method on IDetalLayoutBuilder for some upcoming changes. There is no longer a guarantee that a physical details panel is present wwhen customizing a property so GetDetailsView now returns a pointer and will be null if no details view exists. This refactor is necessary for a change to allow us to make loose property widgets for use outside of a details view. Change 3528776 by Yannick.Lange Allow thumbnails to be captured from a viewport always. #jira UE-45392 Change 3530675 by Michael.Dupuis #jira UE-46913 : Added extra validation to prevent possible crash Change 3530991 by Matt.Kuhlenschmidt Added ability for users to specifiy usd plugins for the USD importer Change 3531110 by Matt.Kuhlenschmidt Added automated import support for USD. Automated import now also supports loading a level per import group so that factories may spawn actors and manipulate the level Change 3531119 by Matt.Kuhlenschmidt USD Scene import now uses actor factories to determine the correct actor type to spawn for an asset specified in USD Change 3531220 by Jamie.Dale Fixed some places that were iterating over sets/maps using their element indices as if they were the sparse indices Change 3531831 by Cody.Albert BP nodes can no longer be renamed on read-only graphs. Change 3531938 by Yannick.Lange Enable setting justification at runtime for multi-line text boxes. #jira UE-44801 Change 3533011 by Matt.Kuhlenschmidt Exporting render targets now chooses PNG if the render target format is an LDR format Change 3533370 by Arciel.Rekman Fix comparison of the RT format. Change 3533717 by Nick.Darnell Slate - Adding justification to SEditableText and SpinBox, also adding the field for UMG. Change 3534756 by Arciel.Rekman Linux: add path to bundled GL headers. - Seems like we have been implicitly relying on it being added someplace else or simply present in the system. - Change by Cengiz.Terzibas Change 3535421 by Arciel.Rekman Reduce SCW logspam on Linux (UE-46634) #jira UE-46634 Change 3537520 by Matt.Kuhlenschmidt PR #3780: Fix typo steam to stream (Contributed by YuchenMei) Change 3537539 by Nick.Darnell UMG - Fixing a bug with aspect ratio locking cameras when in HDPI mode, the spaces were slightly different. Moving over the code that calculates the offsets to function in normalized space, so that it's trivial to combine with the existing normalized viewport dimensions and offset information, without space confusion. Change 3537542 by Nick.Darnell UMG - Fixing some bugs with the retainer widget which was not properly resetting or registering the hit testing information when rendered every frame. This should fix some issues that have been seen with clicks locking the viewport rendering, or not being clickable. Change 3537596 by Alexis.Matte Fbx SDK 2018.1.1 Integration #jira UE-45070 Change 3537672 by Matt.Kuhlenschmidt Simple fix for seconds of time being spent refreshing the settings editor if commands are registered while it is open. The request to refresh is deferred until next tick, meaning that each command list registered in a frame is not refreshing the details panel. Change 3537796 by Alexis.Matte Make sure all general settings are persist when we re-import a staticmesh from fbx file. #jira UE-46829 Change 3537961 by Michael.Dupuis #jira UE-47222: Prevent possible crash in some bad drag & drop case Change 3538149 by Alexis.Matte Make sure we export NTB information instead of just the normal when exporting to fbx #jira UE-46785 Change 3538237 by Alexis.Matte Fix import of large fbx scene (over 2 Gb) pr #3784 #jira UE-47124 Change 3538270 by Lauren.Ridge Epic Friday: Preview scenes in material editors Change 3539707 by Yannick.Lange Optimize viewport interactor hitresult for laser. Store the first hitresult and use that when calling UViewportInteractor::GetHitResultFromLaserPointer multiple times a frame. Change 3539964 by Lauren.Ridge Fix for cubemap not persisting between loads Change 3540321 by Arciel.Rekman Linux: CEF rebuilt with fewer dependencies (UE-46433). - Removed source-only binary to save size (we can link to the runtime one, this also allows RPATH to be generated automatically). - Change by Cengiz.Terzibas, polished by RCL. Change 3540458 by Alexis.Matte Fix the HDR pixel inspector. The HDR value is now RGBA in editor viewport and RGB in Game mode. #jira UE-47199 Change 3540681 by Arciel.Rekman Linux: fix flickering (UE-46351) - redoing fix from 4.17 - Slate rendering policy can set a scissor rect equal to a (smaller) window, which would get inherited by the scene renderer later. #jira UE-46351 (Redoing the fix from CL 3538578 in 4.17). Change 3540838 by Matt.Kuhlenschmidt Fix locked actors still being moved by piloting them Change 3542212 by Nick.Darnell Slate - Fixing a crash with per character wrapping. When used in rich text fields, it can cause a crash due to negative lengths for measurements, due to the way we calculate start and end indexes. New code now ensures the End is always >= to the Start. Change 3544033 by Arciel.Rekman Drop and deprecate /-prefixed commandline switches. - Dropped on all platforms except Windows, where it will produce a warning. Complete drop is expected in 4.19. Change 3544213 by Nick.Darnell Slate - Fixing another potential crash with the slate loading thread. The default movie player was listening for map load finishing using the AddSP callaback, which means the weakptr would be accessed, switching these over to AddRaws to be safer. Change 3546113 by Nick.Darnell Slate - Resurecting the slate visualizer support in the slate renderer for batch visualization, and overdraw. Change 3547129 by Michael.Trepka Few small changes that make UnrealBuildTool faster when running on Mono Change 3547454 by Jamie.Dale Added search to editable texts Change 3547460 by Jamie.Dale The output log now applies a search to its editable text when filtering This highlights the term matches on each line Change 3548177 by Jamie.Dale Optimized PO entry look-up Change 3548287 by Matt.Kuhlenschmidt Fix one off speedtree crash #jira UE-47538 Change 3548377 by Lauren.Ridge Checking that the Environment Map Path is set before trying to load it. #jira UE-47365 Change 3548628 by Matt.Kuhlenschmidt Fix focus graphic for tabs not pointing to the correct image Change 3549289 by Max.Chen Movie Scene Capture: Move window to within the desktop bounds when resizing. #jira UE-37330 Change 3549290 by Arciel.Rekman Fix hlslcc not working properly with newer clangs. - Both the clang 3.8+ problem and UB reported by UBSan. Change 3550573 by Max.Chen Sequencer: Track drag drop. Implement drag and drop onto a camera track, subscene track, and cinematic shot track. #jira UE-45773 #jira UE-45387 Change 3550729 by Max.Chen Sequence Recorder: Add interpolation and tangent settings for animation recording keys #jira UE-46146 Change 3551558 by Nick.Darnell UMG - Tweaking some designer elements, playing around with a 'real-time' mode. Also fixing a bug with decendant widgets in named slots not triggering design effects like updating the widget switcher. #jira UE-39404 Change 3551671 by Joe.Graf Merged over the change to expose more of dormancy to Blueprints (UE-46240) Change 3551684 by Cody.Albert Removing some unused code from map check Change 3552673 by Yannick.Lange Fix crash select all levels with folders in the treewidget. Change 3552960 by Yannick.Lange Frontend filter for files referenced by any level in the project and a filter for not referenced by any level. #jira UE-22153 Change 3553727 by Max.Chen Sequencer: Capture thumbnail before pre save so that the thumbnail isn't captured with the evaluation in a reset state. #jira UE-47693 Change 3553778 by Arciel.Rekman Cache check for compiler availability (UE-47699). - Fixes performance drop in the blueprint editor. Better than caching in a particular source accessors because affects all accessors (incl. Mac which isn't cached either) and reduces calls. Change 3554128 by Matt.Kuhlenschmidt Null out GEditor after it has been destoyed. Any modules that access GEditor can now properly check for a null geditor instead of blindly accessing it Change 3554266 by Max.Chen Movie Scene Capture: Override cinematic mode in the movie scene capture. #jira UE-33473 Change 3555563 by Alexis.Matte Fix static mesh screensize lost when converting from an old version. The conversion require valid extended bounds which was converted after the LOD screensize. #jira UE-47697 Change 3555755 by Yannick.Lange VR Editor: Add exit button inside new menu called "system" on radial menu. Still needs correct icons. Change 3556334 by Matt.Kuhlenschmidt Added a new type of property editor called a property row generator. This is essentially a details panel that can generate each unique row but adds no visual styling around the property editors and does not generate a master tree widget for the properties. This is useful for creating proper widgets for properties and displaying them in a UI that is not the details panel Change 3558100 by Matt.Kuhlenschmidt PR #3823: Incorrect comment syntax in ini files (Contributed by projectgheist) Change 3558240 by Lauren.Ridge Move floor in material editor preview scene based on preview mesh Change 3558242 by Matt.Kuhlenschmidt Fix console variables help page showing only rendering cvars by default Change 3558243 by Matt.Kuhlenschmidt Fix static analysis Change 3558342 by Alexis.Matte Make the code to find the best sample rate to import fbx animation more simple and more robust. The code need to be able to support all the possible case. Add a lot of animation sample rate automation tests #jira UE-47342 Change 3558515 by Yannick.Lange VR Editor: Changed icon for system and exit button on radial menu. Change 3558973 by Matt.Kuhlenschmidt Fix camera placement of the default map Change 3559230 by Arciel.Rekman Do not link CEF3 for servers (UE-47721). Change 3559572 by Arciel.Rekman Linux: make sure the engine is rebuilt during the updates. Change 3560197 by Arciel.Rekman Linux: cosmetic cleanup of an old code. Change 3560904 by Max.Chen Movie Scene Capture: Expose "Open Folder" hyperlink while capturing. Change 3561213 by Matt.Kuhlenschmidt Enable USD by default in QA game for testing Change 3561928 by Matt.Kuhlenschmidt Fix green glowing in the mateiral editor #jira UE-47826 Change 3562259 by Arciel.Rekman Made FPlatformMisc::DebugBreak() not inlined on Linux. - Saves a great deal of binary size without really impacting a performance. Change 3562630 by Arciel.Rekman Make Linux editor compilable with clang 5.0-rc1. Change 3563564 by Yannick.Lange Fix Cube Static Mesh Thumbnail renders black. Cleared out the thumbnail, causing it to create the correct new one. #jira UE-47777 Change 3564529 by Jamie.Dale Const-correct UScriptStruct::ExportText Change 3564972 by Alexis.Matte Fix staticmesh merge applying build scale multiple time Git PR #3807 #jira UE-47645 Change 3565253 by Arciel.Rekman Fix "Anim to Play" being inaccessible after import (UE-47885). - The variable was not initialized and could remain false on Linux. #jira UE-47885 Change 3565293 by Jamie.Dale Merged "Categories" into the main Output Log filter list Change 3565939 by Alexis.Matte Back out revision 3 from //UE4/Dev-Editor/Engine/Source/Developer/MeshMergeUtilities/Private/MeshMergeHelpers.cpp Change 3566081 by Alexis.Matte Fix staticmesh merge applying scale twice PR #3807 #jira UE-47645 Change 3566232 by Matt.Kuhlenschmidt Fix edit inline properties not clipping properly #jira UE-47775 [CL 3567077 by Matt Kuhlenschmidt in Main branch]
2017-08-01 15:55:31 -04:00
{
string LocalString = InPath;
bool bHadBackSlashes = false;
// look to see what kind of slashes we had
if (LocalString.IndexOf("\\") != -1)
{
LocalString = LocalString.Replace("\\", "/");
bHadBackSlashes = true;
}
string ParentDir = "/..";
int ParentDirLength = ParentDir.Length;
for (; ; )
{
// An empty path is finished
if (string.IsNullOrEmpty(LocalString))
{
break;
}
// Consider empty paths or paths which start with .. or /.. as invalid
if (LocalString.StartsWith("..") || LocalString.StartsWith(ParentDir))
{
return InPath;
}
// If there are no "/.."s left then we're done
int Index = LocalString.IndexOf(ParentDir);
if (Index == -1)
{
break;
}
int PreviousSeparatorIndex = Index;
for (; ; )
{
// Find the previous slash
PreviousSeparatorIndex = Math.Max(0, LocalString.LastIndexOf("/", PreviousSeparatorIndex - 1));
// Stop if we've hit the start of the string
if (PreviousSeparatorIndex == 0)
{
break;
}
// Stop if we've found a directory that isn't "/./"
if ((Index - PreviousSeparatorIndex) > 1 && (LocalString[PreviousSeparatorIndex + 1] != '.' || LocalString[PreviousSeparatorIndex + 2] != '/'))
{
break;
}
}
// If we're attempting to remove the drive letter, that's illegal
int Colon = LocalString.IndexOf(":", PreviousSeparatorIndex);
if (Colon >= 0 && Colon < Index)
{
return InPath;
}
LocalString = LocalString.Substring(0, PreviousSeparatorIndex) + LocalString.Substring(Index + ParentDirLength);
}
LocalString = LocalString.Replace("./", "");
// restore back slashes now
if (bHadBackSlashes)
{
LocalString = LocalString.Replace("/", "\\");
}
// and pass back out
return LocalString;
}
/// <summary>
/// Given a file path and a directory, returns a file path that is relative to the specified directory
/// </summary>
/// <param name="SourcePath">File path to convert</param>
/// <param name="RelativeToDirectory">The directory that the source file path should be converted to be relative to. If this path is not rooted, it will be assumed to be relative to the current working directory.</param>
/// <param name="AlwaysTreatSourceAsDirectory">True if we should treat the source path like a directory even if it doesn't end with a path separator</param>
/// <returns>Converted relative path</returns>
public static string MakePathRelativeTo(string SourcePath, string RelativeToDirectory, bool AlwaysTreatSourceAsDirectory = false)
{
if (String.IsNullOrEmpty(RelativeToDirectory))
{
// Assume CWD
RelativeToDirectory = ".";
}
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
string AbsolutePath = SourcePath;
if (!Path.IsPathRooted(AbsolutePath))
{
AbsolutePath = Path.GetFullPath(SourcePath);
}
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
bool SourcePathEndsWithDirectorySeparator = AbsolutePath.EndsWith(Path.DirectorySeparatorChar.ToString()) || AbsolutePath.EndsWith(Path.AltDirectorySeparatorChar.ToString());
if (AlwaysTreatSourceAsDirectory && !SourcePathEndsWithDirectorySeparator)
{
AbsolutePath += Path.DirectorySeparatorChar;
}
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
Uri AbsolutePathUri = new Uri(AbsolutePath);
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
string AbsoluteRelativeDirectory = RelativeToDirectory;
if (!Path.IsPathRooted(AbsoluteRelativeDirectory))
{
AbsoluteRelativeDirectory = Path.GetFullPath(AbsoluteRelativeDirectory);
}
// Make sure the directory has a trailing directory separator so that the relative directory that
// MakeRelativeUri creates doesn't include our directory -- only the directories beneath it!
if (!AbsoluteRelativeDirectory.EndsWith(Path.DirectorySeparatorChar.ToString()) && !AbsoluteRelativeDirectory.EndsWith(Path.AltDirectorySeparatorChar.ToString()))
{
AbsoluteRelativeDirectory += Path.DirectorySeparatorChar;
}
// Convert to URI form which is where we can make the relative conversion happen
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
Uri AbsoluteRelativeDirectoryUri = new Uri(AbsoluteRelativeDirectory);
// Ask the URI system to convert to a nicely formed relative path, then convert it back to a regular path string
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
Uri UriRelativePath = AbsoluteRelativeDirectoryUri.MakeRelativeUri(AbsolutePathUri);
string RelativePath = Uri.UnescapeDataString(UriRelativePath.ToString()).Replace('/', Path.DirectorySeparatorChar);
// If we added a directory separator character earlier on, remove it now
if (!SourcePathEndsWithDirectorySeparator && AlwaysTreatSourceAsDirectory && RelativePath.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
RelativePath = RelativePath.Substring(0, RelativePath.Length - 1);
}
// Uri.MakeRelativeUri is broken in Mono 2.x and sometimes returns broken path
if (IsRunningOnMono)
{
// Check if result is correct
string TestPath = Path.GetFullPath(Path.Combine(AbsoluteRelativeDirectory, RelativePath));
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3566944) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3363699 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3499858 by Matt.Kuhlenschmidt PR #3673: Fixed UE-36416 (Contributed by DarkSlot) Change 3499872 by Matt.Kuhlenschmidt PR #3682: Details view - matrix button visibility toggle and crash fix (Contributed by kamrann) Change 3499873 by Matt.Kuhlenschmidt Hide property matrix button from settings editor. For the combined settings objects view this produces nonsensical results and the property matrix is for bulk editing which settings are not designed for. Change 3501154 by Arciel.Rekman Fix incorrect RPATH. - Fixed LinuxToolChain to use FileItem instead of strings. - Fixed string-based Utils.MakePathRelativeTo - workaround for an old Mono bug was causing invalid "correction" of the relative path, triggered by the fact that path "Foo/Bar/../Baz" was not considered equal to "Foo/Baz". Instead of removing the workaround altogether, added a better comparison. Change 3501337 by Arciel.Rekman Better fix for RPATH. - Ben Marsh's suggestion. Change 3502572 by Matt.Kuhlenschmidt PR #3693: Because "becuase" is spelled because (Contributed by getnamo) Change 3502731 by Matt.Kuhlenschmidt Guard against empty warning toasts #jira UE-46285 Change 3502788 by Matt.Kuhlenschmidt Avoid shutting down the editor during loads and slow tasks if a windows close message comes in during this time Change 3503027 by Michael.Dupuis Optimized UpdateLayerUsageInformation Change 3503299 by Michael.Dupuis Fixed crash when having no layer info object Change 3504529 by Yannick.Lange Use UWorld instead of FWorldContext for EditorWorldExtensions, since we don't use it. Change 3504550 by Jamie.Dale Fixed/Improved DnD validation between Content Browsers Dragging assets between Content Browsers now goes through the same common DnD code (DragDropHandler) as dragging assets between the SPathView and SAssetView, and between items within an SAssetView. This also improves the validation of asset/file drops to prevent you dropping assets/files into class paths. #jira UE-45857 Change 3505369 by Alexis.Matte Make sure undo/redo transactions works for all fbx dialog options. #jira UE-43465 #jira UE-43569 Change 3505500 by Matt.Kuhlenschmidt Fix child usd meshes not importing properly. Change 3505645 by Arciel.Rekman Add USD support on Linux (UE-45383). #jira UE-45383 Change 3505658 by Arciel.Rekman USD: add CMake toolchain file I missed. Change 3506796 by Yannick.Lange Fix EditorWorldExtensionCollection using TWeakObjectPtr for UWorlds instead of UPROPERTY Change 3508082 by Alexis.Matte Make sure the fbx re-import editor preference "show option dialog at reimport" is working when re-importing an animation sequence. Change 3508855 by Max.Chen Add CanFindInContentBrowser to AssetEditorToolkit. False for LevelSequenceEditorToolkit so that sequencer doesn't take over Find In Content Browser and show only the sequencer asset. #jira UE-46241 Change 3509282 by Bradut.Palas #jira UE-45337 Removed check for Actor->GetWorld() against GWorld because the latter would switch between editor world and PIE world during a tick, causing the widget to not update properly. Since the Actor would always point to the PIE world, the check was no longer needed. Change 3509298 by Nick.Darnell Slate - Now has better support for analog navigation, the NavigationConfig is now created per user, and has the ability to deal with repeats and can handle navigation better by waiting until the user has moved enough to intend a direction to move. Change 3509313 by Bradut.Palas #jira UE-44630 As the bug description says, the Undo History was not refreshing correctly because an undo coupled with an action would result in the same number of transactions as the previous tick. Now we also check the variation of undo actions count in order to refresh the list. Change 3509318 by Bradut.Palas #jira UE-1406 To fix the issue we simply close the Consolidate window if ListViewItems is empty. Change 3509402 by Nick.Darnell PR #3703: UE-46362: Fixing typo in EUMGSequencePlayMode.PingPong comment (Contributed by gsfreema) Change 3510447 by Arciel.Rekman ReplayProxy: changed protected to private. Change 3510467 by Max.Chen Property Editor: Disable color widget when editing is disabled. #jira UE-46331 Change 3511249 by Matt.Kuhlenschmidt PR #3715: Turn off the automatic expiration of the restore assets notification (Contributed by IHappyDayI) Change 3511286 by Matt.Kuhlenschmidt Added ability to set properties from USD attributes when using scene import to import USD files. See UsdPropTestScene.usda for an example file of how this works Change 3511528 by Cody.Albert Updated FMoviePlayerWidgetRenderer to use Slate time instea of application time Change 3512149 by Matt.Kuhlenschmidt Dont save non-dirty built data when playing PIE in a standalone process #jira UE-46422 Change 3512259 by Matt.Kuhlenschmidt Fix static analysis Change 3512291 by Matt.Kuhlenschmidt PR #3719: Updating UEditorEngine::ReplaceActors to not copy array of actors (Contributed by gsfreema) Change 3512911 by Matt.Kuhlenschmidt Fixed USD property setting crashing if the usd file contained an array with 0 elements. Fixed USD property setting creating invalid tmaps if the usd file contained a key that already existed Change 3513725 by Matt.Kuhlenschmidt PR #3726: Copy/paste fix for SAdvancedDropdownRow::Construct() (Contributed by jovisgCL) Change 3514453 by Jamie.Dale Added a way to set the UEnum used by a UEnumProperty after using the default constructor This will assert if called on an instance that has already been initialized Change 3514858 by Alexis.Matte Fix crash when importing animation and choosing a different value for option "Import Meshes In Bone Hierarchy" then the value use to import the skeletal mesh. In some case there is no skinned mesh. Change 3514875 by Matt.Kuhlenschmidt PR #3721: Fixed. Screen Message was showed always when screenshot is captured(F9) (Contributed by shuaiharry) Change 3515859 by Bradut.Palas #jira UE-46516 The RenameTextBox didn't handle the OnTextCommitted event (which can be triggered when pressing Enter in the box). Now it does. Change 3515998 by Jamie.Dale Adding missing ) to some log messages Change 3517681 by Matt.Kuhlenschmidt Fix automated import not applying any texure settings to imported textures Change 3517703 by Nick.Darnell Slate - Marking SWidget's destructor as virtual (it always has been because of the parent), but this makes it more obvious. Change 3517737 by Nick.Darnell Slate - The retainer widget now only knows how to store the images in gamma space, rather than rendering in linear and storing using sRGB writes. If you do it that way - you end up in a state of having premultiplied linear space stored in sRGB, and getting that back into a state that looks correct when you finally render it with the rest of Slate becomes very difficult, so to make things simpler Change 3517758 by Nick.Darnell UMG - Updating the retainer box categories and visibility. Change 3517795 by Nick.Darnell Slate - We now don't do inherited volatility if we're also caching. Change 3517861 by Matt.Kuhlenschmidt Update windows USD to .75 Change 3517867 by Matt.Kuhlenschmidt Delete OpenEXR from USD dependencies. It is no longer used Change 3517873 by Matt.Kuhlenschmidt Updated USD windows binaries Change 3517896 by Max.Chen Sequencer: Call SkyLightComponent's SetLightColor() directly, similar to LightComponent #jira UE-46669 Change 3518240 by Max.Chen Sequencer: Set needs update when binding. #jira UE-46619 Change 3518492 by Max.Chen Sequencer: If already at the correct play position, don't jump to it. This fixes a bug where if you play to a position and pause, resuming play will playforward and not keep pausing. #jira UE-45996, UE-45997 Change 3518997 by Max.Chen Fbx: Fix aperture width, height, focal length and field of view calculations. #jira UE-46754 Change 3520190 by Jamie.Dale Cleaned up SCC log spam when finding out-of-date dependencies Change 3520237 by Yannick.Lange VR Editor: cleanup auto entry. Removed TimeSinceHMDChecked and added extra check for if there is currently a vr mode active. Change 3520923 by Max.Chen Sequencer: Refactor displaying sequencer settings in editor so that they're always available and not only when the sequencer type is instantiated. #jira UE-46301 Change 3521212 by Matt.Kuhlenschmidt PR #3757: MAX_NAME_LENGHT -> MAX_NAME_LENGTH (Contributed by Josef-CL) #jira UE-46821 Change 3521216 by Matt.Kuhlenschmidt PR #3751: Spelling fix for ESlateVisibility comment (Contributed by Triplelexx) #jira UE-46810 Change 3521221 by Matt.Kuhlenschmidt PR #3733: UE-46683: Don't increment MovieIndex when playing next movie (Contributed by projectgheist) #jira UE-46683,UE-46714 Change 3521344 by Yannick.Lange Fix selection tools in the Levels editor window. After selecting all levels SWorldHierarchyImpl::OnUpdateSelection used GetSelectedTreeItems(). At that point the tree items were not updated yet and it would return the 'previous' items. Making it look like nothing happened. Instead WorldModel->GetSelectedLevels() had to be used to get the new list of selected levels (this was used in 4.16) and then convert the list of FLevelModel to the new system that uses WorldHierarchy::FWorldTreeItemID. #jira UE-46741 Change 3521825 by Joe.Graf #Xb1 Added missing VectorSetFloat1 by copying the one in UnrealMathSSE.h #CodeReview: ben.woodhouse Change 3522114 by Joe.Graf #Xb1 Changed the missing VectorSetFloat1 to use MakeRegisterVector to be more consistent with other Xbox defines per Ben's code review #CodeReview: ben.woodhouse Change 3524202 by Matt.Kuhlenschmidt Prevent resizing when a context menu is open. This prevents a number of rare crashes when a window is resized when a child menu is open causing the child to lose connection to the parent (happens when the parent widgets are clipped and no longer processed). This is consistent with behavior on windows and mac. #jira UE-46653 Change 3524263 by Bradut.Palas #jira UE-46671 The issue happened because a parent callback of OnAssetRenameCommitted would allow an implicit sync and it would reset the search. Solved by blocking the parent callback if the user is searching. Change 3524265 by Bradut.Palas #jira UE-46261 Console command was doing something illegal. Opening a map from editor when multiprocess and client mode were enabled is prohibited by code in Playlevel.cpp (( !CanRunUnderOneProcess && PlayNetMode == EPlayNetMode::PIE_Client )) Solved by banning that specific use of the command. Change 3524266 by Bradut.Palas #jira UE-45592 The bug was caused by an iteration in EndPlayMap() that re-selected all previous actors but without the notify flag (hence, not triggering the code that validated showing the transform widget). Fixed by notifying just once per group, for performance reasons. Change 3524585 by Bradut.Palas Back out changelist 3524265 until I can figure out why the build system doesn't like it. Change 3525921 by Bradut.Palas Resubmitting revision 3524265 with properly guarded editor code (#if WITH_EDITOR) Change 3526124 by Matt.Kuhlenschmidt Remvoe debug canvas proxy Change 3526139 by Matt.Kuhlenschmidt Force low quality fallback mode on ES2 devices for slate blur widgets. This feature does not work on es2 Change 3526663 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527028 by Cody.Albert Back out changelist 3526663 Change 3527241 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527829 by Max.Chen Fbx: Add static transform values to curve data import. #jira UE-46888 Change 3527830 by Max.Chen Sequencer: Import static/default transforms and camera focal lengths from fbx. #jira UE-46888 Change 3528768 by Matt.Kuhlenschmidt Refactor of GetDetailsView method on IDetalLayoutBuilder for some upcoming changes. There is no longer a guarantee that a physical details panel is present wwhen customizing a property so GetDetailsView now returns a pointer and will be null if no details view exists. This refactor is necessary for a change to allow us to make loose property widgets for use outside of a details view. Change 3528776 by Yannick.Lange Allow thumbnails to be captured from a viewport always. #jira UE-45392 Change 3530675 by Michael.Dupuis #jira UE-46913 : Added extra validation to prevent possible crash Change 3530991 by Matt.Kuhlenschmidt Added ability for users to specifiy usd plugins for the USD importer Change 3531110 by Matt.Kuhlenschmidt Added automated import support for USD. Automated import now also supports loading a level per import group so that factories may spawn actors and manipulate the level Change 3531119 by Matt.Kuhlenschmidt USD Scene import now uses actor factories to determine the correct actor type to spawn for an asset specified in USD Change 3531220 by Jamie.Dale Fixed some places that were iterating over sets/maps using their element indices as if they were the sparse indices Change 3531831 by Cody.Albert BP nodes can no longer be renamed on read-only graphs. Change 3531938 by Yannick.Lange Enable setting justification at runtime for multi-line text boxes. #jira UE-44801 Change 3533011 by Matt.Kuhlenschmidt Exporting render targets now chooses PNG if the render target format is an LDR format Change 3533370 by Arciel.Rekman Fix comparison of the RT format. Change 3533717 by Nick.Darnell Slate - Adding justification to SEditableText and SpinBox, also adding the field for UMG. Change 3534756 by Arciel.Rekman Linux: add path to bundled GL headers. - Seems like we have been implicitly relying on it being added someplace else or simply present in the system. - Change by Cengiz.Terzibas Change 3535421 by Arciel.Rekman Reduce SCW logspam on Linux (UE-46634) #jira UE-46634 Change 3537520 by Matt.Kuhlenschmidt PR #3780: Fix typo steam to stream (Contributed by YuchenMei) Change 3537539 by Nick.Darnell UMG - Fixing a bug with aspect ratio locking cameras when in HDPI mode, the spaces were slightly different. Moving over the code that calculates the offsets to function in normalized space, so that it's trivial to combine with the existing normalized viewport dimensions and offset information, without space confusion. Change 3537542 by Nick.Darnell UMG - Fixing some bugs with the retainer widget which was not properly resetting or registering the hit testing information when rendered every frame. This should fix some issues that have been seen with clicks locking the viewport rendering, or not being clickable. Change 3537596 by Alexis.Matte Fbx SDK 2018.1.1 Integration #jira UE-45070 Change 3537672 by Matt.Kuhlenschmidt Simple fix for seconds of time being spent refreshing the settings editor if commands are registered while it is open. The request to refresh is deferred until next tick, meaning that each command list registered in a frame is not refreshing the details panel. Change 3537796 by Alexis.Matte Make sure all general settings are persist when we re-import a staticmesh from fbx file. #jira UE-46829 Change 3537961 by Michael.Dupuis #jira UE-47222: Prevent possible crash in some bad drag & drop case Change 3538149 by Alexis.Matte Make sure we export NTB information instead of just the normal when exporting to fbx #jira UE-46785 Change 3538237 by Alexis.Matte Fix import of large fbx scene (over 2 Gb) pr #3784 #jira UE-47124 Change 3538270 by Lauren.Ridge Epic Friday: Preview scenes in material editors Change 3539707 by Yannick.Lange Optimize viewport interactor hitresult for laser. Store the first hitresult and use that when calling UViewportInteractor::GetHitResultFromLaserPointer multiple times a frame. Change 3539964 by Lauren.Ridge Fix for cubemap not persisting between loads Change 3540321 by Arciel.Rekman Linux: CEF rebuilt with fewer dependencies (UE-46433). - Removed source-only binary to save size (we can link to the runtime one, this also allows RPATH to be generated automatically). - Change by Cengiz.Terzibas, polished by RCL. Change 3540458 by Alexis.Matte Fix the HDR pixel inspector. The HDR value is now RGBA in editor viewport and RGB in Game mode. #jira UE-47199 Change 3540681 by Arciel.Rekman Linux: fix flickering (UE-46351) - redoing fix from 4.17 - Slate rendering policy can set a scissor rect equal to a (smaller) window, which would get inherited by the scene renderer later. #jira UE-46351 (Redoing the fix from CL 3538578 in 4.17). Change 3540838 by Matt.Kuhlenschmidt Fix locked actors still being moved by piloting them Change 3542212 by Nick.Darnell Slate - Fixing a crash with per character wrapping. When used in rich text fields, it can cause a crash due to negative lengths for measurements, due to the way we calculate start and end indexes. New code now ensures the End is always >= to the Start. Change 3544033 by Arciel.Rekman Drop and deprecate /-prefixed commandline switches. - Dropped on all platforms except Windows, where it will produce a warning. Complete drop is expected in 4.19. Change 3544213 by Nick.Darnell Slate - Fixing another potential crash with the slate loading thread. The default movie player was listening for map load finishing using the AddSP callaback, which means the weakptr would be accessed, switching these over to AddRaws to be safer. Change 3546113 by Nick.Darnell Slate - Resurecting the slate visualizer support in the slate renderer for batch visualization, and overdraw. Change 3547129 by Michael.Trepka Few small changes that make UnrealBuildTool faster when running on Mono Change 3547454 by Jamie.Dale Added search to editable texts Change 3547460 by Jamie.Dale The output log now applies a search to its editable text when filtering This highlights the term matches on each line Change 3548177 by Jamie.Dale Optimized PO entry look-up Change 3548287 by Matt.Kuhlenschmidt Fix one off speedtree crash #jira UE-47538 Change 3548377 by Lauren.Ridge Checking that the Environment Map Path is set before trying to load it. #jira UE-47365 Change 3548628 by Matt.Kuhlenschmidt Fix focus graphic for tabs not pointing to the correct image Change 3549289 by Max.Chen Movie Scene Capture: Move window to within the desktop bounds when resizing. #jira UE-37330 Change 3549290 by Arciel.Rekman Fix hlslcc not working properly with newer clangs. - Both the clang 3.8+ problem and UB reported by UBSan. Change 3550573 by Max.Chen Sequencer: Track drag drop. Implement drag and drop onto a camera track, subscene track, and cinematic shot track. #jira UE-45773 #jira UE-45387 Change 3550729 by Max.Chen Sequence Recorder: Add interpolation and tangent settings for animation recording keys #jira UE-46146 Change 3551558 by Nick.Darnell UMG - Tweaking some designer elements, playing around with a 'real-time' mode. Also fixing a bug with decendant widgets in named slots not triggering design effects like updating the widget switcher. #jira UE-39404 Change 3551671 by Joe.Graf Merged over the change to expose more of dormancy to Blueprints (UE-46240) Change 3551684 by Cody.Albert Removing some unused code from map check Change 3552673 by Yannick.Lange Fix crash select all levels with folders in the treewidget. Change 3552960 by Yannick.Lange Frontend filter for files referenced by any level in the project and a filter for not referenced by any level. #jira UE-22153 Change 3553727 by Max.Chen Sequencer: Capture thumbnail before pre save so that the thumbnail isn't captured with the evaluation in a reset state. #jira UE-47693 Change 3553778 by Arciel.Rekman Cache check for compiler availability (UE-47699). - Fixes performance drop in the blueprint editor. Better than caching in a particular source accessors because affects all accessors (incl. Mac which isn't cached either) and reduces calls. Change 3554128 by Matt.Kuhlenschmidt Null out GEditor after it has been destoyed. Any modules that access GEditor can now properly check for a null geditor instead of blindly accessing it Change 3554266 by Max.Chen Movie Scene Capture: Override cinematic mode in the movie scene capture. #jira UE-33473 Change 3555563 by Alexis.Matte Fix static mesh screensize lost when converting from an old version. The conversion require valid extended bounds which was converted after the LOD screensize. #jira UE-47697 Change 3555755 by Yannick.Lange VR Editor: Add exit button inside new menu called "system" on radial menu. Still needs correct icons. Change 3556334 by Matt.Kuhlenschmidt Added a new type of property editor called a property row generator. This is essentially a details panel that can generate each unique row but adds no visual styling around the property editors and does not generate a master tree widget for the properties. This is useful for creating proper widgets for properties and displaying them in a UI that is not the details panel Change 3558100 by Matt.Kuhlenschmidt PR #3823: Incorrect comment syntax in ini files (Contributed by projectgheist) Change 3558240 by Lauren.Ridge Move floor in material editor preview scene based on preview mesh Change 3558242 by Matt.Kuhlenschmidt Fix console variables help page showing only rendering cvars by default Change 3558243 by Matt.Kuhlenschmidt Fix static analysis Change 3558342 by Alexis.Matte Make the code to find the best sample rate to import fbx animation more simple and more robust. The code need to be able to support all the possible case. Add a lot of animation sample rate automation tests #jira UE-47342 Change 3558515 by Yannick.Lange VR Editor: Changed icon for system and exit button on radial menu. Change 3558973 by Matt.Kuhlenschmidt Fix camera placement of the default map Change 3559230 by Arciel.Rekman Do not link CEF3 for servers (UE-47721). Change 3559572 by Arciel.Rekman Linux: make sure the engine is rebuilt during the updates. Change 3560197 by Arciel.Rekman Linux: cosmetic cleanup of an old code. Change 3560904 by Max.Chen Movie Scene Capture: Expose "Open Folder" hyperlink while capturing. Change 3561213 by Matt.Kuhlenschmidt Enable USD by default in QA game for testing Change 3561928 by Matt.Kuhlenschmidt Fix green glowing in the mateiral editor #jira UE-47826 Change 3562259 by Arciel.Rekman Made FPlatformMisc::DebugBreak() not inlined on Linux. - Saves a great deal of binary size without really impacting a performance. Change 3562630 by Arciel.Rekman Make Linux editor compilable with clang 5.0-rc1. Change 3563564 by Yannick.Lange Fix Cube Static Mesh Thumbnail renders black. Cleared out the thumbnail, causing it to create the correct new one. #jira UE-47777 Change 3564529 by Jamie.Dale Const-correct UScriptStruct::ExportText Change 3564972 by Alexis.Matte Fix staticmesh merge applying build scale multiple time Git PR #3807 #jira UE-47645 Change 3565253 by Arciel.Rekman Fix "Anim to Play" being inaccessible after import (UE-47885). - The variable was not initialized and could remain false on Linux. #jira UE-47885 Change 3565293 by Jamie.Dale Merged "Categories" into the main Output Log filter list Change 3565939 by Alexis.Matte Back out revision 3 from //UE4/Dev-Editor/Engine/Source/Developer/MeshMergeUtilities/Private/MeshMergeHelpers.cpp Change 3566081 by Alexis.Matte Fix staticmesh merge applying scale twice PR #3807 #jira UE-47645 Change 3566232 by Matt.Kuhlenschmidt Fix edit inline properties not clipping properly #jira UE-47775 [CL 3567077 by Matt Kuhlenschmidt in Main branch]
2017-08-01 15:55:31 -04:00
string AbsoluteTestPath = CollapseRelativeDirectories(AbsolutePath);
if (TestPath != AbsoluteTestPath)
{
TestPath += "/";
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3566944) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3363699 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3499858 by Matt.Kuhlenschmidt PR #3673: Fixed UE-36416 (Contributed by DarkSlot) Change 3499872 by Matt.Kuhlenschmidt PR #3682: Details view - matrix button visibility toggle and crash fix (Contributed by kamrann) Change 3499873 by Matt.Kuhlenschmidt Hide property matrix button from settings editor. For the combined settings objects view this produces nonsensical results and the property matrix is for bulk editing which settings are not designed for. Change 3501154 by Arciel.Rekman Fix incorrect RPATH. - Fixed LinuxToolChain to use FileItem instead of strings. - Fixed string-based Utils.MakePathRelativeTo - workaround for an old Mono bug was causing invalid "correction" of the relative path, triggered by the fact that path "Foo/Bar/../Baz" was not considered equal to "Foo/Baz". Instead of removing the workaround altogether, added a better comparison. Change 3501337 by Arciel.Rekman Better fix for RPATH. - Ben Marsh's suggestion. Change 3502572 by Matt.Kuhlenschmidt PR #3693: Because "becuase" is spelled because (Contributed by getnamo) Change 3502731 by Matt.Kuhlenschmidt Guard against empty warning toasts #jira UE-46285 Change 3502788 by Matt.Kuhlenschmidt Avoid shutting down the editor during loads and slow tasks if a windows close message comes in during this time Change 3503027 by Michael.Dupuis Optimized UpdateLayerUsageInformation Change 3503299 by Michael.Dupuis Fixed crash when having no layer info object Change 3504529 by Yannick.Lange Use UWorld instead of FWorldContext for EditorWorldExtensions, since we don't use it. Change 3504550 by Jamie.Dale Fixed/Improved DnD validation between Content Browsers Dragging assets between Content Browsers now goes through the same common DnD code (DragDropHandler) as dragging assets between the SPathView and SAssetView, and between items within an SAssetView. This also improves the validation of asset/file drops to prevent you dropping assets/files into class paths. #jira UE-45857 Change 3505369 by Alexis.Matte Make sure undo/redo transactions works for all fbx dialog options. #jira UE-43465 #jira UE-43569 Change 3505500 by Matt.Kuhlenschmidt Fix child usd meshes not importing properly. Change 3505645 by Arciel.Rekman Add USD support on Linux (UE-45383). #jira UE-45383 Change 3505658 by Arciel.Rekman USD: add CMake toolchain file I missed. Change 3506796 by Yannick.Lange Fix EditorWorldExtensionCollection using TWeakObjectPtr for UWorlds instead of UPROPERTY Change 3508082 by Alexis.Matte Make sure the fbx re-import editor preference "show option dialog at reimport" is working when re-importing an animation sequence. Change 3508855 by Max.Chen Add CanFindInContentBrowser to AssetEditorToolkit. False for LevelSequenceEditorToolkit so that sequencer doesn't take over Find In Content Browser and show only the sequencer asset. #jira UE-46241 Change 3509282 by Bradut.Palas #jira UE-45337 Removed check for Actor->GetWorld() against GWorld because the latter would switch between editor world and PIE world during a tick, causing the widget to not update properly. Since the Actor would always point to the PIE world, the check was no longer needed. Change 3509298 by Nick.Darnell Slate - Now has better support for analog navigation, the NavigationConfig is now created per user, and has the ability to deal with repeats and can handle navigation better by waiting until the user has moved enough to intend a direction to move. Change 3509313 by Bradut.Palas #jira UE-44630 As the bug description says, the Undo History was not refreshing correctly because an undo coupled with an action would result in the same number of transactions as the previous tick. Now we also check the variation of undo actions count in order to refresh the list. Change 3509318 by Bradut.Palas #jira UE-1406 To fix the issue we simply close the Consolidate window if ListViewItems is empty. Change 3509402 by Nick.Darnell PR #3703: UE-46362: Fixing typo in EUMGSequencePlayMode.PingPong comment (Contributed by gsfreema) Change 3510447 by Arciel.Rekman ReplayProxy: changed protected to private. Change 3510467 by Max.Chen Property Editor: Disable color widget when editing is disabled. #jira UE-46331 Change 3511249 by Matt.Kuhlenschmidt PR #3715: Turn off the automatic expiration of the restore assets notification (Contributed by IHappyDayI) Change 3511286 by Matt.Kuhlenschmidt Added ability to set properties from USD attributes when using scene import to import USD files. See UsdPropTestScene.usda for an example file of how this works Change 3511528 by Cody.Albert Updated FMoviePlayerWidgetRenderer to use Slate time instea of application time Change 3512149 by Matt.Kuhlenschmidt Dont save non-dirty built data when playing PIE in a standalone process #jira UE-46422 Change 3512259 by Matt.Kuhlenschmidt Fix static analysis Change 3512291 by Matt.Kuhlenschmidt PR #3719: Updating UEditorEngine::ReplaceActors to not copy array of actors (Contributed by gsfreema) Change 3512911 by Matt.Kuhlenschmidt Fixed USD property setting crashing if the usd file contained an array with 0 elements. Fixed USD property setting creating invalid tmaps if the usd file contained a key that already existed Change 3513725 by Matt.Kuhlenschmidt PR #3726: Copy/paste fix for SAdvancedDropdownRow::Construct() (Contributed by jovisgCL) Change 3514453 by Jamie.Dale Added a way to set the UEnum used by a UEnumProperty after using the default constructor This will assert if called on an instance that has already been initialized Change 3514858 by Alexis.Matte Fix crash when importing animation and choosing a different value for option "Import Meshes In Bone Hierarchy" then the value use to import the skeletal mesh. In some case there is no skinned mesh. Change 3514875 by Matt.Kuhlenschmidt PR #3721: Fixed. Screen Message was showed always when screenshot is captured(F9) (Contributed by shuaiharry) Change 3515859 by Bradut.Palas #jira UE-46516 The RenameTextBox didn't handle the OnTextCommitted event (which can be triggered when pressing Enter in the box). Now it does. Change 3515998 by Jamie.Dale Adding missing ) to some log messages Change 3517681 by Matt.Kuhlenschmidt Fix automated import not applying any texure settings to imported textures Change 3517703 by Nick.Darnell Slate - Marking SWidget's destructor as virtual (it always has been because of the parent), but this makes it more obvious. Change 3517737 by Nick.Darnell Slate - The retainer widget now only knows how to store the images in gamma space, rather than rendering in linear and storing using sRGB writes. If you do it that way - you end up in a state of having premultiplied linear space stored in sRGB, and getting that back into a state that looks correct when you finally render it with the rest of Slate becomes very difficult, so to make things simpler Change 3517758 by Nick.Darnell UMG - Updating the retainer box categories and visibility. Change 3517795 by Nick.Darnell Slate - We now don't do inherited volatility if we're also caching. Change 3517861 by Matt.Kuhlenschmidt Update windows USD to .75 Change 3517867 by Matt.Kuhlenschmidt Delete OpenEXR from USD dependencies. It is no longer used Change 3517873 by Matt.Kuhlenschmidt Updated USD windows binaries Change 3517896 by Max.Chen Sequencer: Call SkyLightComponent's SetLightColor() directly, similar to LightComponent #jira UE-46669 Change 3518240 by Max.Chen Sequencer: Set needs update when binding. #jira UE-46619 Change 3518492 by Max.Chen Sequencer: If already at the correct play position, don't jump to it. This fixes a bug where if you play to a position and pause, resuming play will playforward and not keep pausing. #jira UE-45996, UE-45997 Change 3518997 by Max.Chen Fbx: Fix aperture width, height, focal length and field of view calculations. #jira UE-46754 Change 3520190 by Jamie.Dale Cleaned up SCC log spam when finding out-of-date dependencies Change 3520237 by Yannick.Lange VR Editor: cleanup auto entry. Removed TimeSinceHMDChecked and added extra check for if there is currently a vr mode active. Change 3520923 by Max.Chen Sequencer: Refactor displaying sequencer settings in editor so that they're always available and not only when the sequencer type is instantiated. #jira UE-46301 Change 3521212 by Matt.Kuhlenschmidt PR #3757: MAX_NAME_LENGHT -> MAX_NAME_LENGTH (Contributed by Josef-CL) #jira UE-46821 Change 3521216 by Matt.Kuhlenschmidt PR #3751: Spelling fix for ESlateVisibility comment (Contributed by Triplelexx) #jira UE-46810 Change 3521221 by Matt.Kuhlenschmidt PR #3733: UE-46683: Don't increment MovieIndex when playing next movie (Contributed by projectgheist) #jira UE-46683,UE-46714 Change 3521344 by Yannick.Lange Fix selection tools in the Levels editor window. After selecting all levels SWorldHierarchyImpl::OnUpdateSelection used GetSelectedTreeItems(). At that point the tree items were not updated yet and it would return the 'previous' items. Making it look like nothing happened. Instead WorldModel->GetSelectedLevels() had to be used to get the new list of selected levels (this was used in 4.16) and then convert the list of FLevelModel to the new system that uses WorldHierarchy::FWorldTreeItemID. #jira UE-46741 Change 3521825 by Joe.Graf #Xb1 Added missing VectorSetFloat1 by copying the one in UnrealMathSSE.h #CodeReview: ben.woodhouse Change 3522114 by Joe.Graf #Xb1 Changed the missing VectorSetFloat1 to use MakeRegisterVector to be more consistent with other Xbox defines per Ben's code review #CodeReview: ben.woodhouse Change 3524202 by Matt.Kuhlenschmidt Prevent resizing when a context menu is open. This prevents a number of rare crashes when a window is resized when a child menu is open causing the child to lose connection to the parent (happens when the parent widgets are clipped and no longer processed). This is consistent with behavior on windows and mac. #jira UE-46653 Change 3524263 by Bradut.Palas #jira UE-46671 The issue happened because a parent callback of OnAssetRenameCommitted would allow an implicit sync and it would reset the search. Solved by blocking the parent callback if the user is searching. Change 3524265 by Bradut.Palas #jira UE-46261 Console command was doing something illegal. Opening a map from editor when multiprocess and client mode were enabled is prohibited by code in Playlevel.cpp (( !CanRunUnderOneProcess && PlayNetMode == EPlayNetMode::PIE_Client )) Solved by banning that specific use of the command. Change 3524266 by Bradut.Palas #jira UE-45592 The bug was caused by an iteration in EndPlayMap() that re-selected all previous actors but without the notify flag (hence, not triggering the code that validated showing the transform widget). Fixed by notifying just once per group, for performance reasons. Change 3524585 by Bradut.Palas Back out changelist 3524265 until I can figure out why the build system doesn't like it. Change 3525921 by Bradut.Palas Resubmitting revision 3524265 with properly guarded editor code (#if WITH_EDITOR) Change 3526124 by Matt.Kuhlenschmidt Remvoe debug canvas proxy Change 3526139 by Matt.Kuhlenschmidt Force low quality fallback mode on ES2 devices for slate blur widgets. This feature does not work on es2 Change 3526663 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527028 by Cody.Albert Back out changelist 3526663 Change 3527241 by Cody.Albert Fixed sequencer bindings to correctly work on streamed level in standalone preview mode Change 3527829 by Max.Chen Fbx: Add static transform values to curve data import. #jira UE-46888 Change 3527830 by Max.Chen Sequencer: Import static/default transforms and camera focal lengths from fbx. #jira UE-46888 Change 3528768 by Matt.Kuhlenschmidt Refactor of GetDetailsView method on IDetalLayoutBuilder for some upcoming changes. There is no longer a guarantee that a physical details panel is present wwhen customizing a property so GetDetailsView now returns a pointer and will be null if no details view exists. This refactor is necessary for a change to allow us to make loose property widgets for use outside of a details view. Change 3528776 by Yannick.Lange Allow thumbnails to be captured from a viewport always. #jira UE-45392 Change 3530675 by Michael.Dupuis #jira UE-46913 : Added extra validation to prevent possible crash Change 3530991 by Matt.Kuhlenschmidt Added ability for users to specifiy usd plugins for the USD importer Change 3531110 by Matt.Kuhlenschmidt Added automated import support for USD. Automated import now also supports loading a level per import group so that factories may spawn actors and manipulate the level Change 3531119 by Matt.Kuhlenschmidt USD Scene import now uses actor factories to determine the correct actor type to spawn for an asset specified in USD Change 3531220 by Jamie.Dale Fixed some places that were iterating over sets/maps using their element indices as if they were the sparse indices Change 3531831 by Cody.Albert BP nodes can no longer be renamed on read-only graphs. Change 3531938 by Yannick.Lange Enable setting justification at runtime for multi-line text boxes. #jira UE-44801 Change 3533011 by Matt.Kuhlenschmidt Exporting render targets now chooses PNG if the render target format is an LDR format Change 3533370 by Arciel.Rekman Fix comparison of the RT format. Change 3533717 by Nick.Darnell Slate - Adding justification to SEditableText and SpinBox, also adding the field for UMG. Change 3534756 by Arciel.Rekman Linux: add path to bundled GL headers. - Seems like we have been implicitly relying on it being added someplace else or simply present in the system. - Change by Cengiz.Terzibas Change 3535421 by Arciel.Rekman Reduce SCW logspam on Linux (UE-46634) #jira UE-46634 Change 3537520 by Matt.Kuhlenschmidt PR #3780: Fix typo steam to stream (Contributed by YuchenMei) Change 3537539 by Nick.Darnell UMG - Fixing a bug with aspect ratio locking cameras when in HDPI mode, the spaces were slightly different. Moving over the code that calculates the offsets to function in normalized space, so that it's trivial to combine with the existing normalized viewport dimensions and offset information, without space confusion. Change 3537542 by Nick.Darnell UMG - Fixing some bugs with the retainer widget which was not properly resetting or registering the hit testing information when rendered every frame. This should fix some issues that have been seen with clicks locking the viewport rendering, or not being clickable. Change 3537596 by Alexis.Matte Fbx SDK 2018.1.1 Integration #jira UE-45070 Change 3537672 by Matt.Kuhlenschmidt Simple fix for seconds of time being spent refreshing the settings editor if commands are registered while it is open. The request to refresh is deferred until next tick, meaning that each command list registered in a frame is not refreshing the details panel. Change 3537796 by Alexis.Matte Make sure all general settings are persist when we re-import a staticmesh from fbx file. #jira UE-46829 Change 3537961 by Michael.Dupuis #jira UE-47222: Prevent possible crash in some bad drag & drop case Change 3538149 by Alexis.Matte Make sure we export NTB information instead of just the normal when exporting to fbx #jira UE-46785 Change 3538237 by Alexis.Matte Fix import of large fbx scene (over 2 Gb) pr #3784 #jira UE-47124 Change 3538270 by Lauren.Ridge Epic Friday: Preview scenes in material editors Change 3539707 by Yannick.Lange Optimize viewport interactor hitresult for laser. Store the first hitresult and use that when calling UViewportInteractor::GetHitResultFromLaserPointer multiple times a frame. Change 3539964 by Lauren.Ridge Fix for cubemap not persisting between loads Change 3540321 by Arciel.Rekman Linux: CEF rebuilt with fewer dependencies (UE-46433). - Removed source-only binary to save size (we can link to the runtime one, this also allows RPATH to be generated automatically). - Change by Cengiz.Terzibas, polished by RCL. Change 3540458 by Alexis.Matte Fix the HDR pixel inspector. The HDR value is now RGBA in editor viewport and RGB in Game mode. #jira UE-47199 Change 3540681 by Arciel.Rekman Linux: fix flickering (UE-46351) - redoing fix from 4.17 - Slate rendering policy can set a scissor rect equal to a (smaller) window, which would get inherited by the scene renderer later. #jira UE-46351 (Redoing the fix from CL 3538578 in 4.17). Change 3540838 by Matt.Kuhlenschmidt Fix locked actors still being moved by piloting them Change 3542212 by Nick.Darnell Slate - Fixing a crash with per character wrapping. When used in rich text fields, it can cause a crash due to negative lengths for measurements, due to the way we calculate start and end indexes. New code now ensures the End is always >= to the Start. Change 3544033 by Arciel.Rekman Drop and deprecate /-prefixed commandline switches. - Dropped on all platforms except Windows, where it will produce a warning. Complete drop is expected in 4.19. Change 3544213 by Nick.Darnell Slate - Fixing another potential crash with the slate loading thread. The default movie player was listening for map load finishing using the AddSP callaback, which means the weakptr would be accessed, switching these over to AddRaws to be safer. Change 3546113 by Nick.Darnell Slate - Resurecting the slate visualizer support in the slate renderer for batch visualization, and overdraw. Change 3547129 by Michael.Trepka Few small changes that make UnrealBuildTool faster when running on Mono Change 3547454 by Jamie.Dale Added search to editable texts Change 3547460 by Jamie.Dale The output log now applies a search to its editable text when filtering This highlights the term matches on each line Change 3548177 by Jamie.Dale Optimized PO entry look-up Change 3548287 by Matt.Kuhlenschmidt Fix one off speedtree crash #jira UE-47538 Change 3548377 by Lauren.Ridge Checking that the Environment Map Path is set before trying to load it. #jira UE-47365 Change 3548628 by Matt.Kuhlenschmidt Fix focus graphic for tabs not pointing to the correct image Change 3549289 by Max.Chen Movie Scene Capture: Move window to within the desktop bounds when resizing. #jira UE-37330 Change 3549290 by Arciel.Rekman Fix hlslcc not working properly with newer clangs. - Both the clang 3.8+ problem and UB reported by UBSan. Change 3550573 by Max.Chen Sequencer: Track drag drop. Implement drag and drop onto a camera track, subscene track, and cinematic shot track. #jira UE-45773 #jira UE-45387 Change 3550729 by Max.Chen Sequence Recorder: Add interpolation and tangent settings for animation recording keys #jira UE-46146 Change 3551558 by Nick.Darnell UMG - Tweaking some designer elements, playing around with a 'real-time' mode. Also fixing a bug with decendant widgets in named slots not triggering design effects like updating the widget switcher. #jira UE-39404 Change 3551671 by Joe.Graf Merged over the change to expose more of dormancy to Blueprints (UE-46240) Change 3551684 by Cody.Albert Removing some unused code from map check Change 3552673 by Yannick.Lange Fix crash select all levels with folders in the treewidget. Change 3552960 by Yannick.Lange Frontend filter for files referenced by any level in the project and a filter for not referenced by any level. #jira UE-22153 Change 3553727 by Max.Chen Sequencer: Capture thumbnail before pre save so that the thumbnail isn't captured with the evaluation in a reset state. #jira UE-47693 Change 3553778 by Arciel.Rekman Cache check for compiler availability (UE-47699). - Fixes performance drop in the blueprint editor. Better than caching in a particular source accessors because affects all accessors (incl. Mac which isn't cached either) and reduces calls. Change 3554128 by Matt.Kuhlenschmidt Null out GEditor after it has been destoyed. Any modules that access GEditor can now properly check for a null geditor instead of blindly accessing it Change 3554266 by Max.Chen Movie Scene Capture: Override cinematic mode in the movie scene capture. #jira UE-33473 Change 3555563 by Alexis.Matte Fix static mesh screensize lost when converting from an old version. The conversion require valid extended bounds which was converted after the LOD screensize. #jira UE-47697 Change 3555755 by Yannick.Lange VR Editor: Add exit button inside new menu called "system" on radial menu. Still needs correct icons. Change 3556334 by Matt.Kuhlenschmidt Added a new type of property editor called a property row generator. This is essentially a details panel that can generate each unique row but adds no visual styling around the property editors and does not generate a master tree widget for the properties. This is useful for creating proper widgets for properties and displaying them in a UI that is not the details panel Change 3558100 by Matt.Kuhlenschmidt PR #3823: Incorrect comment syntax in ini files (Contributed by projectgheist) Change 3558240 by Lauren.Ridge Move floor in material editor preview scene based on preview mesh Change 3558242 by Matt.Kuhlenschmidt Fix console variables help page showing only rendering cvars by default Change 3558243 by Matt.Kuhlenschmidt Fix static analysis Change 3558342 by Alexis.Matte Make the code to find the best sample rate to import fbx animation more simple and more robust. The code need to be able to support all the possible case. Add a lot of animation sample rate automation tests #jira UE-47342 Change 3558515 by Yannick.Lange VR Editor: Changed icon for system and exit button on radial menu. Change 3558973 by Matt.Kuhlenschmidt Fix camera placement of the default map Change 3559230 by Arciel.Rekman Do not link CEF3 for servers (UE-47721). Change 3559572 by Arciel.Rekman Linux: make sure the engine is rebuilt during the updates. Change 3560197 by Arciel.Rekman Linux: cosmetic cleanup of an old code. Change 3560904 by Max.Chen Movie Scene Capture: Expose "Open Folder" hyperlink while capturing. Change 3561213 by Matt.Kuhlenschmidt Enable USD by default in QA game for testing Change 3561928 by Matt.Kuhlenschmidt Fix green glowing in the mateiral editor #jira UE-47826 Change 3562259 by Arciel.Rekman Made FPlatformMisc::DebugBreak() not inlined on Linux. - Saves a great deal of binary size without really impacting a performance. Change 3562630 by Arciel.Rekman Make Linux editor compilable with clang 5.0-rc1. Change 3563564 by Yannick.Lange Fix Cube Static Mesh Thumbnail renders black. Cleared out the thumbnail, causing it to create the correct new one. #jira UE-47777 Change 3564529 by Jamie.Dale Const-correct UScriptStruct::ExportText Change 3564972 by Alexis.Matte Fix staticmesh merge applying build scale multiple time Git PR #3807 #jira UE-47645 Change 3565253 by Arciel.Rekman Fix "Anim to Play" being inaccessible after import (UE-47885). - The variable was not initialized and could remain false on Linux. #jira UE-47885 Change 3565293 by Jamie.Dale Merged "Categories" into the main Output Log filter list Change 3565939 by Alexis.Matte Back out revision 3 from //UE4/Dev-Editor/Engine/Source/Developer/MeshMergeUtilities/Private/MeshMergeHelpers.cpp Change 3566081 by Alexis.Matte Fix staticmesh merge applying scale twice PR #3807 #jira UE-47645 Change 3566232 by Matt.Kuhlenschmidt Fix edit inline properties not clipping properly #jira UE-47775 [CL 3567077 by Matt Kuhlenschmidt in Main branch]
2017-08-01 15:55:31 -04:00
if (TestPath != AbsoluteTestPath)
{
// Fix the path. @todo Mac: replace this hack with something better
RelativePath = "../" + RelativePath;
}
}
}
return RelativePath;
}
/// <summary>
/// Backspaces the specified number of characters, then displays a progress percentage value to the console
/// </summary>
/// <param name="Numerator">Progress numerator</param>
/// <param name="Denominator">Progress denominator</param>
/// <param name="NumCharsToBackspaceOver">Number of characters to backspace before writing the text. This value will be updated with the length of the new progress string. The first time progress is displayed, you should pass 0 for this value.</param>
public static void DisplayProgress(int Numerator, int Denominator, ref int NumCharsToBackspaceOver)
{
// Backspace over previous progress value
while (NumCharsToBackspaceOver-- > 0)
{
Console.Write("\b");
}
// Display updated progress string and keep track of how long it was
float ProgressValue = Denominator > 0 ? ((float)Numerator / (float)Denominator) : 1.0f;
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
string ProgressString = String.Format("{0}%", Math.Round(ProgressValue * 100.0f));
NumCharsToBackspaceOver = ProgressString.Length;
Console.Write(ProgressString);
}
/*
* Read and write classes with xml specifiers
*/
static private void UnknownAttributeDelegate(object sender, XmlAttributeEventArgs e)
{
}
static private void UnknownNodeDelegate(object sender, XmlNodeEventArgs e)
{
}
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3233612 on 2016/12/13 by Ben.Marsh UGS: Fix cases where precompiled binaries are submitted for a content change. Change 3235584 on 2016/12/14 by Ben.Marsh UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead. Change 3235741 on 2016/12/14 by Ben.Marsh UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself. Change 3238176 on 2016/12/16 by Ben.Marsh UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs. Change 3238249 on 2016/12/16 by Ben.Marsh UBT: Add attribute-driven command line parser. Change 3238462 on 2016/12/16 by Ben.Marsh UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly. Change 3238564 on 2016/12/16 by Ben.Marsh UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor. Change 3239919 on 2016/12/19 by Ben.Marsh UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined. Change 3240061 on 2016/12/19 by Ben.Marsh UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more. Change 3240175 on 2016/12/19 by Ben.Marsh UBT: Add the target name and project file location to the target rules. Change 3240490 on 2016/12/19 by Ben.Marsh UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs. Change 3240717 on 2016/12/20 by Ben.Marsh UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line. Change 3240718 on 2016/12/20 by Ben.Marsh UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT. Change 3241002 on 2016/12/20 by Ben.Marsh UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance. Change 3241027 on 2016/12/20 by Ben.Marsh Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency. Change 3241055 on 2016/12/20 by Ben.Marsh UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated. Change 3241156 on 2016/12/20 by Ben.Marsh Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using. Change 3241205 on 2016/12/20 by Ben.Marsh Replace all uses of TargetRules.TargetType with TargetType. Change 3241881 on 2016/12/21 by Ben.Marsh UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path. Change 3241895 on 2016/12/21 by Ben.Marsh UBT: Remove toolchain support for Windows XP. Change 3241908 on 2016/12/21 by Ben.Marsh UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field. Change 3242835 on 2016/12/22 by Ben.Marsh UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice. Change 3242837 on 2016/12/22 by Ben.Marsh Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds. Change 3242923 on 2016/12/22 by Ben.Marsh Build: Fixes for conforming incremental workspaces: * P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason. * Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces. Change 3242961 on 2016/12/22 by Ben.Marsh UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before. Change 3242981 on 2016/12/22 by Ben.Marsh UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT. Change 3242999 on 2016/12/22 by Ben.Marsh UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes. Change 3243022 on 2016/12/22 by Ben.Marsh UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line. Change 3243083 on 2016/12/22 by Ben.Marsh UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules. Change 3243090 on 2016/12/22 by Ben.Marsh UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work. Change 3243423 on 2016/12/23 by Ben.Marsh UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes. Change 3243516 on 2016/12/23 by Ben.Marsh UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs) Change 3244020 on 2016/12/28 by Ben.Marsh UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties. Change 3244074 on 2016/12/28 by Ben.Marsh UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary. Change 3244076 on 2016/12/28 by Ben.Marsh UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead. Change 3244083 on 2016/12/28 by Ben.Marsh UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes. Change 3244441 on 2016/12/31 by Ben.Marsh UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur. Change 3244687 on 2017/01/03 by Matthew.Griffin Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs Change 3246112 on 2017/01/04 by Ben.Marsh UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build. Change 3246223 on 2017/01/04 by Ben.Marsh UBT: Prevent version manifests being overridden if a file is not being built as part of the target. Change 3246387 on 2017/01/04 by Ben.Marsh UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it. Change 3247004 on 2017/01/04 by Ben.Marsh UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place. Change 3247250 on 2017/01/04 by Ben.Marsh UBT: Prevent precompiled binaries being added to the list of app binaries twice. Change 3247594 on 2017/01/05 by Ben.Marsh Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build. Change 3247763 on 2017/01/05 by Ben.Marsh UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them. Change 3247775 on 2017/01/05 by Ben.Marsh UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance. Change 3247811 on 2017/01/05 by Ben.Marsh EC: Add a batch file for testing postp filters. Change 3247839 on 2017/01/05 by Ben.Marsh EC: Include the name of the file being compiled when parsing MSVC errors and warnings. Change 3248101 on 2017/01/05 by Ben.Marsh UBT: Fix Android support for force included headers. Change 3248533 on 2017/01/05 by Ben.Marsh PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott) Change 3249205 on 2017/01/06 by Ben.Marsh UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present. Change 3249249 on 2017/01/06 by Ben.Marsh UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines. Change 3249486 on 2017/01/06 by Ben.Marsh UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies. Change 3249736 on 2017/01/06 by Ben.Marsh UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object. Change 3250179 on 2017/01/07 by Ben.Marsh Fix creating installed build when root directory contains a space in the name. Change 3250181 on 2017/01/07 by Ben.Marsh UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms. Change 3250223 on 2017/01/07 by Ben.Marsh UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together. Change 3250233 on 2017/01/07 by Ben.Marsh UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out. Change 3250241 on 2017/01/07 by Ben.Marsh UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules. Change 3250400 on 2017/01/08 by Ben.Marsh UBT: Move executor config settings onto the executor instances. Change 3257708 on 2017/01/13 by Ben.Marsh UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change. Change 3260535 on 2017/01/17 by Ben.Marsh Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job. Change 3260875 on 2017/01/17 by Ben.Marsh EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced. To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile. Change 3261724 on 2017/01/18 by Ben.Marsh Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job. Change 3261756 on 2017/01/18 by Ben.Marsh IncludeTool: Prevent matching a full enum declaration as a forward declaration. Change 3261932 on 2017/01/18 by Ben.Marsh EC: Add support for specifying days of the week in schedules. The following syntaxes are supported: "Monday, Tuesday and Wednesday at 10:30" "Daily except Sunday and Wednesday at 14:30" Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name. #jira UEB-729 Change 3262676 on 2017/01/18 by Ben.Marsh UBT: Split UBTMakefile into its own file. (From PR #3106) Change 3263893 on 2017/01/19 by Ben.Marsh UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc... Change 3264291 on 2017/01/19 by Ben.Marsh UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts. Change 3264534 on 2017/01/19 by Ben.Marsh UBT: Include plugin config files in generated projects. Change 3264571 on 2017/01/19 by Ben.Marsh UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files. Change 3265745 on 2017/01/20 by Ben.Marsh UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance. Change 3265777 on 2017/01/20 by Ben.Marsh UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode. Change 3268314 on 2017/01/23 by Ben.Marsh UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed. Change 3269601 on 2017/01/24 by Ben.Marsh UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled. Change 3269607 on 2017/01/24 by Ben.Marsh UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that. Change 3269608 on 2017/01/24 by Ben.Marsh UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated. Change 3271062 on 2017/01/24 by Ben.Marsh UBT: Fixes for bugs detected by PVS Studio (PR #3161) Change 3272421 on 2017/01/25 by Ben.Marsh Fix commends regarding DDC in BaseEngine.ini #jira UE-41076 Change 3272810 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272935 on 2017/01/25 by Ben.Marsh Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS. Change 3274167 on 2017/01/26 by Ben.Marsh Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables. #jira UE-36457 Change 3275557 on 2017/01/27 by Ben.Marsh Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is. Change 3275628 on 2017/01/27 by Ben.Marsh UBT: Splitting configuration files into one class per-file. Change 3276784 on 2017/01/29 by Ben.Marsh Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it. Change 3276792 on 2017/01/29 by Ben.Marsh UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT. Change 3277263 on 2017/01/30 by Ben.Marsh IncludeTool: Merging various fixes. * Fix warnings about #include directives after first code block from parsing monolithic headers. * Fix exception on startup if the intermediate directory does not already exist. * Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location. * Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare. * Remove (unused) code which makes assumptions about files ending with "Classes.h". * Add a verbose per-file output log to aid with debugging. * Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default. * Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list. * Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant. * Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first. * Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't. Change 3277307 on 2017/01/30 by Ben.Marsh UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line. [CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
/// <summary>
/// Reads a class using XML serialization
/// </summary>
/// <typeparam name="T">The type to read</typeparam>
/// <param name="FileName">The XML file to read from</param>
/// <returns>New deserialized instance of type T</returns>
static public T ReadClass<T>(string FileName) where T : new()
{
T Instance = new T();
StreamReader XmlStream = null;
try
{
// Get the XML data stream to read from
XmlStream = new StreamReader(FileName);
// Creates an instance of the XmlSerializer class so we can read the settings object
XmlSerializer Serialiser = new XmlSerializer(typeof(T));
// Add our callbacks for unknown nodes and attributes
Serialiser.UnknownNode += new XmlNodeEventHandler(UnknownNodeDelegate);
Serialiser.UnknownAttribute += new XmlAttributeEventHandler(UnknownAttributeDelegate);
// Create an object graph from the XML data
Instance = (T)Serialiser.Deserialize(XmlStream);
}
catch (Exception E)
{
Log.TraceInformation(E.Message);
}
finally
{
if (XmlStream != null)
{
// Done with the file so close it
XmlStream.Close();
}
}
return Instance;
}
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3233612 on 2016/12/13 by Ben.Marsh UGS: Fix cases where precompiled binaries are submitted for a content change. Change 3235584 on 2016/12/14 by Ben.Marsh UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead. Change 3235741 on 2016/12/14 by Ben.Marsh UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself. Change 3238176 on 2016/12/16 by Ben.Marsh UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs. Change 3238249 on 2016/12/16 by Ben.Marsh UBT: Add attribute-driven command line parser. Change 3238462 on 2016/12/16 by Ben.Marsh UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly. Change 3238564 on 2016/12/16 by Ben.Marsh UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor. Change 3239919 on 2016/12/19 by Ben.Marsh UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined. Change 3240061 on 2016/12/19 by Ben.Marsh UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more. Change 3240175 on 2016/12/19 by Ben.Marsh UBT: Add the target name and project file location to the target rules. Change 3240490 on 2016/12/19 by Ben.Marsh UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs. Change 3240717 on 2016/12/20 by Ben.Marsh UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line. Change 3240718 on 2016/12/20 by Ben.Marsh UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT. Change 3241002 on 2016/12/20 by Ben.Marsh UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance. Change 3241027 on 2016/12/20 by Ben.Marsh Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency. Change 3241055 on 2016/12/20 by Ben.Marsh UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated. Change 3241156 on 2016/12/20 by Ben.Marsh Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using. Change 3241205 on 2016/12/20 by Ben.Marsh Replace all uses of TargetRules.TargetType with TargetType. Change 3241881 on 2016/12/21 by Ben.Marsh UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path. Change 3241895 on 2016/12/21 by Ben.Marsh UBT: Remove toolchain support for Windows XP. Change 3241908 on 2016/12/21 by Ben.Marsh UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field. Change 3242835 on 2016/12/22 by Ben.Marsh UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice. Change 3242837 on 2016/12/22 by Ben.Marsh Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds. Change 3242923 on 2016/12/22 by Ben.Marsh Build: Fixes for conforming incremental workspaces: * P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason. * Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces. Change 3242961 on 2016/12/22 by Ben.Marsh UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before. Change 3242981 on 2016/12/22 by Ben.Marsh UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT. Change 3242999 on 2016/12/22 by Ben.Marsh UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes. Change 3243022 on 2016/12/22 by Ben.Marsh UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line. Change 3243083 on 2016/12/22 by Ben.Marsh UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules. Change 3243090 on 2016/12/22 by Ben.Marsh UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work. Change 3243423 on 2016/12/23 by Ben.Marsh UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes. Change 3243516 on 2016/12/23 by Ben.Marsh UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs) Change 3244020 on 2016/12/28 by Ben.Marsh UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties. Change 3244074 on 2016/12/28 by Ben.Marsh UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary. Change 3244076 on 2016/12/28 by Ben.Marsh UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead. Change 3244083 on 2016/12/28 by Ben.Marsh UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes. Change 3244441 on 2016/12/31 by Ben.Marsh UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur. Change 3244687 on 2017/01/03 by Matthew.Griffin Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs Change 3246112 on 2017/01/04 by Ben.Marsh UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build. Change 3246223 on 2017/01/04 by Ben.Marsh UBT: Prevent version manifests being overridden if a file is not being built as part of the target. Change 3246387 on 2017/01/04 by Ben.Marsh UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it. Change 3247004 on 2017/01/04 by Ben.Marsh UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place. Change 3247250 on 2017/01/04 by Ben.Marsh UBT: Prevent precompiled binaries being added to the list of app binaries twice. Change 3247594 on 2017/01/05 by Ben.Marsh Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build. Change 3247763 on 2017/01/05 by Ben.Marsh UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them. Change 3247775 on 2017/01/05 by Ben.Marsh UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance. Change 3247811 on 2017/01/05 by Ben.Marsh EC: Add a batch file for testing postp filters. Change 3247839 on 2017/01/05 by Ben.Marsh EC: Include the name of the file being compiled when parsing MSVC errors and warnings. Change 3248101 on 2017/01/05 by Ben.Marsh UBT: Fix Android support for force included headers. Change 3248533 on 2017/01/05 by Ben.Marsh PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott) Change 3249205 on 2017/01/06 by Ben.Marsh UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present. Change 3249249 on 2017/01/06 by Ben.Marsh UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines. Change 3249486 on 2017/01/06 by Ben.Marsh UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies. Change 3249736 on 2017/01/06 by Ben.Marsh UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object. Change 3250179 on 2017/01/07 by Ben.Marsh Fix creating installed build when root directory contains a space in the name. Change 3250181 on 2017/01/07 by Ben.Marsh UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms. Change 3250223 on 2017/01/07 by Ben.Marsh UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together. Change 3250233 on 2017/01/07 by Ben.Marsh UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out. Change 3250241 on 2017/01/07 by Ben.Marsh UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules. Change 3250400 on 2017/01/08 by Ben.Marsh UBT: Move executor config settings onto the executor instances. Change 3257708 on 2017/01/13 by Ben.Marsh UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change. Change 3260535 on 2017/01/17 by Ben.Marsh Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job. Change 3260875 on 2017/01/17 by Ben.Marsh EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced. To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile. Change 3261724 on 2017/01/18 by Ben.Marsh Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job. Change 3261756 on 2017/01/18 by Ben.Marsh IncludeTool: Prevent matching a full enum declaration as a forward declaration. Change 3261932 on 2017/01/18 by Ben.Marsh EC: Add support for specifying days of the week in schedules. The following syntaxes are supported: "Monday, Tuesday and Wednesday at 10:30" "Daily except Sunday and Wednesday at 14:30" Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name. #jira UEB-729 Change 3262676 on 2017/01/18 by Ben.Marsh UBT: Split UBTMakefile into its own file. (From PR #3106) Change 3263893 on 2017/01/19 by Ben.Marsh UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc... Change 3264291 on 2017/01/19 by Ben.Marsh UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts. Change 3264534 on 2017/01/19 by Ben.Marsh UBT: Include plugin config files in generated projects. Change 3264571 on 2017/01/19 by Ben.Marsh UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files. Change 3265745 on 2017/01/20 by Ben.Marsh UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance. Change 3265777 on 2017/01/20 by Ben.Marsh UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode. Change 3268314 on 2017/01/23 by Ben.Marsh UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed. Change 3269601 on 2017/01/24 by Ben.Marsh UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled. Change 3269607 on 2017/01/24 by Ben.Marsh UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that. Change 3269608 on 2017/01/24 by Ben.Marsh UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated. Change 3271062 on 2017/01/24 by Ben.Marsh UBT: Fixes for bugs detected by PVS Studio (PR #3161) Change 3272421 on 2017/01/25 by Ben.Marsh Fix commends regarding DDC in BaseEngine.ini #jira UE-41076 Change 3272810 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272935 on 2017/01/25 by Ben.Marsh Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS. Change 3274167 on 2017/01/26 by Ben.Marsh Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables. #jira UE-36457 Change 3275557 on 2017/01/27 by Ben.Marsh Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is. Change 3275628 on 2017/01/27 by Ben.Marsh UBT: Splitting configuration files into one class per-file. Change 3276784 on 2017/01/29 by Ben.Marsh Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it. Change 3276792 on 2017/01/29 by Ben.Marsh UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT. Change 3277263 on 2017/01/30 by Ben.Marsh IncludeTool: Merging various fixes. * Fix warnings about #include directives after first code block from parsing monolithic headers. * Fix exception on startup if the intermediate directory does not already exist. * Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location. * Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare. * Remove (unused) code which makes assumptions about files ending with "Classes.h". * Add a verbose per-file output log to aid with debugging. * Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default. * Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list. * Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant. * Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first. * Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't. Change 3277307 on 2017/01/30 by Ben.Marsh UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line. [CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
/// <summary>
/// Serialize an object to an XML file
/// </summary>
/// <typeparam name="T">Type of the object to serialize</typeparam>
/// <param name="Data">Object to write</param>
/// <param name="FileName">File to write to</param>
/// <param name="DefaultNameSpace">Default namespace for the output elements</param>
/// <returns>True if the file was written successfully</returns>
static public bool WriteClass<T>(T Data, string FileName, string DefaultNameSpace)
{
bool bSuccess = true;
StreamWriter XmlStream = null;
try
{
FileInfo Info = new FileInfo(FileName);
if (Info.Exists)
{
Info.IsReadOnly = false;
}
// Make sure the output directory exists
Directory.CreateDirectory(Path.GetDirectoryName(FileName));
XmlSerializerNamespaces EmptyNameSpace = new XmlSerializerNamespaces();
EmptyNameSpace.Add("", DefaultNameSpace);
XmlStream = new StreamWriter(FileName, false, Encoding.Unicode);
XmlSerializer Serialiser = new XmlSerializer(typeof(T));
// Add our callbacks for unknown nodes and attributes
Serialiser.UnknownNode += new XmlNodeEventHandler(UnknownNodeDelegate);
Serialiser.UnknownAttribute += new XmlAttributeEventHandler(UnknownAttributeDelegate);
Serialiser.Serialize(XmlStream, Data, EmptyNameSpace);
}
catch (Exception E)
{
Log.TraceInformation(E.Message);
bSuccess = false;
}
finally
{
if (XmlStream != null)
{
// Done with the file so close it
XmlStream.Close();
}
}
return (bSuccess);
}
/// <summary>
/// Returns true if the specified Process has been created, started and remains valid (i.e. running).
/// </summary>
/// <param name="p">Process object to test</param>
/// <returns>True if valid, false otherwise.</returns>
public static bool IsValidProcess(Process p)
{
// null objects are always invalid
if (p == null)
return false;
// due to multithreading on Windows, lock the object
lock (p)
{
// Mono has a specific requirement if testing for an alive process
if (IsRunningOnMono)
return p.Handle != IntPtr.Zero; // native handle to the process
// on Windows, simply test the process ID to be non-zero.
// note that this can fail and have a race condition in threads, but the framework throws an exception when this occurs.
try
{
return p.Id != 0;
}
catch { } // all exceptions can be safely caught and ignored, meaning the process is not started or has stopped.
}
return false;
}
/// <summary>
/// Removes multi-dot extensions from a filename (i.e. *.automation.csproj)
/// </summary>
/// <param name="Filename">Filename to remove the extensions from</param>
/// <returns>Clean filename.</returns>
public static string GetFilenameWithoutAnyExtensions(string Filename)
{
Filename = Path.GetFileName(Filename);
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
int DotIndex = Filename.IndexOf('.');
if (DotIndex == -1)
{
return Filename; // No need to copy string
}
else
{
return Filename.Substring(0, DotIndex);
}
}
/// <summary>
/// Returns Filename with path but without extension.
/// </summary>
/// <param name="Filename">Filename</param>
/// <returns>Path to the file with its extension removed.</returns>
public static string GetPathWithoutExtension(string Filename)
{
if (!String.IsNullOrEmpty(Path.GetExtension(Filename)))
{
return Path.Combine(Path.GetDirectoryName(Filename), Path.GetFileNameWithoutExtension(Filename));
}
else
{
return Filename;
}
}
/// <summary>
/// Returns true if the specified file's path is located under the specified directory, or any of that directory's sub-folders. Does not care whether the file or directory exist or not. This is a simple string-based check.
/// </summary>
/// <param name="FilePath">The path to the file</param>
/// <param name="Directory">The directory to check to see if the file is located under (or any of this directory's subfolders)</param>
/// <returns></returns>
public static bool IsFileUnderDirectory(string FilePath, string Directory)
{
Copying //UE4/Dev-Build to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2864843 on 2016/02/12 by Ben.Marsh Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons. Change 2865161 on 2016/02/12 by Ben.Marsh Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build. Change 2865643 on 2016/02/12 by Ben.Marsh Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution. Change 2874408 on 2016/02/19 by Ben.Marsh Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present. Change 2879572 on 2016/02/24 by Ben.Marsh Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in. Change 2883216 on 2016/02/26 by Ben.Marsh Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields. Change 2883755 on 2016/02/26 by Ben.Marsh Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line. Change 2886223 on 2016/02/29 by Ben.Marsh Ignore SignTool errors - we can recover from them. Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2888235 on 2016/03/01 by Ben.Marsh Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects. Change 2889602 on 2016/03/02 by Ben.Marsh Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries. Change 2889610 on 2016/03/02 by Ben.Marsh Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked. Change 2891866 on 2016/03/03 by Matthew.Griffin Removed Rocket specific batch files and made sure installed build won't try to include them Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead Change 2893349 on 2016/03/03 by Ben.Marsh Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub. Change 2894703 on 2016/03/04 by Ben.Marsh Include *.usf when looking for the last code changelist. Also update version to 1.68. Change 2897991 on 2016/03/07 by Ben.Marsh Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69. Change 2898005 on 2016/03/07 by Ben.Marsh Minor changes to support BuildGraph: * UE4Build now has a static function that can update version files. * Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils. * FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...". Change 2898095 on 2016/03/07 by Ben.Marsh UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts. Change 2898248 on 2016/03/07 by Ben.Marsh UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this. Change 2898615 on 2016/03/08 by Matthew.Griffin Removed last uses of RunningRocket function All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances. Change 2898681 on 2016/03/08 by Matthew.Griffin Removed Automation.RunningRocket function as there are no more uses Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc. #lockdown Nick.Penwarden [CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
string DirectoryPathPlusSeparator = Path.GetFullPath(Directory);
if (!DirectoryPathPlusSeparator.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
DirectoryPathPlusSeparator += Path.DirectorySeparatorChar;
}
return Path.GetFullPath(FilePath).StartsWith(DirectoryPathPlusSeparator, StringComparison.InvariantCultureIgnoreCase);
}
/// <summary>
/// Checks if given type implements given interface.
/// </summary>
/// <typeparam name="InterfaceType">Interface to check.</typeparam>
/// <param name="TestType">Type to check.</param>
/// <returns>True if TestType implements InterfaceType. False otherwise.</returns>
public static bool ImplementsInterface<InterfaceType>(Type TestType)
{
return Array.IndexOf(TestType.GetInterfaces(), typeof(InterfaceType)) != -1;
}
/// <summary>
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969) ========================== MAJOR FEATURES + CHANGES ========================== Change 2986511 on 2016/05/23 by Ben.Marsh UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in. Change 2993274 on 2016/05/27 by Ben.Marsh Fix UGS enumerating deleted .target.cs files when trying to detect editor target name. Change 2994265 on 2016/05/31 by Ben.Marsh Add info about setting up CIS integration and zipped editor builds in UGS. Change 2994275 on 2016/05/31 by Ben.Marsh PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans) Change 2994287 on 2016/05/31 by Ben.Marsh UnrealGameSync: Add information about how UGS self-patches and updates. Change 2996928 on 2016/06/01 by Ben.Marsh UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet. Change 2997619 on 2016/06/02 by Ben.Marsh UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file. Change 2999769 on 2016/06/03 by Ben.Marsh UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not. Change 3004879 on 2016/06/07 by Ben.Marsh Remove copy of AWSSDK in NotForLicensees folder. Change 3004902 on 2016/06/07 by Ben.Marsh UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder. Change 3005892 on 2016/06/08 by Ben.Marsh Add the GitHub promotion to the UE4 binary release build. Change 3016241 on 2016/06/16 by Ben.Marsh UGS: Always sync version files at the same changelist as everything else (rather than head revision) Change 3016446 on 2016/06/16 by Ben.Marsh PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist) Change 3016472 on 2016/06/16 by Ben.Marsh PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot) Change 3017694 on 2016/06/17 by Ben.Marsh EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments. Change 3017695 on 2016/06/17 by Ben.Marsh UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders. #jira UE-24271 Change 3017698 on 2016/06/17 by Ben.Marsh Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types). #jira UEB-664 Change 3017701 on 2016/06/17 by Ben.Marsh BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node. Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read. All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency. Change 3017714 on 2016/06/17 by Ben.Marsh BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task). Change 3018007 on 2016/06/17 by Ben.Marsh UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt. #jira UE-28761 Change 3018322 on 2016/06/17 by Ben.Marsh PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti) Change 3018365 on 2016/06/17 by Ben.Marsh Misc: Fixes for warnings compiling ShaderCompileWorker on Clang Change 3018397 on 2016/06/17 by Ben.Marsh UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT Change 3019421 on 2016/06/20 by Ben.Marsh Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead. Change 3019423 on 2016/06/20 by Ben.Marsh PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti) Change 3020377 on 2016/06/20 by Ben.Marsh UBT: Fix strings not being escaped before writing to JSON files. Change 3020378 on 2016/06/20 by Ben.Marsh UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list. Change 3020966 on 2016/06/21 by Ben.Marsh EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main. #rb none #lockdown Nick.Penwarden [CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
/// Returns the User Settings Directory path. This matches FPlatformProcess::UserSettingsDir().
/// NOTE: This function may return null. Some accounts (eg. the SYSTEM account on Windows) do not have a personal folder, and Jenkins
/// runs using this account by default.
/// </summary>
public static DirectoryReference GetUserSettingDirectory()
{
if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac)
{
return new DirectoryReference(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Library", "Application Support", "Epic"));
}
else if (Environment.OSVersion.Platform == PlatformID.Unix)
{
return new DirectoryReference(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Epic"));
}
else
{
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969) ========================== MAJOR FEATURES + CHANGES ========================== Change 2986511 on 2016/05/23 by Ben.Marsh UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in. Change 2993274 on 2016/05/27 by Ben.Marsh Fix UGS enumerating deleted .target.cs files when trying to detect editor target name. Change 2994265 on 2016/05/31 by Ben.Marsh Add info about setting up CIS integration and zipped editor builds in UGS. Change 2994275 on 2016/05/31 by Ben.Marsh PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans) Change 2994287 on 2016/05/31 by Ben.Marsh UnrealGameSync: Add information about how UGS self-patches and updates. Change 2996928 on 2016/06/01 by Ben.Marsh UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet. Change 2997619 on 2016/06/02 by Ben.Marsh UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file. Change 2999769 on 2016/06/03 by Ben.Marsh UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not. Change 3004879 on 2016/06/07 by Ben.Marsh Remove copy of AWSSDK in NotForLicensees folder. Change 3004902 on 2016/06/07 by Ben.Marsh UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder. Change 3005892 on 2016/06/08 by Ben.Marsh Add the GitHub promotion to the UE4 binary release build. Change 3016241 on 2016/06/16 by Ben.Marsh UGS: Always sync version files at the same changelist as everything else (rather than head revision) Change 3016446 on 2016/06/16 by Ben.Marsh PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist) Change 3016472 on 2016/06/16 by Ben.Marsh PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot) Change 3017694 on 2016/06/17 by Ben.Marsh EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments. Change 3017695 on 2016/06/17 by Ben.Marsh UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders. #jira UE-24271 Change 3017698 on 2016/06/17 by Ben.Marsh Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types). #jira UEB-664 Change 3017701 on 2016/06/17 by Ben.Marsh BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node. Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read. All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency. Change 3017714 on 2016/06/17 by Ben.Marsh BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task). Change 3018007 on 2016/06/17 by Ben.Marsh UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt. #jira UE-28761 Change 3018322 on 2016/06/17 by Ben.Marsh PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti) Change 3018365 on 2016/06/17 by Ben.Marsh Misc: Fixes for warnings compiling ShaderCompileWorker on Clang Change 3018397 on 2016/06/17 by Ben.Marsh UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT Change 3019421 on 2016/06/20 by Ben.Marsh Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead. Change 3019423 on 2016/06/20 by Ben.Marsh PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti) Change 3020377 on 2016/06/20 by Ben.Marsh UBT: Fix strings not being escaped before writing to JSON files. Change 3020378 on 2016/06/20 by Ben.Marsh UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list. Change 3020966 on 2016/06/21 by Ben.Marsh EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main. #rb none #lockdown Nick.Penwarden [CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
// Not all user accounts have a local application data directory (eg. SYSTEM, used by Jenkins for builds).
string DirectoryName = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
if(String.IsNullOrEmpty(DirectoryName))
{
return null;
}
else
{
return new DirectoryReference(DirectoryName);
}
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
enum LOGICAL_PROCESSOR_RELATIONSHIP
{
RelationProcessorCore,
RelationNumaNode,
RelationCache,
RelationProcessorPackage,
RelationGroup,
RelationAll = 0xffff
}
[DllImport("kernel32.dll", SetLastError=true)]
extern static bool GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType, IntPtr Buffer, ref uint ReturnedLength);
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. 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 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
/// <summary>
/// Gets the number of logical cores. We use this rather than Environment.ProcessorCount when possible to handle machines with > 64 cores (the single group limit available to the .NET framework).
/// </summary>
/// <returns>The number of logical cores.</returns>
public static int GetLogicalProcessorCount()
{
// This function uses Windows P/Invoke calls; if we're on Mono, just return the default.
if(!Utils.IsRunningOnMono)
{
const int ERROR_INSUFFICIENT_BUFFER = 122;
// Determine the required buffer size to store the processor information
uint ReturnLength = 0;
if(!GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationGroup, IntPtr.Zero, ref ReturnLength) && Marshal.GetLastWin32Error() == ERROR_INSUFFICIENT_BUFFER)
{
// Allocate a buffer for it
IntPtr Ptr = Marshal.AllocHGlobal((int)ReturnLength);
try
{
if (GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationGroup, Ptr, ref ReturnLength))
{
int Count = 0;
for(int Pos = 0; Pos < ReturnLength; )
{
LOGICAL_PROCESSOR_RELATIONSHIP Type = (LOGICAL_PROCESSOR_RELATIONSHIP)Marshal.ReadInt16(Ptr, Pos);
if(Type == LOGICAL_PROCESSOR_RELATIONSHIP.RelationGroup)
{
// Read the values from the embedded GROUP_RELATIONSHIP structure
int GroupRelationshipPos = Pos + 8;
int ActiveGroupCount = Marshal.ReadInt16(Ptr, GroupRelationshipPos + 2);
// Read the processor counts from the embedded PROCESSOR_GROUP_INFO structures
int GroupInfoPos = GroupRelationshipPos + 24;
for(int GroupIdx = 0; GroupIdx < ActiveGroupCount; GroupIdx++)
{
Count += Marshal.ReadByte(Ptr, GroupInfoPos + 1);
GroupInfoPos += 40 + IntPtr.Size;
}
}
Pos += Marshal.ReadInt32(Ptr, Pos + 4);
}
return Count;
}
}
finally
{
Marshal.FreeHGlobal(Ptr);
}
}
}
return Environment.ProcessorCount;
}
/// <summary>
/// Gets the number of physical cores, excluding hyper threading.
/// </summary>
/// <returns>The number of physical cores, or -1 if it could not be obtained</returns>
public static int GetPhysicalProcessorCount()
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
// This function uses Windows P/Invoke calls; if we're on Mono, just fail.
if (Utils.IsRunningOnMono)
{
return -1;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
const int ERROR_INSUFFICIENT_BUFFER = 122;
// Determine the required buffer size to store the processor information
uint ReturnLength = 0;
if(!GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, IntPtr.Zero, ref ReturnLength) && Marshal.GetLastWin32Error() == ERROR_INSUFFICIENT_BUFFER)
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
// Allocate a buffer for it
IntPtr Ptr = Marshal.AllocHGlobal((int)ReturnLength);
try
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
if (GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, Ptr, ref ReturnLength))
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
// As per-MSDN, this will return one structure per physical processor. Each SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX structure is of a variable size, so just skip
// through the list and count the number of entries.
int Count = 0;
for(int Pos = 0; Pos < ReturnLength; )
{
LOGICAL_PROCESSOR_RELATIONSHIP Type = (LOGICAL_PROCESSOR_RELATIONSHIP)Marshal.ReadInt16(Ptr, Pos);
if(Type == LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore)
{
Count++;
}
Pos += Marshal.ReadInt32(Ptr, Pos + 4);
}
return Count;
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
finally
{
Marshal.FreeHGlobal(Ptr);
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
return -1;
}
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3632338) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3443778 by Ben.Woodhouse Aliasing for transient resources + new high level API Changelists integrated: 3368830 3368887 3377762 3377763 3379513 3381840 3382046 3382138 3385390 3385391 3385531 3396613 3388752 3396756 3397007 3397059 3397780 3397883 3401716 3415179 Change 3576521 by Bart.Hawthorne ShooterGame - update the game instance's online mode when the LAN option is changed Change 3587252 by Ben.Woodhouse Integrate from //UE4/Main/...@3584123 to //UE4/Dev-Console/... Change 3587943 by Luke.Thatcher [CONSOLE] [+] Improved XGE shader compiler - Added support for XGE interception interface, which allows asynchronous streaming of shader tasks into XGE, and eliminates the stalling/flushing found in the old system. - Old system has been renamed "Xml interface" - Both systems are available and selectable based on r.XGEShaderCompile.Mode CVar. Overview of the new system: - New system uses an additional XGEControlWorker process to manage communication between the engine and XGE. This is simply a copy of ShaderCompileWorker.exe (the implementation is part of SCW, but XGE requires the two files to be separate, hence the duplicate). - When shader jobs arrive from the engine, the shader compiler thread spawns an instance of XGEControlWorker within an XGE context, and connects to it via named pipes. - Job command lines are fed to the control worker via the pipe, which the worker enqueues within XGE by issuing a CreateProcess call, which is intercepted. Job completion is reported back to the engine via the named pipes. - New system is preferred over the old one, and is enabled with "-xgeshadercompile" command line switch or "r.XGEShaderCompile" cvar. - The new system depends on the "XGEController" engine module. Support for which is based on the WITH_XGE_CONTROLLER #define, or -xgecontroller/-noxgecontroller command line options. #jira UECON-263 Change 3590037 by Luke.Thatcher [CONSOLE] [!] Fix compile/link errors with XGE controller module - Various unity related fixes needed. Change 3590047 by Luke.Thatcher [CONSOLE] [!] Compile XGE controller module for Editor builds only - The module should only be used in uncooked, non-monolitic binaries (i.e. the editor). Change 3594074 by Luke.Thatcher [CONSOLE] [!] Fix Linux build - case sensitive header include was wrong in XGEControllerModule.cpp Change 3596292 by Luke.Thatcher [CONSOLE] [!] Actually fix unity/nopch build errors in XGE Controller! Change 3596776 by Jonathan.Fitzpatrick cherry pick CL 3595292 cooker change which fixes a condition where DLC would always cook with all maps regardless of which maps were specified. Change 3596795 by Jonathan.Fitzpatrick Back out changelist 3596776 Change 3596816 by Jonathan.Fitzpatrick Moved the DLC map check ahead of the "no maps found" condition so that include-all-maps can be skipped if DLC maps are found. Change 3604282 by Ben.Marsh UBT: Add support for pre-build and post-build steps when using MegaXGE. Change 3606862 by Ben.Marsh Fix missing header guard warning. Change 3611644 by Ben.Woodhouse Integrate from //UE4/Main/...@3610522 to //UE4/Dev-Console/... Change 3614089 by Joe.Barnes Call GRHICommandList.LatchBypass() after variables it checks are set. #jira ue-48130 Change 3617783 by Daniel.Eldar Headers for the HDR changes (they are pre-requisites for compilation). Integrated from: //UE4/Partner-Microsoft-DX12/Engine/Source/ThirdParty/Windows/DirectX/... to //UE4/Dev-Console/Engine/Source/ThirdParty/Windows/DirectX/... #jira UECON-226 Change 3619117 by Ben.Woodhouse Integrate from //UE4/Main/...@3617655 to //UE4/Dev-Console/... Change 3619123 by Ben.Woodhouse Integrate from //UE4/Main/...@3618361 to //UE4/Dev-Console/... Change 3619603 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp to //UE4/Dev-Console/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp Changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619608 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/... to //UE4/Dev-Console/Engine/Source/Runtime/... LLM update * made sure that all csv stat tracking is disabled if running without -LLMCSV * added new UObject scopes * increased LLM_MAX_THREAD_SCOPE_STACK_DEPTH to 128 to cope with new UObject scopes * added material scopes * changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619634 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llm tracking for CPU symbol allocations (20MB) * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio Change 3619642 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... Windows builds were incorrectly showing the debug memory enabled warning. Made IsDebugMemoryEnabled always return false on Windows. Change 3619799 by Luke.Thatcher [CONSOLE] [-] Disable peak memory tracking in LLM. Change 3619809 by Luke.Thatcher [CONSOLE] [^] Merging CL 3580894 from //Fortnite/Main/... to //UE4/Dev-Console/... - Add Render Target Pool Stats. Use "stat rendertargetpool" to view. Change 3619928 by Luke.Thatcher [CONSOLE] [^] Enable symbol compression on symstore task (Merging CL 3606945 from //Fortnite/Main/... to //UE4/Dev-Console/...) Change 3620571 by Keith.Judge Double the size of the occlusion query buffer in D3D12. This costs 256KB of memory. We need to refactor this in future to resize according to content on demand like D3D11.x. #jira FORT-53103 #jira FORT-53119 Change 3622419 by Daniel.Eldar [General] Fix for occasional ensure to do with retriving the new cvar value. #JIRA UE-46644 Change 3622491 by Daniel.Eldar [General] Added support for scaling on stat unit and unitgraph. #JIRA UE-46644 Change 3622610 by Daniel.Eldar [General] Fixed a compilation warning Change 3624659 by Ben.Woodhouse Integrate from //UE4/Main/...@3624175 to //UE4/Dev-Console/... Change 3624678 by Ben.Woodhouse Integrate from //UE4/Main/...@3624415 to //UE4/Dev-Console/... Change 3624878 by Ben.Woodhouse Integrate as edit CLs 3611835 3611844 3616942 3617607 Descriptor heap memory fix (saves up to ~100MB). * Fix a bug where rolling over a thread-local heap immediately after switching to context-local would crash due to an uninitialized syncpoint * Add a separate value for context local heaps (LOCAL_HEAP_SIZE) and set it to a sensible value (2MB) instead of the current 16MB. This means thread local heaps will be allocated in chunks of ~2MB instead of 16MB. There can be up to 6 thread-local heaps, since they're per-context. Measured peak descriptor heap memory with LLM: 45MB (compared to 145MB previously) This improves behaviour, but this code could use a bit of a rewrite to allow it to reclaim memory better. For example, the global heap memory is almost entirely wasted currently, since when a context switches to "context local strategy" it simply throws this memory away, never to be reclaimed. Having the pools thread-local is also not a good strategy. Ideally we want a thread-safe pool allocator for descriptor heaps which is shared between all the contexts . Change 3624882 by Ben.Woodhouse Fix virtual destructor warning in D3DX12.h Change 3626419 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum #jira UECON-264 Change 3626906 by Joe.Barnes Fix compile errors when nativizing when a property references a sub object of a dervied type with modified default properties Change 3628045 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... LLM - enabled LLM on Windows * fixed crash in FLLMObjectAllocator destructor. Only happens on Windows shutdown. * changed Align to AlignArbitrary in LLMArray. Small memory saving. * clear ThreadStateAllocator in FLLMTracker::Clear(). Small memory saving * set program size to zero on windows because it isn't relevant #jira UECON-282 Change 3632279 by Ben.Woodhouse Back out changelist 3619862 #jira UE-49472 [CL 3632432 by Joe Barnes in Main branch]
2017-09-07 22:18:47 -04:00
/// <summary>
/// Executes a list of custom build step scripts
/// </summary>
/// <param name="ScriptFiles">List of script files to execute</param>
/// <returns>True if the steps succeeded, false otherwise</returns>
public static void ExecuteCustomBuildSteps(FileReference[] ScriptFiles)
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3632338) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3443778 by Ben.Woodhouse Aliasing for transient resources + new high level API Changelists integrated: 3368830 3368887 3377762 3377763 3379513 3381840 3382046 3382138 3385390 3385391 3385531 3396613 3388752 3396756 3397007 3397059 3397780 3397883 3401716 3415179 Change 3576521 by Bart.Hawthorne ShooterGame - update the game instance's online mode when the LAN option is changed Change 3587252 by Ben.Woodhouse Integrate from //UE4/Main/...@3584123 to //UE4/Dev-Console/... Change 3587943 by Luke.Thatcher [CONSOLE] [+] Improved XGE shader compiler - Added support for XGE interception interface, which allows asynchronous streaming of shader tasks into XGE, and eliminates the stalling/flushing found in the old system. - Old system has been renamed "Xml interface" - Both systems are available and selectable based on r.XGEShaderCompile.Mode CVar. Overview of the new system: - New system uses an additional XGEControlWorker process to manage communication between the engine and XGE. This is simply a copy of ShaderCompileWorker.exe (the implementation is part of SCW, but XGE requires the two files to be separate, hence the duplicate). - When shader jobs arrive from the engine, the shader compiler thread spawns an instance of XGEControlWorker within an XGE context, and connects to it via named pipes. - Job command lines are fed to the control worker via the pipe, which the worker enqueues within XGE by issuing a CreateProcess call, which is intercepted. Job completion is reported back to the engine via the named pipes. - New system is preferred over the old one, and is enabled with "-xgeshadercompile" command line switch or "r.XGEShaderCompile" cvar. - The new system depends on the "XGEController" engine module. Support for which is based on the WITH_XGE_CONTROLLER #define, or -xgecontroller/-noxgecontroller command line options. #jira UECON-263 Change 3590037 by Luke.Thatcher [CONSOLE] [!] Fix compile/link errors with XGE controller module - Various unity related fixes needed. Change 3590047 by Luke.Thatcher [CONSOLE] [!] Compile XGE controller module for Editor builds only - The module should only be used in uncooked, non-monolitic binaries (i.e. the editor). Change 3594074 by Luke.Thatcher [CONSOLE] [!] Fix Linux build - case sensitive header include was wrong in XGEControllerModule.cpp Change 3596292 by Luke.Thatcher [CONSOLE] [!] Actually fix unity/nopch build errors in XGE Controller! Change 3596776 by Jonathan.Fitzpatrick cherry pick CL 3595292 cooker change which fixes a condition where DLC would always cook with all maps regardless of which maps were specified. Change 3596795 by Jonathan.Fitzpatrick Back out changelist 3596776 Change 3596816 by Jonathan.Fitzpatrick Moved the DLC map check ahead of the "no maps found" condition so that include-all-maps can be skipped if DLC maps are found. Change 3604282 by Ben.Marsh UBT: Add support for pre-build and post-build steps when using MegaXGE. Change 3606862 by Ben.Marsh Fix missing header guard warning. Change 3611644 by Ben.Woodhouse Integrate from //UE4/Main/...@3610522 to //UE4/Dev-Console/... Change 3614089 by Joe.Barnes Call GRHICommandList.LatchBypass() after variables it checks are set. #jira ue-48130 Change 3617783 by Daniel.Eldar Headers for the HDR changes (they are pre-requisites for compilation). Integrated from: //UE4/Partner-Microsoft-DX12/Engine/Source/ThirdParty/Windows/DirectX/... to //UE4/Dev-Console/Engine/Source/ThirdParty/Windows/DirectX/... #jira UECON-226 Change 3619117 by Ben.Woodhouse Integrate from //UE4/Main/...@3617655 to //UE4/Dev-Console/... Change 3619123 by Ben.Woodhouse Integrate from //UE4/Main/...@3618361 to //UE4/Dev-Console/... Change 3619603 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp to //UE4/Dev-Console/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp Changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619608 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/... to //UE4/Dev-Console/Engine/Source/Runtime/... LLM update * made sure that all csv stat tracking is disabled if running without -LLMCSV * added new UObject scopes * increased LLM_MAX_THREAD_SCOPE_STACK_DEPTH to 128 to cope with new UObject scopes * added material scopes * changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619634 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llm tracking for CPU symbol allocations (20MB) * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio Change 3619642 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... Windows builds were incorrectly showing the debug memory enabled warning. Made IsDebugMemoryEnabled always return false on Windows. Change 3619799 by Luke.Thatcher [CONSOLE] [-] Disable peak memory tracking in LLM. Change 3619809 by Luke.Thatcher [CONSOLE] [^] Merging CL 3580894 from //Fortnite/Main/... to //UE4/Dev-Console/... - Add Render Target Pool Stats. Use "stat rendertargetpool" to view. Change 3619928 by Luke.Thatcher [CONSOLE] [^] Enable symbol compression on symstore task (Merging CL 3606945 from //Fortnite/Main/... to //UE4/Dev-Console/...) Change 3620571 by Keith.Judge Double the size of the occlusion query buffer in D3D12. This costs 256KB of memory. We need to refactor this in future to resize according to content on demand like D3D11.x. #jira FORT-53103 #jira FORT-53119 Change 3622419 by Daniel.Eldar [General] Fix for occasional ensure to do with retriving the new cvar value. #JIRA UE-46644 Change 3622491 by Daniel.Eldar [General] Added support for scaling on stat unit and unitgraph. #JIRA UE-46644 Change 3622610 by Daniel.Eldar [General] Fixed a compilation warning Change 3624659 by Ben.Woodhouse Integrate from //UE4/Main/...@3624175 to //UE4/Dev-Console/... Change 3624678 by Ben.Woodhouse Integrate from //UE4/Main/...@3624415 to //UE4/Dev-Console/... Change 3624878 by Ben.Woodhouse Integrate as edit CLs 3611835 3611844 3616942 3617607 Descriptor heap memory fix (saves up to ~100MB). * Fix a bug where rolling over a thread-local heap immediately after switching to context-local would crash due to an uninitialized syncpoint * Add a separate value for context local heaps (LOCAL_HEAP_SIZE) and set it to a sensible value (2MB) instead of the current 16MB. This means thread local heaps will be allocated in chunks of ~2MB instead of 16MB. There can be up to 6 thread-local heaps, since they're per-context. Measured peak descriptor heap memory with LLM: 45MB (compared to 145MB previously) This improves behaviour, but this code could use a bit of a rewrite to allow it to reclaim memory better. For example, the global heap memory is almost entirely wasted currently, since when a context switches to "context local strategy" it simply throws this memory away, never to be reclaimed. Having the pools thread-local is also not a good strategy. Ideally we want a thread-safe pool allocator for descriptor heaps which is shared between all the contexts . Change 3624882 by Ben.Woodhouse Fix virtual destructor warning in D3DX12.h Change 3626419 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum #jira UECON-264 Change 3626906 by Joe.Barnes Fix compile errors when nativizing when a property references a sub object of a dervied type with modified default properties Change 3628045 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... LLM - enabled LLM on Windows * fixed crash in FLLMObjectAllocator destructor. Only happens on Windows shutdown. * changed Align to AlignArbitrary in LLMArray. Small memory saving. * clear ThreadStateAllocator in FLLMTracker::Clear(). Small memory saving * set program size to zero on windows because it isn't relevant #jira UECON-282 Change 3632279 by Ben.Woodhouse Back out changelist 3619862 #jira UE-49472 [CL 3632432 by Joe Barnes in Main branch]
2017-09-07 22:18:47 -04:00
{
UnrealTargetPlatform HostPlatform = BuildHostPlatform.Current.Platform;
foreach(FileReference ScriptFile in ScriptFiles)
{
ProcessStartInfo StartInfo = new ProcessStartInfo();
StartInfo.FileName = BuildHostPlatform.Current.Shell.FullName;
if(BuildHostPlatform.Current.ShellType == ShellType.Cmd)
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3632338) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3443778 by Ben.Woodhouse Aliasing for transient resources + new high level API Changelists integrated: 3368830 3368887 3377762 3377763 3379513 3381840 3382046 3382138 3385390 3385391 3385531 3396613 3388752 3396756 3397007 3397059 3397780 3397883 3401716 3415179 Change 3576521 by Bart.Hawthorne ShooterGame - update the game instance's online mode when the LAN option is changed Change 3587252 by Ben.Woodhouse Integrate from //UE4/Main/...@3584123 to //UE4/Dev-Console/... Change 3587943 by Luke.Thatcher [CONSOLE] [+] Improved XGE shader compiler - Added support for XGE interception interface, which allows asynchronous streaming of shader tasks into XGE, and eliminates the stalling/flushing found in the old system. - Old system has been renamed "Xml interface" - Both systems are available and selectable based on r.XGEShaderCompile.Mode CVar. Overview of the new system: - New system uses an additional XGEControlWorker process to manage communication between the engine and XGE. This is simply a copy of ShaderCompileWorker.exe (the implementation is part of SCW, but XGE requires the two files to be separate, hence the duplicate). - When shader jobs arrive from the engine, the shader compiler thread spawns an instance of XGEControlWorker within an XGE context, and connects to it via named pipes. - Job command lines are fed to the control worker via the pipe, which the worker enqueues within XGE by issuing a CreateProcess call, which is intercepted. Job completion is reported back to the engine via the named pipes. - New system is preferred over the old one, and is enabled with "-xgeshadercompile" command line switch or "r.XGEShaderCompile" cvar. - The new system depends on the "XGEController" engine module. Support for which is based on the WITH_XGE_CONTROLLER #define, or -xgecontroller/-noxgecontroller command line options. #jira UECON-263 Change 3590037 by Luke.Thatcher [CONSOLE] [!] Fix compile/link errors with XGE controller module - Various unity related fixes needed. Change 3590047 by Luke.Thatcher [CONSOLE] [!] Compile XGE controller module for Editor builds only - The module should only be used in uncooked, non-monolitic binaries (i.e. the editor). Change 3594074 by Luke.Thatcher [CONSOLE] [!] Fix Linux build - case sensitive header include was wrong in XGEControllerModule.cpp Change 3596292 by Luke.Thatcher [CONSOLE] [!] Actually fix unity/nopch build errors in XGE Controller! Change 3596776 by Jonathan.Fitzpatrick cherry pick CL 3595292 cooker change which fixes a condition where DLC would always cook with all maps regardless of which maps were specified. Change 3596795 by Jonathan.Fitzpatrick Back out changelist 3596776 Change 3596816 by Jonathan.Fitzpatrick Moved the DLC map check ahead of the "no maps found" condition so that include-all-maps can be skipped if DLC maps are found. Change 3604282 by Ben.Marsh UBT: Add support for pre-build and post-build steps when using MegaXGE. Change 3606862 by Ben.Marsh Fix missing header guard warning. Change 3611644 by Ben.Woodhouse Integrate from //UE4/Main/...@3610522 to //UE4/Dev-Console/... Change 3614089 by Joe.Barnes Call GRHICommandList.LatchBypass() after variables it checks are set. #jira ue-48130 Change 3617783 by Daniel.Eldar Headers for the HDR changes (they are pre-requisites for compilation). Integrated from: //UE4/Partner-Microsoft-DX12/Engine/Source/ThirdParty/Windows/DirectX/... to //UE4/Dev-Console/Engine/Source/ThirdParty/Windows/DirectX/... #jira UECON-226 Change 3619117 by Ben.Woodhouse Integrate from //UE4/Main/...@3617655 to //UE4/Dev-Console/... Change 3619123 by Ben.Woodhouse Integrate from //UE4/Main/...@3618361 to //UE4/Dev-Console/... Change 3619603 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp to //UE4/Dev-Console/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp Changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619608 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/... to //UE4/Dev-Console/Engine/Source/Runtime/... LLM update * made sure that all csv stat tracking is disabled if running without -LLMCSV * added new UObject scopes * increased LLM_MAX_THREAD_SCOPE_STACK_DEPTH to 128 to cope with new UObject scopes * added material scopes * changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619634 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llm tracking for CPU symbol allocations (20MB) * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio Change 3619642 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... Windows builds were incorrectly showing the debug memory enabled warning. Made IsDebugMemoryEnabled always return false on Windows. Change 3619799 by Luke.Thatcher [CONSOLE] [-] Disable peak memory tracking in LLM. Change 3619809 by Luke.Thatcher [CONSOLE] [^] Merging CL 3580894 from //Fortnite/Main/... to //UE4/Dev-Console/... - Add Render Target Pool Stats. Use "stat rendertargetpool" to view. Change 3619928 by Luke.Thatcher [CONSOLE] [^] Enable symbol compression on symstore task (Merging CL 3606945 from //Fortnite/Main/... to //UE4/Dev-Console/...) Change 3620571 by Keith.Judge Double the size of the occlusion query buffer in D3D12. This costs 256KB of memory. We need to refactor this in future to resize according to content on demand like D3D11.x. #jira FORT-53103 #jira FORT-53119 Change 3622419 by Daniel.Eldar [General] Fix for occasional ensure to do with retriving the new cvar value. #JIRA UE-46644 Change 3622491 by Daniel.Eldar [General] Added support for scaling on stat unit and unitgraph. #JIRA UE-46644 Change 3622610 by Daniel.Eldar [General] Fixed a compilation warning Change 3624659 by Ben.Woodhouse Integrate from //UE4/Main/...@3624175 to //UE4/Dev-Console/... Change 3624678 by Ben.Woodhouse Integrate from //UE4/Main/...@3624415 to //UE4/Dev-Console/... Change 3624878 by Ben.Woodhouse Integrate as edit CLs 3611835 3611844 3616942 3617607 Descriptor heap memory fix (saves up to ~100MB). * Fix a bug where rolling over a thread-local heap immediately after switching to context-local would crash due to an uninitialized syncpoint * Add a separate value for context local heaps (LOCAL_HEAP_SIZE) and set it to a sensible value (2MB) instead of the current 16MB. This means thread local heaps will be allocated in chunks of ~2MB instead of 16MB. There can be up to 6 thread-local heaps, since they're per-context. Measured peak descriptor heap memory with LLM: 45MB (compared to 145MB previously) This improves behaviour, but this code could use a bit of a rewrite to allow it to reclaim memory better. For example, the global heap memory is almost entirely wasted currently, since when a context switches to "context local strategy" it simply throws this memory away, never to be reclaimed. Having the pools thread-local is also not a good strategy. Ideally we want a thread-safe pool allocator for descriptor heaps which is shared between all the contexts . Change 3624882 by Ben.Woodhouse Fix virtual destructor warning in D3DX12.h Change 3626419 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum #jira UECON-264 Change 3626906 by Joe.Barnes Fix compile errors when nativizing when a property references a sub object of a dervied type with modified default properties Change 3628045 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... LLM - enabled LLM on Windows * fixed crash in FLLMObjectAllocator destructor. Only happens on Windows shutdown. * changed Align to AlignArbitrary in LLMArray. Small memory saving. * clear ThreadStateAllocator in FLLMTracker::Clear(). Small memory saving * set program size to zero on windows because it isn't relevant #jira UECON-282 Change 3632279 by Ben.Woodhouse Back out changelist 3619862 #jira UE-49472 [CL 3632432 by Joe Barnes in Main branch]
2017-09-07 22:18:47 -04:00
{
StartInfo.Arguments = String.Format("/C \"{0}\"", ScriptFile.FullName);
}
else
{
StartInfo.Arguments = String.Format("\"{0}\"", ScriptFile.FullName);
}
int ReturnCode = Utils.RunLocalProcessAndLogOutput(StartInfo);
if(ReturnCode != 0)
{
throw new BuildException("Custom build step terminated with exit code {0}", ReturnCode);
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console @ 3632338) #rb none #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3443778 by Ben.Woodhouse Aliasing for transient resources + new high level API Changelists integrated: 3368830 3368887 3377762 3377763 3379513 3381840 3382046 3382138 3385390 3385391 3385531 3396613 3388752 3396756 3397007 3397059 3397780 3397883 3401716 3415179 Change 3576521 by Bart.Hawthorne ShooterGame - update the game instance's online mode when the LAN option is changed Change 3587252 by Ben.Woodhouse Integrate from //UE4/Main/...@3584123 to //UE4/Dev-Console/... Change 3587943 by Luke.Thatcher [CONSOLE] [+] Improved XGE shader compiler - Added support for XGE interception interface, which allows asynchronous streaming of shader tasks into XGE, and eliminates the stalling/flushing found in the old system. - Old system has been renamed "Xml interface" - Both systems are available and selectable based on r.XGEShaderCompile.Mode CVar. Overview of the new system: - New system uses an additional XGEControlWorker process to manage communication between the engine and XGE. This is simply a copy of ShaderCompileWorker.exe (the implementation is part of SCW, but XGE requires the two files to be separate, hence the duplicate). - When shader jobs arrive from the engine, the shader compiler thread spawns an instance of XGEControlWorker within an XGE context, and connects to it via named pipes. - Job command lines are fed to the control worker via the pipe, which the worker enqueues within XGE by issuing a CreateProcess call, which is intercepted. Job completion is reported back to the engine via the named pipes. - New system is preferred over the old one, and is enabled with "-xgeshadercompile" command line switch or "r.XGEShaderCompile" cvar. - The new system depends on the "XGEController" engine module. Support for which is based on the WITH_XGE_CONTROLLER #define, or -xgecontroller/-noxgecontroller command line options. #jira UECON-263 Change 3590037 by Luke.Thatcher [CONSOLE] [!] Fix compile/link errors with XGE controller module - Various unity related fixes needed. Change 3590047 by Luke.Thatcher [CONSOLE] [!] Compile XGE controller module for Editor builds only - The module should only be used in uncooked, non-monolitic binaries (i.e. the editor). Change 3594074 by Luke.Thatcher [CONSOLE] [!] Fix Linux build - case sensitive header include was wrong in XGEControllerModule.cpp Change 3596292 by Luke.Thatcher [CONSOLE] [!] Actually fix unity/nopch build errors in XGE Controller! Change 3596776 by Jonathan.Fitzpatrick cherry pick CL 3595292 cooker change which fixes a condition where DLC would always cook with all maps regardless of which maps were specified. Change 3596795 by Jonathan.Fitzpatrick Back out changelist 3596776 Change 3596816 by Jonathan.Fitzpatrick Moved the DLC map check ahead of the "no maps found" condition so that include-all-maps can be skipped if DLC maps are found. Change 3604282 by Ben.Marsh UBT: Add support for pre-build and post-build steps when using MegaXGE. Change 3606862 by Ben.Marsh Fix missing header guard warning. Change 3611644 by Ben.Woodhouse Integrate from //UE4/Main/...@3610522 to //UE4/Dev-Console/... Change 3614089 by Joe.Barnes Call GRHICommandList.LatchBypass() after variables it checks are set. #jira ue-48130 Change 3617783 by Daniel.Eldar Headers for the HDR changes (they are pre-requisites for compilation). Integrated from: //UE4/Partner-Microsoft-DX12/Engine/Source/ThirdParty/Windows/DirectX/... to //UE4/Dev-Console/Engine/Source/ThirdParty/Windows/DirectX/... #jira UECON-226 Change 3619117 by Ben.Woodhouse Integrate from //UE4/Main/...@3617655 to //UE4/Dev-Console/... Change 3619123 by Ben.Woodhouse Integrate from //UE4/Main/...@3618361 to //UE4/Dev-Console/... Change 3619603 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp to //UE4/Dev-Console/Engine/Source/Runtime/Engine/Private/Materials/MaterialInstanceConstant.cpp Changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619608 by Stewart.Lynch Merging //Fortnite/Dev-Athena/Engine/Source/Runtime/... to //UE4/Dev-Console/Engine/Source/Runtime/... LLM update * made sure that all csv stat tracking is disabled if running without -LLMCSV * added new UObject scopes * increased LLM_MAX_THREAD_SCOPE_STACK_DEPTH to 128 to cope with new UObject scopes * added material scopes * changed UMaterialInstance::PostLoad(); to Super::PostLoad(); Change 3619634 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llm tracking for CPU symbol allocations (20MB) * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio Change 3619642 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... Windows builds were incorrectly showing the debug memory enabled warning. Made IsDebugMemoryEnabled always return false on Windows. Change 3619799 by Luke.Thatcher [CONSOLE] [-] Disable peak memory tracking in LLM. Change 3619809 by Luke.Thatcher [CONSOLE] [^] Merging CL 3580894 from //Fortnite/Main/... to //UE4/Dev-Console/... - Add Render Target Pool Stats. Use "stat rendertargetpool" to view. Change 3619928 by Luke.Thatcher [CONSOLE] [^] Enable symbol compression on symstore task (Merging CL 3606945 from //Fortnite/Main/... to //UE4/Dev-Console/...) Change 3620571 by Keith.Judge Double the size of the occlusion query buffer in D3D12. This costs 256KB of memory. We need to refactor this in future to resize according to content on demand like D3D11.x. #jira FORT-53103 #jira FORT-53119 Change 3622419 by Daniel.Eldar [General] Fix for occasional ensure to do with retriving the new cvar value. #JIRA UE-46644 Change 3622491 by Daniel.Eldar [General] Added support for scaling on stat unit and unitgraph. #JIRA UE-46644 Change 3622610 by Daniel.Eldar [General] Fixed a compilation warning Change 3624659 by Ben.Woodhouse Integrate from //UE4/Main/...@3624175 to //UE4/Dev-Console/... Change 3624678 by Ben.Woodhouse Integrate from //UE4/Main/...@3624415 to //UE4/Dev-Console/... Change 3624878 by Ben.Woodhouse Integrate as edit CLs 3611835 3611844 3616942 3617607 Descriptor heap memory fix (saves up to ~100MB). * Fix a bug where rolling over a thread-local heap immediately after switching to context-local would crash due to an uninitialized syncpoint * Add a separate value for context local heaps (LOCAL_HEAP_SIZE) and set it to a sensible value (2MB) instead of the current 16MB. This means thread local heaps will be allocated in chunks of ~2MB instead of 16MB. There can be up to 6 thread-local heaps, since they're per-context. Measured peak descriptor heap memory with LLM: 45MB (compared to 145MB previously) This improves behaviour, but this code could use a bit of a rewrite to allow it to reclaim memory better. For example, the global heap memory is almost entirely wasted currently, since when a context switches to "context local strategy" it simply throws this memory away, never to be reclaimed. Having the pools thread-local is also not a good strategy. Ideally we want a thread-safe pool allocator for descriptor heaps which is shared between all the contexts . Change 3624882 by Ben.Woodhouse Fix virtual destructor warning in D3DX12.h Change 3626419 by Stewart.Lynch Merging //Fortnite/Main/... to //UE4/Dev-Console/... LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum #jira UECON-264 Change 3626906 by Joe.Barnes Fix compile errors when nativizing when a property references a sub object of a dervied type with modified default properties Change 3628045 by Stewart.Lynch Merging //Fortnite/Main/Engine/Source/Runtime/Core/... to //UE4/Dev-Console/Engine/Source/Runtime/Core/... LLM - enabled LLM on Windows * fixed crash in FLLMObjectAllocator destructor. Only happens on Windows shutdown. * changed Align to AlignArbitrary in LLMArray. Small memory saving. * clear ThreadStateAllocator in FLLMTracker::Clear(). Small memory saving * set program size to zero on windows because it isn't relevant #jira UECON-282 Change 3632279 by Ben.Woodhouse Back out changelist 3619862 #jira UE-49472 [CL 3632432 by Joe Barnes in Main branch]
2017-09-07 22:18:47 -04:00
}
}
}
/// <summary>
/// Parses a command line into a list of arguments
/// </summary>
/// <param name="CommandLine">The command line to parse</param>
/// <returns>List of output arguments</returns>
public static List<string> ParseArgumentList(string CommandLine)
{
List<string> Arguments = new List<string>();
StringBuilder CurrentArgument = new StringBuilder();
for (int Idx = 0; Idx < CommandLine.Length; Idx++)
{
if (!Char.IsWhiteSpace(CommandLine[Idx]))
{
CurrentArgument.Clear();
bool bInQuotes = false;
for (; Idx < CommandLine.Length; Idx++)
{
if (CommandLine[Idx] == '\"')
{
bInQuotes ^= true;
}
else if (CommandLine[Idx] == ' ' && !bInQuotes)
{
break;
}
else
{
CurrentArgument.Append(CommandLine[Idx]);
}
}
Arguments.Add(CurrentArgument.ToString());
}
}
return Arguments;
}
/// <summary>
/// Formats a list of arguments as a command line, inserting quotes as necessary
/// </summary>
/// <param name="Arguments">List of arguments to format</param>
/// <returns>Command line string</returns>
public static string FormatCommandLine(List<string> Arguments)
{
StringBuilder CommandLine = new StringBuilder();
foreach (string Argument in Arguments)
{
if (CommandLine.Length > 0)
{
CommandLine.Append(' ');
}
int SpaceIdx = Argument.IndexOf(' ');
if (SpaceIdx == -1)
{
CommandLine.Append(Argument);
}
else
{
int EqualsIdx = Argument.IndexOf('=');
if (EqualsIdx != -1 && Argument[0] == '-')
{
CommandLine.Append(Argument, 0, EqualsIdx + 1);
CommandLine.Append('\"');
CommandLine.Append(Argument, EqualsIdx + 1, Argument.Length - (EqualsIdx + 1));
CommandLine.Append('\"');
}
else
{
CommandLine.Append('\"');
CommandLine.Append(Argument);
CommandLine.Append('\"');
}
}
}
return CommandLine.ToString();
}
/// <summary>
/// Writes a file if the contents have changed
/// </summary>
/// <param name="Location">Location of the file</param>
/// <param name="Contents">New contents of the file</param>
/// <param name="Comparison">The type of string comparison to use</param>
public static void WriteFileIfChanged(FileReference Location, string Contents, StringComparison Comparison)
{
// Only write the file if its contents have changed.
if (!FileReference.Exists(Location))
{
DirectoryReference.CreateDirectory(Location.Directory);
FileReference.WriteAllText(Location, Contents, GetEncodingForString(Contents));
}
else
{
string CurrentContents = Utils.ReadAllText(Location.FullName);
if (!String.Equals(CurrentContents, Contents, Comparison))
{
FileReference BackupFile = new FileReference(Location.FullName + ".old");
try
{
Log.TraceLog("Updating {0}: contents have changed. Saving previous version to {1}.", Location, BackupFile);
FileReference.Delete(BackupFile);
FileReference.Move(Location, BackupFile);
}
catch (Exception Ex)
{
Log.TraceWarning("Unable to rename {0} to {1}", Location, BackupFile);
Log.TraceLog("{0}", ExceptionUtils.FormatExceptionDetails(Ex));
}
FileReference.WriteAllText(Location, Contents, GetEncodingForString(Contents));
}
}
}
/// <summary>
/// Determines the appropriate encoding for a string: either ASCII or UTF-8.
/// </summary>
/// <param name="Str">The string to test.</param>
/// <returns>Either System.Text.Encoding.ASCII or System.Text.Encoding.UTF8, depending on whether or not the string contains non-ASCII characters.</returns>
private static Encoding GetEncodingForString(string Str)
{
// If the string length is equivalent to the encoded length, then no non-ASCII characters were present in the string.
// Don't write BOM as it messes with clang when loading response files.
return (Encoding.UTF8.GetByteCount(Str) == Str.Length) ? Encoding.ASCII : new UTF8Encoding(false);
}
}
}