#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]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3805828 by Gil.Gribb
UE4 - Fixed a bug in the lock free stalling task queue and adjusted a comment. The code is not current used, so this is not actually change the way the code works.
Change 3806784 by Ben.Marsh
UAT: Remove code to compile UBT when using UE4Build. It should already be compiled as a dependency of UAT.
Change 3807549 by Graeme.Thornton
Add a cook timer around VerifyCanCookPackage. A licensee reports this taking a lot of time so it'll be good to account for it.
Change 3807727 by Graeme.Thornton
Unhide the text asset format experimental editor option
Change 3807746 by Josh.Engebretson
Remove WER from iOS platform
Change 3807928 by Robert.Manuszewski
When async loading, GC Clusters will be created after packages have been processed to avoid situations where some of the objects that are being added to a cluster haven't been fully loaded yet
Change 3808221 by Steve.Robb
GitHub #4307 - Made GetModulePtr() thread safe by not using GetModule()
^ I'm not convinced by how much thread-safer this is really, but it's tidier anyway.
Change 3809233 by Graeme.Thornton
TBA: Misc changes to text asset commandlet
- Rename mode to "loadsave"
- Add -outputFormat option which can be assigned "text" or "binary"
- When saving binary, use a differentiated filename so that source assets aren't overwritten
Change 3809518 by Ben.Marsh
Remove the outdated UnrealSync automation script.
Change 3809643 by Steve.Robb
GitHub #4277 : fix bug; FMath::FormatIntToHumanReadable 3rd comma and negative value
#jira UE-53037
Change 3809862 by Steve.Robb
GitHub #3342 : [FRotator.h] Fix to DecompressAxisFromByte to be more efficient and reflect its intent accurately
#jira UE-42593
Change 3811190 by Graeme.Thornton
Add support for writing specific log channels to their own files
Change 3811197 by Graeme.Thornton
Minor updates to output formatting and timing for the text asset commandlet
Change 3811257 by Robert.Manuszewski
Cluster creation will now be time-sliced
Change 3811565 by Steve.Robb
Define out non-monolithic module functions.
Change 3812561 by Steve.Robb
GitHub #3886 : Enable Brace-Initialization for Declaring Variables
Incorrect semi-colon search removed after discussion with author.
Test added.
#jira UE-48242
Change 3812864 by Steve.Robb
Removal of some unproven code which was supposed to fix hot reloading BP class functions in plugins.
See: https://udn.unrealengine.com/questions/376978/aitask-blueprint-nodes-disappear-when-their-module.html
#jira UE-53089
Change 3820358 by Ben.Marsh
PR #4358: Incredibuild use ShowAgent by default (Contributed by projectgheist)
Change 3822594 by Ben.Marsh
UAT: Improvements to log file handling.
- Always create log files in the final location, rather than writing to a temp directory and copying in later.
- Now supports -Verbose and -VeryVerbose for increasing log verbosity, rather than -Verbose=XXX.
- Keep a backlog of log output before the log system is initialized, and flush it to the log file once it is.
- Allow buildmachines to specify the uebp_FinalLogFolder environment variable, which is used to form paths for display. When build machines copy log files elsewhere after UAT finishes (eg. a network share), this allows error messages to display the right location.
Change 3823695 by Ben.Marsh
UGS: Fix issue where precompiled binaries would not be shown as available for a change until scrolling the last submitted code change into the buffer (other symptoms, like de-focussing the main window would cause it to go back to an unavailable state, since the changes buffer was shrunk).
Now always queries changes up to the last change for which zipped binaries are available.
Change 3823845 by Ben.Marsh
UBT: Exclude C# projects for unsupported platforms when generating project files.
Change 3824180 by Ben.Marsh
UGS: Add an option to show changes by build machines, and move the "only show reviewed" option in there too (Options > Show Changes).
#jira
Change 3825777 by Steve.Robb
Fix to return value of StringToBytes.
Change 3825810 by Ben.Marsh
UBT: Reduce length of include paths for MSVC toolchain.
Change 3825822 by Robert.Manuszewski
Optimized PIE lazy pointer fixup. Should be up to 8x faster now.
Change 3826734 by Ben.Marsh
Remove code to disable TextureFormatAndroid on Linux. It seems to be an editor dependency.
Change 3827730 by Steve.Robb
Try to avoid decltype(auto) if it's not supported.
See: https://udn.unrealengine.com/questions/395644/build-417-with-c11-on-linux-ttuple-errors.html
Change 3827745 by Steve.Robb
Initializer list support for TMap.
Change 3827770 by Steve.Robb
GitHub #4399 : Added a CONSTEXPR qualifiers to FVariant::GetType()
#jira UE-53813
Change 3829189 by Ben.Marsh
UBT: Now always writes a minimal log file. By default, just contains the regular console output and any reasons why actions are outdated and needed to be executed. UAT directs child UBT instances to output logs into its own log folder, so that build machines can save them off.
Change 3830444 by Steve.Robb
BuildVersion and ModuleManifest moved to Core, and parsing of these files reimplemented to avoid a JSON library.
This should be revisited when Core has its own JSON library.
Change 3830718 by Ben.Marsh
Fix incorrect group name being returned by FStatNameAndInfo::GetGroupName() for stat groups.
The editor populates the viewport stats list by calling this for every registered stat and stat group (via FLevelViewportCommands::HandleNewStatGroup). The menu entry attempts to show the stat name with STAT_XXX stripped from the start as the menu item label, with the free-form text description as a tooltip.
For stat groups, the it would previously just return the stat group name as "Groups" (due to the raw naming convention of "//Groups//STATGROUP_Foo//..."). Since this didn't match the expected naming convention in FLevelViewportCommands::HandleNewStat (ie. STAT_XXX or STATGROUP_XXX), it would fail to add it.
When the first actual stat belonging to that group is added, it would add a menu entry for the group based on that, but the stat description no longer makes sense as a tooltip for the group. As a result, all the editor tooltips were junk.
#jira UE-53845
Change 3831064 by Ben.Marsh
Fix log file contention when spawning UBT recursively.
Change 3832654 by Ben.Marsh
UGS: Fix error panel not being selected when opened, and weird alignment/color issues on it.
Change 3832680 by Ben.Marsh
UGS: Fix failing to detect workspace if synced to a different stream. Seems to be a regression caused by recent P4D upgrade.
Change 3832695 by Ben.Marsh
UGS: Invert the options in the 'Show Changes' submenu for simplicity.
Change 3833528 by Ben.Marsh
UAT: Script to rewrite source files with public include paths relative to the 'Public' folder. Usage is: RebasePublicIncludePaths -UpdateDir=<Dir> [-Project=<Dir>] [-Write].
Change 3833543 by Ben.Marsh
UBT: Allow targets to opt-out of having public include paths added for every dependent module. This reduces the command line length when building a target, which has recently become a problem with larger games (due to Microsoft's compiler embedding the command line into each object file, with a maximum length of 64kb). All engine modules are compiled with this enabled; games may opt into it by setting bLegacyPublicIncludePaths = false; from their .target.cs, as may individual modules.
Change 3834354 by Robert.Manuszewski
Archetype pointer will now be cached to avoid locking the object tables when acquiring its info. It should also be faster this way regardless of any locks.
#jira UE-52035
Change 3834400 by Robert.Manuszewski
Fixing crash on exit caused by cached archetypes not being cleaned up before static exit cleanup.
#jira UE-52035
Change 3834947 by Steve.Robb
USE_FORMAT_STRING_TYPE_CHECKING removed from FMsg::Logf and FMsg::Logf_Internal.
Change 3835004 by Ben.Marsh
Fix code that relies on dubious behavior of requiring referenced "include path only" modules having their _API macros set to be empty, even if the module is actually implemented in a separate DLL.
Change 3835340 by Ben.Marsh
Fix errors making installed build from directories with spaces in the name.
Change 3835972 by Ben.Marsh
UBT: Improved diagnostic message for targets which don't need a version file.
Change 3836019 by Ben.Marsh
UBT: Fix warnings caused by defining linkage macros for third party libraries.
Change 3836269 by Ben.Marsh
Fix message box larger than the screen height being created when a large number of modules are incompatible on startup.
Change 3836543 by Ben.Marsh
Enable SoundMod plugin on Linux, since it's already supported through the editor.
Change 3836546 by Ben.Marsh
PR #4412: fix type mismatch (Contributed by nakapon)
Change 3836805 by Ben.Marsh
Fix commandlet to compile marketplace plugins.
Change 3836829 by Ben.Marsh
UBT: Fix ability to precompile plugins from installed engine builds.
Change 3837036 by Ben.Marsh
UBT: Write the previous and new contents of intermediate files to the log if they change. Makes it easier to debug unexpected rebuilds.
Change 3837037 by Ben.Marsh
UBT: Fix engine modules having inconsistent definitions depending on whether modules are only referenced for their include paths vs being linked into a binary (due to different _API macro).
Change 3837040 by Ben.Marsh
UBT: Remove code that initializes members in ModuleRules and TargetRules objects before the constructor is run. This is no longer necessary, now that the backwards-compatible default constructors have been removed.
Change 3837247 by Ben.Marsh
UBT: Remove UELinkerFixups module, now that plugins and precompiled modules do not require hacks to force initialization (since they're linked in as object files).
Encryption and signing keys are now set via macros expanded from the IMPLEMENT_PRIMARY_GAME_MODULE macro, via project-specific macros added in the TargetRules constructor.
Change 3837262 by Ben.Marsh
UBT: Set whether a module is an engine module or not via a default value for the rules assembly. All non-program engine and enterprise modules are created with this flag set to true; program targets and modules are now created from a different assembly that sets it to false. This removes hacks from UEBuildModule needed to adjust behavior for different module types based on the directory containing the module.
Also add a bUseBackwardsCompatibleDefaults flag to the TargetRules class, also initialized to a default value from a setting passed to the RulesAssembly constructor. This controls whether modules created for the target should be configured to allow breaking changes to default settings, and is set to false for all engine targets, and true for all project targets.
Change 3837343 by Ben.Marsh
UBT: Remove the OverrideExecutableFileExtension target property. Change the only current use for this (the MayaLiveLinkPlugin target) to use a post build step to copy the file instead.
Change 3837356 by Ben.Marsh
Fix invalid character encodings.
Change 3837727 by Graeme.Thornton
UnrealPak: KeyGenerator: Only generate prime table when required, not all the time
Change 3837823 by Ben.Marsh
UBT: Output warnings and errors when compiling module rules assembly in a way that allows them to be double-clicked in the Visual Studio output window.
Change 3837831 by Graeme.Thornton
UBT: When parsing crypto settings, always load legacy data first, then allow the new system to override it. Provides the same key backwards compatibility that the editor settings class gives
Change 3837857 by Robert.Manuszewski
PR #4404: Make FGCArrayPool singleton global instead of per-CU (Contributed by mhutch)
Change 3837943 by Robert.Manuszewski
PR #4405: Fix FGarbageCollectionTracer (Contributed by mhutch)
Change 3838451 by Ben.Marsh
UBT: Fix exceptions thrown on a background thread while caching C++ includes not being caught and logged correctly. Now captures exceptions and re-throws on the main thread.
#jira UE-53996
Change 3839519 by Ben.Marsh
UBT: Simplify configuring bPrecompile and bUsePrecompile settings for modules. Each rules assembly can now be configured as installed, which defaults the module rules it creates to use precompiled data.
Change 3843790 by Graeme.Thornton
UnrealPak: Log the size of all encrypted data
Change 3844258 by Ben.Marsh
Fix plugin compile failure when created via new plugin wizard. Passing -plugin on the command line is unnecessary, and is now reserved for packaging external plugins for the marketplace.
Also extend the length of time that the error toast stays visible, and don't delete the plugin on failure.
#jira UE-54157
Change 3845796 by Ben.Marsh
Workaround for slow performance of String.EndsWith() on Mono.
Change 3845823 by Ben.Marsh
Fix case sensitive matching of platform names in -TargetPlatform=X argument to BuildCookRun.
#jira UE-54123
Change 3845901 by Arciel.Rekman
Linux: fix crash due to lambda lifetime issues (UE-54040).
- The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+).
(Edigrating 3819174 to Dev-Core)
Change 3846439 by Ben.Marsh
Revert CL 3822742 to always call Process.WaitForExit(). The Android target platform module in the editor spawns ADB.EXE, which inherits the editor's stdout/stderr handles and forks itself. Process.WaitForExit() waits for EOF on those pipes, which never occurs because the forked process never terminates.
Proper fix is probably to have the engine explicitly duplicate stdout/stderr handles for new pipes to output process, but too risky before copying up to Main.
Change 3816608 by Ben.Marsh
UBT: Use DirectoryReference objects for all include paths.
Change 3816954 by Ben.Marsh
UBT: Remove bIncludeDependentLibrariesInLibrary option. This is not widely supported by platform toolchains, and is not used anywhere.
Change 3816986 by Ben.Marsh
UBT: Remove UEBuildBinaryConfig; UEBuildBinary objects are now just created directly.
Change 3816991 by Ben.Marsh
UBT: Deprecate PlatformSpecificDynamicallyLoadedModules. We no longer have any special behavior for these modules.
Change 3823090 by Ben.Marsh
UAT: Improve logging for child UAT instances.
- Calling RunUAT now requires an identifier for prefixing into the parent log, which is also used to determine the name of the log folder.
- Stdout is no longer written to its own output file, since it's written to the parent stdout, the parent log file, and the child log file anyway.
- Log folders for child UAT instances are left intact, rather than being copied to the parent folder. The derived names for the copied names were confusing and hard to read.
- Output from UAT is no longer returned as a string. It should not be parsed anyway (but may be huge!). ProcessResult now supports running without capturing output.
Change 3826082 by Ben.Marsh
UBT: Add a check to make sure that all modules that are precompiled are correctly marked to enable it, even if they are part of the build target.
Change 3827025 by Ben.Marsh
UBT: Move the compile output directory into a property on the module, and explicitly pass it to the toolchain when compiling.
Change 3829927 by James.Hopkin
Made HTTP interface const correct
Change 3833533 by Ben.Marsh
Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules.
Change 3835826 by Ben.Marsh
UBT: Precompiled targets now generate a separate manifest for each precompiled module, rather than adding object files to a library. This fixes issues where object files from static libraries would not be linked into a target if a symbol in them was not referenced.
Change 3835969 by Ben.Marsh
UBT: Fix cases where text is being written directly to the console rather than via logging functions.
Change 3837777 by Steve.Robb
Format string type checking added to FOutputDevice::Logf.
Fixes for those.
Change 3838569 by Steve.Robb
Algo moved up a folder.
[CL 3847482 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3623004 by Ben.Marsh
Fix RemoteExecutor not taking the remote machine specs into account.
Change 3623172 by Ben.Marsh
UGS: Fix "More Info..." button not using P4 server override.
Change 3628820 by Ben.Marsh
PR #3979: Get working directory from task element, not tool node (Contributed by nullbus)
Change 3630424 by Graeme.Thornton
Make the AES key parameter const in FAES::EncryptData()
Change 3632786 by Steve.Robb
FString constructor fixed to not take an ignored void* parameter, which can be misleading.
Change 3639534 by Ben.Marsh
Remove old P4.NET library. Doesn't seem to be used by anything.
Change 3640536 by Steve.Robb
GitHub #4007 : Delete unnecessary specialization of MakeArrayView
#jira UE-49617
Change 3641155 by Gil.Gribb
UE4 - Speculative fix for problem with summary reading in FAsyncArchive2.
Change 3643932 by Ben.Marsh
Add an example build script for updating the version number, then compiling and staging the editor and tools to an output directory. Optionally submits at the end (requires -Submit argument).
Change 3644825 by Ben.Marsh
Use VSWHERE to find the location of MsBuild.exe, if available.
https://github.com/EpicGames/UnrealEngine/pull/3879#issuecomment-329688645
Change 3647395 by Ben.Marsh
Allow compiling of monolithic binaries from BuildEditorAndTools.xml, using the -set:GameTarget=FooGame -set:TargetPlatforms=Win32;Win64 options.
Change 3650300 by Ben.Marsh
UAT: Remove code that deletes cooked data on a failed cook. The engine should write packages out transactionally now (by writing to a temporary file and moving into place), and deleting the cooked data just prevents post-mortem analysis.
Change 3650856 by Robert.Manuszewski
Adding checks to prevent FlushAsyncLoading and LoadObject/LoadPackage from being called from any threads other than the game thread
Change 3651022 by Gil.Gribb
UE4 - Possible fix for mysterious ensure indicating problematic recursion in the pak precacher.
Change 3658331 by Steve.Robb
Fix for the parsing of large integer values.
Change 3661958 by Gil.Gribb
UE4 - Fixed rare hang in task graph.
Change 3664021 by Robert.Manuszewski
Fix for a potential GC crash caused by stale pointer in AnimInstanceProxy
See https://udn.unrealengine.com/questions/392432/gc-issue-uaniminstancemontageinstances-empty-but-u.html
Change 3664254 by Steve.Robb
Use ANSI allocator when thread sanitizer is enabled. This allows the generation of more accurate and meaningful reports.
Change 3664436 by Steve.Robb
Use TUniquePtr instead of a thread-unsafe TSharedPtr to move data between threads.
Change 3666461 by Graeme.Thornton
Improvements to signing/encryption key embedding and runtime access
- Changed method of embedding key into the executable to make it more secure
- Added FAESKey class to wrap a 32 byte key
Change 3666462 by Graeme.Thornton
Cut ShooterGame AES key down to 32 characters
Change 3677560 by Ben.Marsh
PR #4074: UBT: Add include and library-related fields to module JSON output (Contributed by adamrehn)
Change 3683534 by Steve.Robb
Refactoring of enum/struct lookup during hot reload.
Change 3683754 by Steve.Robb
Alignment fixes to allow int64 on 32-bit platforms
Support for integral types in IsAligned.
Static asserts so that alignment functions will no longer be called with non-intergal, non-pointer types.
Some fixes to existing code.
Change 3686670 by Steve.Robb
Fix for thread-unsafe modification of static array in FString::ParseIntoArrayWS.
Change 3687540 by Ben.Marsh
Fix all UBT/UAT output going to stderr rather than stdout.
Change 3688931 by Gil.Gribb
UE4 - Critical fix for a rare race condition in the pak file async IO layer.
Change 3690000 by Graeme.Thornton
Manual copy of 4.18 CL 3687869
Make UBT include the destination INI file for a given hierarchy if it exists
Renamed VSCode enum value to VisualStudioCode, so it matches the source accessor plugin name
Change 3690030 by Graeme.Thornton
VSCode fixes
- Source Code Accessor plugin changes. Add new interface method to open a solution at a given path
- GameProjectUtils now uses the source navigation API to open solutions rather than hardcoding which solution file types to look for
- Various fixes for vscode project file generation
#jira UE-50554
Change 3690885 by Steve.Robb
Atomic reads in FReferenceControllerOps<ESPMode::ThreadSafe>.
Change 3691052 by Steve.Robb
Free stats thread on shutdown.
Change 3695138 by Steve.Robb
AsConst helper function added.
Change 3696627 by James.Hopkin
Changed player controller iterator typedefs to use TWeakObjectPtr rather than the deprecated TAutoWeakObjectPtr
(review-3606695)
Change 3697099 by Steve.Robb
GitHub #4105 : Removed redundant class access modifier
Change 3697154 by Steve.Robb
Removal of deprecated functions in delegates.
Mutable lambdas to can now be bound to delegates.
Change 3697180 by Steve.Robb
GitHub #4115 : Incorrect CPPMacroType used for USoftClassProperty
Change 3697239 by Steve.Robb
Allow TArray::Insert to take an array with any allocator type.
Change 3697269 by Steve.Robb
RelocateConstructItems instead of MoveConstructItems.
Change 3697558 by Steve.Robb
New _GetRef functions for TArray, which return a reference to the newly-added element.
Unit tests for these functions.
Change 3699776 by Steve.Robb
TSAN warning suppression around IAsyncReadRequest::bCompleteAndCallbackCalled.
Change 3702397 by Steve.Robb
TIsTrivial type trait.
Change 3702569 by Steve.Robb
Allow a TGuardValue to be assigned to a different type from the one being guarded.
Change 3706644 by Robert.Manuszewski
Different stack ingore count for development builds for FArchiveStackTrace
Change 3709272 by Steve.Robb
Removal of redundant UpdateVertices, which causes a race condition on the renderer thread.
Change 3709452 by Robert.Manuszewski
Fixed a bug where with async time limit set to a low value the async loading could hang because the linker would keep reloading the preload dependencies
Change 3709454 by Robert.Manuszewski
Added command line option -NOEDL to disable EDL
Change 3709487 by Steve.Robb
Remove use of PLATFORM_HAS_64BIT_ATOMICS, which is always 1.
Change 3709645 by Ben.Marsh
Fix race condition between multiple instances of UBT trying to write out the XML config cache.
Change 3711193 by Ben.Marsh
Add an editor setting for the shared DDC location to use.
#jira UE-51487
Change 3713811 by Steve.Robb
Update .modules files after a hot reload.
Don't check for directory timestamp changes as a way of detecting new files if hot reloading with a makefile, as this is already done during makefile invalidation checks.
Pass hotreload flags around in UBT instead of relying on global state.
This fixes the hot reload iteration speed regression without also regressing the fix to UE-42205.
#jira UE-51472
Change 3715654 by Steve.Robb
GitHub #4156 : Fixed not compiling template function Algo::UpperBoundBy.
Change 3718782 by Steve.Robb
TSharedPtr, TSharedRef and TWeakPtr assignment are now implemented as copy-and-swap to avoid an invalid smart pointer state being visible to any destructors being called.
Change 3720830 by Steve.Robb
Initial import of TAtomic object wrapper, which guarantees atomic access to an object.
Change 3720881 by Steve.Robb
FCompression ThreadSanitizer data race fixes.
Change 3722640 by Graeme.Thornton
Guard network platform file heartbeat function with the socket critical section. Stop heartbeat from causing a crash when firing during async loading.
#jira UE-51463
Change 3722655 by Steve.Robb
Don't null name table because it's already zeroed at startup.
Some tidy-ups.
Change 3722754 by Steve.Robb
Thread sanitizer fix.
Small typo fix.
Change 3722849 by Graeme.Thornton
Improve "caching file" message in networkplatformfile so it says "Requesting file..." and is only output when we actually request the file from the server
Change 3723081 by Steve.Robb
TAtomic is now aligned to the underlying integer type.
TAtomic will now static assert with a better error message when given an unsupported type.
Define added for the maximum platform-supported atomic type, and used instead of a (wrong) hardcoded number.
Misc renames.
Change 3723270 by Ben.Marsh
Include /d2cgsummary argument when running UBT with -Timing.
Change 3723683 by Ben.Marsh
Do not include documentation in the generated project files by default. Suspect that the 30,000 UDN files that get added to the solution take up memory and degrate performance.
Change 3725422 by Robert.Manuszewski
When serializing compressed archive with multithreaded compression enabled, wait for the oldest async task instead of spinning.
Change 3725735 by Robert.Manuszewski
Making all CheckDefaultSubobjects related functions const
Change 3726167 by Steve.Robb
FMinimalName::IsNone added.
Change 3726458 by Steve.Robb
TAtomic will no longer instantiate for types which are not exactly a size supported by the platform layer.
Change 3726542 by Ben.Marsh
UGS: Always include the project filename in the editor build command. The project may not be in one of the .uprojectdirs paths.
Change 3726595 by Ben.Marsh
Allow building multiple game targets in the example BuildEditorAndTools.xml script.
Change 3726724 by Ben.Marsh
Fix ambiguities in calculating root directory. (GitHub #4172)
Change 3726959 by Ben.Marsh
Make sure that AutomationTool uses the same list of preprocessor definitions when compiling *.target.cs files as UnrealBuildTool does.
Change 3728437 by Steve.Robb
VisitTupleElements now supports invocation of a functor taking arguments from multiple tuples in parallel.
Some improved documentation.
NOTE: This is a backward-incompatible change to VisitTupleElements. Any existing calls will need their arguments swapping.
Change 3732262 by Gil.Gribb
UE4 - Fixed rare hangs in the task graph.
Change 3732755 by Steve.Robb
Stats TSAN fixes.
Optimizations to FCycleCounter::Start() to only read the stat name once.
Change 3735000 by Robert.Manuszewski
Always preload the AssetRegistry module on startup. even if EDL is disabled.
Even without EDL, if the async loading thread is enabled the AssetRegistryModule will otherwise be loaded from the ASL thread and that will assert.
Change 3735292 by Robert.Manuszewski
Made sure component visualizer is removed from VisualizersForSelection when UnregisterComponentVisualizer() is called otherwise it may cause crashes when the engine terminates.
Change 3735332 by Steve.Robb
Refactoring of UDelegateProperty::Identical() to clarify logic.
Fixed UMulticastDelegateProperty::Identical() to compare the bound function names.
PPF_DeltaComparison removed, as it doesn't seem useful.
Change 3737960 by Graeme.Thornton
VSCode - Add launch task for generating project files for the given folder
Change 3738398 by Graeme.Thornton
Make Visual Studio source code accessor's module hotreload handler pass the 'save all files' message to the current accesor, rather than direct to the visual studio accessor
#jira UE-51451
Change 3738405 by Graeme.Thornton
VSCode: Format c/cpp settings strings using comment path formatting function
Change 3738928 by Steve.Robb
Fix for lack of null conditional operators in some older Monos. (replicated from CL# 3729574 in Release-4.18)
#jira UE-51842
Change 3739135 by Ben.Marsh
Fix being unable to package projects in a folder called "Wolf". This is only a restricted folder for Epic's Perforce history.
#jira UE-51855
Change 3739360 by Ben.Marsh
UAT: Fix issue with P4PORT setting not being parsed correctly.
Change 3745959 by James.Hopkin
#core Added ImplicitConv for safe upcasts to a specific required type, e.g. deduced delegate payload types
Change 3746125 by Steve.Robb
FName ThreadSanitizer fixes.
Change 3747274 by Steve.Robb
TSAN fix for FMediaTicker::Stopping.
Change 3747618 by Steve.Robb
ThreadSanitizer data race fix for FShaderCompileThreadRunnableBase::bForceFinish.
Change 3747720 by Steve.Robb
ThreadSanitizer fix for FMessageRouter::Stopping.
Change 3749207 by Graeme.Thornton
First pass of CryptoKeys plugin. Allows creation/editing/cycling of AES/RSA keys.
Change 3749323 by Graeme.Thornton
Fix UAT crash when only -targetplatform is specifiied
Change 3749349 by Steve.Robb
TSAN_SAFE guards around LockFreeList to silence ThreadSanitizer.
Change 3749617 by Steve.Robb
Logf static_assert for formatting string enabled.
Change 3749897 by Steve.Robb
FDebug::LogAssertFailedMessage static assert for formatting string enabled.
Change 3754011 by Steve.Robb
Static asserts that the allocator supports move.
Move-enabled our allocators which don't support move.
Change 3754227 by Ben.Marsh
Fix build command line in generated projects missing a space before the compiler version override.
#jira UE-52226
Change 3754562 by Ben.Marsh
PR #4206: Replace deprecated wsprintf with secure swprintf for Bootstrap executable (Contributed by jessicafalk)
Change 3755616 by Graeme.Thornton
Runtime code for using the new crypto ini files to define signing/encryption keys
#jira UE-46580
Change 3755666 by James.Hopkin
Used ImplicitConv to remove Casts being used for up-casts
#review-3745965
Change 3755671 by Graeme.Thornton
Add log message in unrealpak to say which config file system it is using for crypto keys
Change 3755672 by Graeme.Thornton
Updating ShooterGame with new CryptoKeys based security setup
Change 3756778 by Ben.Marsh
Add support for running multiple jobs simultaneously on a single builder.
When running job or agent setup, the --num-slots=X parameter defines the number of steps that can run simultaneously (EC procedures pass in the resource step limit). A lock file is created under the workspace root (D:\Build) and a reservation file is created for the first slot that can be allocated (slot-1, slot-2, etc...). The slot number is used to define the workspace name that should be used.
Change 3758498 by Ben.Marsh
Re-throw exceptions when a file cannot be deleted when cleaning a target.
Change 3758921 by Steve.Robb
ThreadSanitizer fix to FThreadSafeStaticStatBase::HighPerformanceEnable to do a relaxed atomic load on access.
DoSetup() now returns the newly-allocated pointer, instead of reloading it from memory.
Change 3760599 by Graeme.Thornton
Added missing epic header comment to some new source files
Change 3760642 by Steve.Robb
ThreadSanitizer fix for concurrent access to GMainThreadBlockedOnRenderThread.
Change 3760669 by Graeme.Thornton
Improvement to OpenSSL based signing key generator. Generate a full RSA key then steal the primes from it, rather than generating the primes manually.
Added a test mode to the cryptokeys commandlet to test signing key generation
Change 3760711 by Steve.Robb
ThreadSanitizer fixes to GIsRenderingThreadSuspended.
Change 3760739 by Steve.Robb
ThreadSanitizer fix for FQueuedThread::TimeToDie.
Change 3760763 by Steve.Robb
ThreadSanitizer fix for GRunRenderingThreadHeartbeat.
Removal of unnecessary/dangerous initializer for GMainThreadBlockedOnRenderThread.
Change 3760793 by Steve.Robb
Some simple refactoring to remove some volatile reads of BufferStartPos and BufferEndPos.
Change 3760817 by Steve.Robb
ThreadSanitizer fixes for FAsyncWriter::BufferStartPos and BufferEndPos.
Change 3761331 by Josh.Engebretson
UnrealBuildTool enforcement of Development and Debug configurations in existing .csproj
#jira UE-52416
Change 3761521 by Steve.Robb
ThreadSanitizer fixes for FEvent::EventStartCycles and EventUniqueId.
Change 3763117 by Graeme.Thornton
PR #3722: Optimising FPaths::IsRelative() (Contributed by jovisgCL)
Change 3763358 by Graeme.Thornton
Ensure that all branches within FGenericPlatformMisc::RootDir() produce an absolute path with no duplicate slashes
Remove relative->abs conversion of root dir from FPaths::MakeStandardFilename(), now that we know RootDir() always returns an absolute path
Derived from the content of this PR:
PR #3742: Treat RootDirectory the same way as Standardized (Contributed by TroutZhang)
Change 3764058 by Graeme.Thornton
Generate a .code-workspace file for the current workspace. Allows foreign projects to "mount" the UE4 folder so that the engine tasks are avaible, and all engine source is visible to VSCode for searching purposes
#jira UE-52359
Change 3764705 by Steve.Robb
Better handling of whitespace in ImportText_Internal() for set and map properties.
Containers are now emptied upon import failure, to avoid leaving bad container states (unhashed, partial data).
Fix to USetProperty's temp buffer size to avoid buffer overruns.
Duplicate map keys are now skipped during import, same as USetProperty's behavior.
Change 3764731 by Steve.Robb
Don't re-run UHT if only source files have changed in the same folder as headers. This was already done for hot reload, but there's no reason why it should be limited to that.
Change 3765923 by Graeme.Thornton
VSCode - "taskName" -> "label" for C# build tasks
Change 3766018 by Steve.Robb
constexpr constructor for TAtomic.
Change 3766037 by Steve.Robb
Misc tidyings in HotReload.cpp.
Change 3766046 by Steve.Robb
ThreadSanitizer fixes to ENamedThreads::RenderThread and ENamedThreads::ENamedThreads_Local.
Change 3766288 by Steve.Robb
Improved efficiency of adding/removing elements to UGCObjectReferencer::ReferencedObjects.
Change 3766374 by Josh.Engebretson
Fix issue with ini quoted value comparison
#jira UE-52066
Change 3766532 by Josh.Engebretson
PR #3680: Added NetSerialize to FDateTime fixing UE-22533 (Contributed by druhasu)
#jira UE-46156
Change 3766740 by Steve.Robb
TMultiMap::Append added.
Change 3767523 by Steve.Robb
ThreadSanitizer fix for UE4Delegates_Private::GNextID.
Change 3767601 by Steve.Robb
ThreadSanitizer fix for FStats::GameThreadStatsFrame.
Change 3770567 by Ben.Marsh
Add a FAnnotatedArchiveFormatter interface which allows querying structural type information that may not be in binary archives.
Change 3770826 by Ben.Marsh
Move StructuredArchive implementation into Core, so primitive types can implement serialization overloads for it.
Change 3770875 by Steve.Robb
Redundant UScriptStruct::PostLoad removed, which was causing a race condition in async loading. This was re-establishing the CppStructOps, but that is unnecessary because native classes cannot change as a result of a load - only BP structs can, and they don't have CppStructOps.
Change 3772167 by Ben.Marsh
Add a context-free binary formatter that can serialize tagged data. This functions as a lower-overhead binary intermediate format for JSON data.
Change 3772248 by Steve.Robb
ThreadSanitizer fixes to FMalloc call counters.
Change 3772383 by Ben.Marsh
Separate archive metadata from FArchive into FArchiveContext, so it can be safely exposed to consumers of FStructuredArchive.
Change 3772906 by Graeme.Thornton
TextAssetCommandlet - Utility commandlet for testing/converting to text asset format
Change 3772932 by Ben.Marsh
Fix "String:" prefix not being stripped from escaped string values.
Change 3772942 by Graeme.Thornton
Add experimental setting to enable in-editor text asset format functionality
Add "export to text" option into the content browser asset actions context menu
Change 3772955 by Ben.Marsh
Add a new "stream" compound type to FStructuredArchive, which allows serializing a sequence of elements similarly to an array, but without serializing an explicit size. Allows passing through data to an underlying binary archive without breaking compatibility.
Change 3772963 by Ben.Marsh
Allow querying record keys and stream lengths from annotated archive formatters, since these archives have markup for field boundaries.
Change 3773010 by Graeme.Thornton
Added CORE_API to FArchiveFromStructuredArchive
Gave text asset format experimental option a slightly less random tooltip comment
Change 3773057 by Ben.Marsh
Add a flag to FArchive to determine whether the archive is text (IsTextFormat()).
Add support for seeking within FArchiveFromStructuredArchive. For text formats, data is serialized to an in-memory buffer, with names and objects serialized as indices into an array. For non-text formats, data is serialized directly to the underlying archive.
Also rename FStructuredArchive::TryEnterSlot() to TryEnterField().
Change 3773118 by Steve.Robb
TSignedIntType and TUnsignedIntType type traits for getting an integer type of a given size.
Change 3773122 by Steve.Robb
TAtomic fixes for pointer arithmetic.
TSignedIntType used instead of reimplementing its own trait.
Change 3773123 by Steve.Robb
Unit tests for TAtomic.
Change 3773138 by Steve.Robb
Run numeric tests on integer types instead of basic tests.
Fix for compiler warnings when subtracting from unsigned atomics.
Change 3773166 by Steve.Robb
Refactoring of arithmetic operations into its own class, then basing the pointer and integral versions on that.
Change 3774216 by Gil.Gribb
UE4 - Fix rare crash in the pak precacher immediately after unmounting a pak file.
Change 3774426 by Ben.Marsh
Copy all C# tools to a staging directory before compiling them. This prevents access violations when compiling tools like iPhonePackager that reference DotNETCommon, and ensures we strip NotForLicensees folders out of them all.
See: https://answers.unrealengine.com/questions/726010/418-will-not-build-from-source.html
Change 3774658 by Ben.Marsh
Improve error reporting while generating intellisense for project files. Include the name of the target being compiled, and allow project file generation to continue without it.
Change 3775141 by Ben.Marsh
Always output HTML5 diagnostics at "information" verbosity, to avoid every line being prefixed with "WARNING:" and screwing up the EC postprocessor.
Change 3775459 by Ben.Marsh
Removing .NET Framework Perforce DLL as runtime dependency of engine third party library. The actual library is linked statically.
Change 3775522 by Ben.Marsh
UGS: Treat .uproject and .uplugin files as code changes.
Change 3775597 by Ben.Marsh
Fix post-build steps for plugins not being executed.
#jira UE-52754
Change 3777895 by Graeme.Thornton
StructuredArchiveFromArchive - An adapter class for wrapping an existing FArchive with a structured archive
Change 3777931 by Graeme.Thornton
Refactored FArchiveUObjects serialization code into some static helpers
Added FArchiveUObjectFromStructuredArchive which allows the adaption of a structured archive into an FArchive that supports the extra UObect serialization functions for weak/soft pointers
Change 3777942 by Graeme.Thornton
Added missing CORE_API to FStructuredArchive::FStream
Added FStructuredArchive::FSlot insertion operator for char
Added specialization of TArray<uint8> serializer for structured archives which serializes the contents as one value
Change 3778084 by Graeme.Thornton
Adding FPackageName::GetTextAssetPackageExtension() to access the file extension we use for text asset files
Change 3778096 by Graeme.Thornton
Add a constructor to FArchiveUObjectFromStructuredArchive that takes a slot and passes it to the base class
Change 3778389 by Josh.Engebretson
Fix an optimization issue with CPU benchmarking
Add better support for debugging/testing local rocket builds
UDN Link: https://udn.unrealengine.com/questions/400909/command-scalability-auto-gives-inaccurate-cpu-benc.html
#jira UE-52192
Change 3778701 by Josh.Engebretson
Ensure plugin content folders are mounted consistently. Fixes TryConvertFilenameToLongPackageName failing to work on plugin assets
UDN Link: https://udn.unrealengine.com/questions/276386/tryconvertfilenametolongpackagename-fails-for-plug.html
#jira UE-40317
Change 3778832 by Chad.Garyet
Adding enterprise path support for PCB's for UGS
Change 3780258 by Graeme.Thornton
TextAssetCommandlet - Accumulate timings for loading packages and saving packages
Change 3780463 by Graeme.Thornton
CryptoKeys improvements
- Enable CryptoKeys plugin by default
- Attempt to inherit settings from the old system by default
- Hide ini/index encryption settings from packaging settings and just inherit previous values into new system
Minor UBT change to remove a trailing comma from the end of encryption/signing key binary strings
Change 3780557 by Ben.Marsh
Fix LoginFlow module not being precompiled for the binary release.
Change 3780846 by Josh.Engebretson
Improve filename to long package name resolution when provided a relative path
Change 3780863 by Ben.Marsh
UAT: Add a better error message when a C# project has an invalid reference.
Change 3780911 by Ben.Marsh
Update the BuildEditorAndTools.xml script to allow submitting archived binaries to Perforce.
The "Submit To Perforce For UGS" node creates a zip of all the binaries that have been built, and submits it to the stream specified by the 'ArchiveStream' argument.
Change 3780956 by Josh.Engebretson
Add support for ! (RemoveKey) config command to UBT
UDN Link: https://udn.unrealengine.com/questions/397267/index.html
#jira UE-52033
Change 3782957 by Robert.Manuszewski
UE4 - Fixed a linear search in EDL that caused performance problems for very large maps.
Change 3784503 by Ben.Marsh
Optimizations for FStructuredArchive:
* Store the depth explicitly in element objects, to avoid having to loop through the scope stack to find it.
* Prevent shrinking of arrays when removing elements.
* Add an inline allocator to the scope and container stacks.
Change 3784700 by Ben.Marsh
Remove the inline allocator from FStructuredArchive; checking whether the inline or backup allocator is being used is slower than just allocating up-front.
Change 3784989 by Ben.Marsh
Compile out all the FStructuredArchive validation code when WITH_TEXT_ARCHIVE_SUPPORT = 0.
Change 3786860 by Gil.Gribb
UE4 - Remove no buffering flag from windows async IO because it disabled the disk cache entirely.
Change 3787159 by Ben.Marsh
Guard against UE4.0 backwards compatibility path when determining if an engine is a source distribution.
Change 3787493 by Josh.Engebretson
Parallel pak generation now uses MaxDegreeOfParallelism option which is now set to the number of CPU cores
Moved cryptography settings parsing out of threaded CreatePak method to avoid concurrency issue in ConfigCache.TryReadFile
Fix for multiple threads parsing ini keys (PR 3995)
#PR 3995
#jira 52913
#jira 49503
Change 3787773 by Steve.Robb
Fix for missing final values from FOREACH_ENUM_ macros.
Change 3788287 by Ben.Marsh
TBA: Add checks in debug builds that key names in maps and records for FStructuredArchive are unique.
Change 3788678 by Ben.Marsh
Fix compile error due to inability to instantiate TArray<> of forward declared struct. Convert set of key names to an array to avoid including Set.h in public header for FStructuredArchive.
Change 3789353 by Graeme.Thornton
Removed unused/rotten modes from TextAsset commandlet.
Used existing "-iterations=n" switch to control a global iteration over the given command. Useful for performance testing.
Change 3789396 by Ben.Marsh
Move code to validate container keys/sizes into DO_GUARD_SLOW checks, and allocate container metadata instances dynamically to fix problems with references to things not declared in headers that can't be included from StructuredArchive.h
Change 3789772 by Ben.Marsh
Always strip trailing slashes from the end of paths specified by .build.cs files; they can cause quoted paths to be escaped on the command line.
Change 3790003 by Ben.Marsh
TBA: Rename FStructuredArchive::EElementType::Object to FStructuredArchive::EElementType::Record.
Change 3790051 by Steve.Robb
PIE is disabled during a hot reload.
Hot reload in editor is disabled during PIE.
Hot reload from IDE is deferred until after PIE is exited.
Compiling multiple times before a hot reload (e.g. compiling multiple times in PIE) will now load the most recent change.
#jira UE-20357
#jira UE-52137
Change 3790709 by Steve.Robb
Better move support for TVariant.
EVariantTypes switched over to using an enum class to aid debugger visualization.
Change 3791422 by Ben.Marsh
TBA: Return the type of a field from an annotated archive formatter at the point that we enter it, rather than querying all the time.
Change 3791489 by Graeme.Thornton
TBA: Change StructuredArchiveFromArchive adapter to use the archive.Open() result directly, now that it's a slot and not a record
Change 3792344 by Ben.Marsh
Improvements to base64 encoding library.
* Now supports encoding and decoding with ANSICHAR and WIDECHAR implementations.
* Added support for decoding base-64 blobs without padding marks.
* Added support for decoding into pre-allocated buffer.
* Added constexpr functions for determining the encoded and maximum decoded size of an input buffer.
* Prevent writes past the end of allocated buffer (no longer need to manually remove padding bytes).
Change 3792949 by Ben.Marsh
TBA: Rename FAnnotatedArchiveFormatter to FAnnotatedStructuredArchiveFormatter.
Change 3794078 by Robert.Manuszewski
Fixing a crash that could happen when FGCObjects were constructed and destructed when shutting down the engine
#jira UE-52392
Change 3794413 by Ben.Marsh
TBA: Remove the element type parameter to SetScope(). It isn't really needed; we can just assume the element ID correctly identifies the item on the stack.
Change 3794731 by Ben.Marsh
TBA: Optimize creation of stack elements for empty slots in FStructuredArchive. This saves a lot of bookkeeping when serializing a large number of individual fields. Since only one slot can be active at a time (and it only exists temporarily, until we write into it), we can just store the element ID assigned to it in a member variable.
Change 3795081 by Ben.Marsh
UBT: Move LinuxCommon.cs into Platform/Linux folder.
Change 3795137 by Ben.Marsh
UBT: Allow modules to specify private compiler definitions from the build.cs file, only visible within that module (via the "PrivateDefinitions" property).
Change 3795247 by Ben.Marsh
Fix missing header when creating a new interface from the editor new code wizard.
#jira UE-53174
Change 3796025 by Graeme.Thornton
Fixed some deprecated "Definitions" warnings in OpenCV build files
Change 3796103 by Graeme.Thornton
Disable experimental text asset option - it does nothing useful yet.
Change 3796157 by Graeme.Thornton
Fix path type mismatch in visual studio source code accessor meaning that the DTE comms wouldn't identify a running instance of VS as having the current solution open.
#jira UE-53206
Change 3796315 by Ben.Marsh
Move Formatter to the correct position for initializer.
#jira UE-53208
Change 3797082 by Ben.Marsh
UAT: Work around for exception thrown by launching cook with "-platform=Android_ETC1 -targetplatform=Android -cookflavor=ETC1". Anrdoid_ETC1 is not a valid platform (it's a cook platform), and can't be parsed by UAT.
#jira UE-53232
Change 3799050 by Ben.Marsh
Make UnrealPak.version files writable for Mac and Linux.
Change 3801012 by Graeme.Thornton
VSCode - Update source accessor to use code workspace as it's target, rather than just the project directory
Change 3801214 by Gil.Gribb
UE4 - Remove assert to work around minor problem with lock free lists.
#jira UE-49600
Change 3801219 by Steve.Robb
WeakObjectPtrs now warn when casting away const.
Change 3801299 by Graeme.Thornton
Fix quote issue with foreign project build tasks on PC
Change 3803292 by Graeme.Thornton
Fix crash on startup when using cook-on-the-side. Force a flush of the asset registry background scanning when creating the cook-on-the-side platform registries
Change 3803559 by Steve.Robb
TSAN fix for FMalloc::MaxSingleAlloc.
Change 3803735 by Graeme.Thornton
Last set of cryptokeys changes
- Added some comments for editor exposed settings
- Split "encrypt assets" option into "encrypt uassets" and "encrypt all assets"
Change 3803929 by Ben.Marsh
UGS: Show an in-place error panel when a project fails to open, allowing the user to retry and have their tabs saved instead of creating a modal dialog.
Change 3624590 by Steve.Robb
AddReferencedObjects now generates a compile error with containers of UObject*s where the UObjectType is forward-declared, as these which won't be added to the reference collector.
Tidy-up of existing calls to AddReferencedObjects.
Change 3629473 by Ben.Marsh
Build: Rename the option for embedding source server information in PDB files for installed engine builds.
Change 3632894 by Steve.Robb
VARARG* macros deprecated and usage replaced with variadic templates.
Change 3640704 by Steve.Robb
MakeWeakObjectPtr added, which deduces a TWeakObjectPtr type from a raw pointer type.
Fix to TWeakObjectPtr's constructor which implicitly removed const.
Fixes to everything which didn't compile as a result.
Change 3650813 by Graeme.Thornton
Removed FStartupPackages and associated code
Change 3651000 by Ben.Marsh
Return the stack size from FPlatformStackWalk::CaptureStackBacktrace() rather than checking for the first null pointer, to prevent truncated callstacks if parts of the stack are zeroed out.
#jira UE-49980
Change 3690842 by Steve.Robb
FPlatformAtomics::AtomicRead added - needs optimizing.
AtomicRead() used in FThreadSafeCounter::GetValue().
Change 3699416 by Steve.Robb
Fix to debugger visualization of TArray with a TInlineAllocator or TFixedAllocator.
Improved readability of TSparseArray visualization.
Change 3720812 by Steve.Robb
Atomic functions for 8-bit and 16-bit.
Android, Linux and Switch implementations now just use the Clang implementation.
AtomicRead64 deprecated in favor of the int64* AtomicRead overload.
Change 3722698 by Steve.Robb
VS debugger visualizers for TAtomic.
Change 3732270 by Steve.Robb
Relaxed stores and loads.
Change 3749315 by Graeme.Thornton
If UAT is invoked with platforms in both the -platform and -targetplatform command line switches, build using all of them rather than just the ones in -targetplatform
#jira UE-52034
Change 3750657 by Josh.Engebretson
Fixed issue when debugging editor cook/package and project launch operations
#jira UE-52207
Change 3758514 by Steve.Robb
Fixes to FString::Printf having non-literals being passed as its formatting string.
Change 3763356 by Steve.Robb
ENamedThreads::RenderThread and ENamedThreads::RenderThread_Local encapsulated by getters and setters.
Change 3770549 by Steve.Robb
Removal of obsolete PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS and PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES.
Tidy up of existing code which uses it.
Change 3770553 by Ben.Marsh
Adding structured serialization API to Core/CoreUObject for use with text-based assets.
* FStructuredArchive abstracts an archive which is made up of compound types (records, arrays, and maps). Values are stored in slots within these types.
* Records are string -> value dictionaries where the key names can be compiled out in non-editor builds or when WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Maps are string -> value dictionaries where the key names are present regardless of the build type.
* Proxy objects are defined to express the context for serialization (FStructuredArchive::FRecord, FStructuredArchive::FArray, FStructuredArchive::FMap, FStructuredArchive::FSlot) which allows basic validation through static typing. These objects act as lightweight handles, and can be cheaply constructed and passed around on the stack. Most serialization to and from the archive is done through these objects.
* Runtime checks perform additional validation to ensure that serialized data is well formed and written in a forward-only manner, regardless of the underlying archive type.
* The actual input/output format is determined by a separate interface (FArchiveFormatter). Context validation (always causing matching LeaveArray for every EnterArray, etc...) is done by FStructuredArchive, so implementing these classes is fairly trivial. FArchiveFormatter can be de-virtualized in non-editor builds, where WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Includes implementations of FArchiveFormatter for binary and JSON formats.
Change 3771105 by Steve.Robb
Deprecation warnings for PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES and PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS.
Fix for incorrect warning formatting on Clang platforms.
Change 3771520 by Steve.Robb
Start moving Clang-using platforms' pre-setup stuff into a Clang-specific header.
Change 3771564 by Steve.Robb
More common macros moved to the Clang pre-setup header.
Change 3771613 by Steve.Robb
EMIT_CUSTOM_WARNING_AT_LINE moved to ClangPlatformCompilerPreSetup.h.
Change 3772881 by Ben.Marsh
Add support for serializing FName and UObject through FStructuredArchive.
In order to allow custom linker behavior when serializing objects:
* The constructor to JSON input formatter now takes a delegate to convert a string object name into a UObject pointer.
* The constructor to tagged binary formatter takes a delegate to serialize a UObject pointer into any form it chooses (likely an integer index into the import table)
Object and name types are stored as strings in JSON, using an "Object:" or "Name:" prefix to differentiate them from regular strings. Any strings that already contain one of these prefixes are prepended with a "String:" prefix (as is any string that already has a "String:" prefix).
Change 3772941 by Graeme.Thornton
Make build work when including StructuredArchive.h from core container types
Added standard header to new files
Add structured archive serializer for TArray
Fix bug in structured archive where containers weren't being popped from the scope stack
Change 3772972 by Ben.Marsh
Add an adapter which presents a legacy FArchive interface to a FStructuredArchive slot.
Data is serialized into this slot as a stream of elements; raw data is buffered up into fixed size chunks, names and objects are serialized separately.
When used with FBinaryArchiveFormatter, this should result in all data being passed through to the underlying archive in a backwards compatible way, wiith no additional bookkeeping fields.
Change 3773006 by Ben.Marsh
Rename FStructuredArchive::FRecord::EnterSlot() to EnterField().
Change 3773013 by Steve.Robb
bUseInlining target rule added to UnrealBuildTool, which defaults to true, to allow inlining to be disabled for debugging purposes.
Change 3774499 by Ben.Marsh
Minor fixes for FStructuredArchive related classes:
* Text-based archive formats are now compiled out when WITH_TEXT_ARCHIVE_SUPPORT = 0.
* Fixed issue with FTaggedBinaryArchiveFormatter state becoming corrupted when looking ahead at field types.
* FArchiveFieldName constructor is now explicit, to fix cases where strings were being passed directly to serialize functions.
Change 3774600 by Ben.Marsh
Add CopyFormattedData() function, which can copy data from one formatter to another. Add a test case to SerializationAPI that converts from data -> JSON -> binary -> JSON -> data.
This function can be used to implement a generic visitor pattern, by implementing a FArchiveFormatter which receives the deserialized data.
Change 3789721 by Ben.Marsh
TBA: Split FTaggedBinaryArchiveFormatter into separate classes for reading and writing.
Change 3789920 by Ben.Marsh
TBA: Support automatic coercion between any numeric types in tagged binary archives. Also report the smallest type that can contain a value, rather than just in32/double.
#jira UECORE-364
Change 3789982 by Ben.Marsh
TBA: Change FStructuredArchive::Open() to return a slot, rather than a record, to make it easier to implement a raw FArchive adapter.
Change 3792466 by Ben.Marsh
TBA: Better handling of raw data in text based assets. Short sequences of binary data are Base64 encoded as a single string. Longer sequences are stored as an array of Base64 encoded lines, push a SHA1 hash to detect cases where the data was merged incorrectly.
In order to allow inference of the correct type for a field, other fields called "Base64" will be escaped to "_Base64", and any field beginning with "_" will have an additional underscore inserted. Reading files back in reverses these transformations.
Change 3792935 by Ben.Marsh
TBA: Rename FArchiveFormatter to FStructuredArchiveFormatter for consistency with FStructuredArchive.
Change 3795100 by Ben.Marsh
UBT: Rename the ModuleRules Definitions property to PublicDefinitions, to make its semantics clearer.
Change 3795106 by Ben.Marsh
Replace all internal usages of ModuleRules.Definitions, and replace it with ModuleRules.PublicDefinitions.
Change 3796275 by Ben.Marsh
Fix paths to Version.h includes from resource files.
Change 3800683 by Josh.Engebretson
Remove WER from Mac and Linux crash reports in favor of unified runtime-xml format
#jira UE-50073
Change 3803545 by Steve.Robb
TWeakObjPtr const-dropping assignment fix.
Fixes to change.
[CL 3805231 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3358367 by tim.gautier
Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters
Change 3624848 by Jamie.Dale
Added a composite font for the editor (and Slate core)
This is defined in FLegacySlateFontInfoCache::GetDefaultFont and uses our default Roboto fonts (and the culture specific fallback fonts), and is now used as the default font for Slate and the editor.
This change removes all the manual TTF/OTF file references from the various Slate styles, as well as updating 200+ hard-coded font references to use the new default font.
This fixes various rendering issues with fonts in the editor when using different languages, and clears a big barrier for removing the legacy localized fallback font support.
Change 3654993 by Jamie.Dale
'Native' (now called 'FNativeFuncPtr') is now a function pointer that takes a UObject* context, rather than a UObject member function pointer
This avoids ambiguity when binding a native function pointer to a type that doesn't match the context pointer, as you could end up getting a function called with an incorrect 'this' pointer
Breaking changes:
- Native has been renamed to FNativeFuncPtr.
- The signature of a native function has changed (use the DECLARE_FUNCTION and DEFINE_FUNCTION macro pair).
- Use P_THIS if you were previously using the 'this' pointer in your native function.
Change 3699591 by Jamie.Dale
Added support for displaying and editing numbers in a culture correct way
Numeric input boxes in Slate will now display and accept numbers using the culture correct decimal separators. This is enabled by default, and can be disabled by setting "ShouldUseLocalizedNumericInput" to "False" in XEditorSettings.ini (for the editor), or XGameUserSettings.ini (for a game).
#jira UE-4028
Change 3719568 by Jamie.Dale
Allow platforms to override the default ICU timezone calculation
Change 3622366 by Bradut.Palas
#jira UE-46677
Don't allow OnLevelRemovedFromWorld to reset the transaction buffer if we're in PIE mode.
Also, remove one undo barrier in case the event was triggered in PIE mode or else we block the user from undoing previous actions.
Change 3622378 by Bradut.Palas
#jira UE-46590
we have a general bug with detecting the size of the last column, but the clamping prevents it from appearing with the other resize modes. The Content Browser is the only one to use fixed width.
The bug is that the size of the last element is incorrectly reported, after we drag back and forth.
Fixed by not reading the size real time, but reading it from the SlotInfo structure that is created earlier, which holds the correct value.
Change 3622552 by Jamie.Dale
Added support for per-culture sub-fonts within a composite font
This allows you to do things like create a Japanese specific Han sub-font to override the Han characters used in a CJK font (previously you needed to create a localized font asset to achieve this).
Change 3623170 by Jamie.Dale
Fixing warning
Change 3624846 by Jamie.Dale
Composite font cache optimizations
- Converted a typically small sized map to a sorted array + binary search.
- Converted the already sorted range array to use binary search.
- Contiguous ranges using the same typeface are now merged in the cache.
Change 3625576 by Cody.Albert
We now only set the widget tree to transient instead of passing the flag through StaticDuplicateObject. This was causing instanced subobjects to be flagged with RF_DuplicateTransient, preventing them from properly being duplicated when an array of instanced subobjects was modified.
#jira UE-47971
Change 3626057 by Matt.Kuhlenschmidt
Expose EUmgSequencePlayMode to blueprints
#jira UE-49255
Change 3626556 by Matt.Kuhlenschmidt
Fix window size and position adjustment not accounting for primary monitor not being a high DPI monitor when a secondary monitor is. Causes flickering and incorrect window positioning.
#jira UE-48922, UE-48957
Change 3627692 by Matt.Kuhlenschmidt
PR #3977: Source control submenu menu customization (Contributed by Kryofenix)
Change 3628600 by Arciel.Rekman
Added AutoCheckout to FAssetRenameManager for commandlet usage.
Change 3630561 by Richard.Hinckley
Deprecating the version of UFunctionalTestingManager::RunAllFunctionalTests that feature an unused bool parameter, replacing with a new version without that parameter.
Change 3630656 by Richard.Hinckley
Compile fix.
Change 3630964 by Arciel.Rekman
Fix CrashReporterClient headless build.
Change 3631050 by Matt.Kuhlenschmidt
Back out revision 9 from //UE4/Dev-Editor/Engine/Source/Runtime/Slate/Private/Widgets/Layout/SSplitter.cpp
Causes major problems with resizing splitters in editor
Change 3631140 by Arciel.Rekman
OpenAL: update Linux version to 1.18.1 (UETOOL-1253)
- Also remove a hack for RPATH and make it use a generic RPATH mechanism.
- Bulk of the change from Cengiz.Terzibas
#jira UETOOL-1253
Change 3632924 by Jamie.Dale
Added support for a catch-all fallback font within composite fonts
This allows you to provide broad "font of last resort" behavior on a per-composite font basis, in a way that can also work with different font styles.
Change 3633055 by Jamie.Dale
Fixed some refresh issues in the font editor
Change 3633062 by Jamie.Dale
Fixed localization commands being reported as unknown
Change 3633906 by Nick.Darnell
UMG - You can now store refrences to widgets in the same UserWidget. If you need to create links between widgets this is valuable. Will likely introduce new ways to utilize this in the future, for now just getting it working.
Change 3634070 by Arciel.Rekman
Display actually used values of material overrides.
Change 3634254 by Arciel.Rekman
Fix ResavePackages working poorly with projects on other drives (UE-49465).
#jira UE-49465
Change 3635985 by Matt.Kuhlenschmidt
Fixed typo in function name used by maps
PR #3975: Add tooltip to Arrays in Editor (Contributed by projectgheist)
Change 3636012 by Matt.Kuhlenschmidt
PR #3982: Unhide mouse cursor after using Ansel (Contributed by projectgheist)
Change 3636706 by Lauren.Ridge
Epic Friday: Save parameters to child or sibling instance functionality
Change 3638706 by Jamie.Dale
Added an improved Japanese font to the editor
This is only used when displaying Japanese text when the editor is set to Japanese, and uses a font with Japanese-style unified Han characters (our default fallback font uses Chinese-style unified Han characters).
#jira UE-33268
Change 3639438 by Arciel.Rekman
Linux: Repaired ARM server build (UE-49635).
- Made Steam* plugins compile.
- Disabled OpenEXR as the libs aren't compiled (need to be done separately).
(Edigrating CL 3639429 from Release-4.17 to Dev-Editor)
Change 3640625 by Matt.Kuhlenschmidt
PR #4012: FSlateApplication::ProcessReply use &Reply (Contributed by projectgheist)
Change 3640626 by Matt.Kuhlenschmidt
PR #4011: Remove space from filename (Contributed by projectgheist)
Change 3640697 by Matt.Kuhlenschmidt
PR #4010: PNG alpha fix (Contributed by mmdanggg2)
Change 3641137 by Jamie.Dale
Fixed an issue where a culture specific sub-font could produce incorrect measurements during a culture switch
It would fallback to the last resort font for a frame or two while the font cache flushed. This has it update the ranges immediately.
Change 3641351 by Jamie.Dale
Fixing incorrect weights on the Japanese sub-font
Change 3641356 by Jamie.Dale
Fixing inconsistent font sizes between CoreStyle and EditorStyle
Change 3641710 by Jamie.Dale
Fixed pure-virtual function call on UMulticastDelegateProperty
Change 3641941 by Lauren.Ridge
Adding a Parameter Details tab to the Material Editor so users can change default parameter details
Change 3644141 by Jamie.Dale
Added an improved Korean font to the editor
This is only used when displaying Korean text when the editor is set to Korean
Change 3644213 by Arciel.Rekman
Fix the side effects of a fix for UE-49465.
- Default materials were apparently not being found while building DDC (e.g. making an installed build), now they are
and we should not reset loaders on them lest we trigger HasDefaultMaterialsPostLoaded() assert later.
#jira UE-49465
Change 3644777 by Jamie.Dale
Reverting Korean editor font back to NanumGothic as NanumBarunGothic looked too squished
Change 3644879 by tim.gautier
QAGame: Optimized assets for Procedural Foliage testing
- Added camera bookmarks to Stations in QA-Foliage
- Renamed QA-FoliageTypeInst assets to ProcFoliage_Shape
- Fixed up redirectors
Change 3645109 by Matt.Kuhlenschmidt
PR #3990: Git plugin: fix status of renamed, removed, missing, untracked assets (Contributed by SRombauts)
Change 3645114 by Matt.Kuhlenschmidt
PR #3991: Git Plugin: Fix RunDumpToFile() leaking Process handles (Contributed by SRombauts)
Change 3645116 by Matt.Kuhlenschmidt
PR #3996: Git Plugin: run an "UpdateStatus" at "Connect" time to populate the Source Control cache (Contributed by SRombauts)
Change 3645118 by Matt.Kuhlenschmidt
PR #4005: Git Plugin: Expand the size of the Button "Initialize project with Git" (Contributed by SRombauts)
Change 3645876 by Arciel.Rekman
Linux: fix submenus of context menu not working (UE-47639).
- Change by icculus (Ryan Gordon).
- QA-ClickHUD seems to be not affected by this change (it is already broken alas).
#jira UE-47639
Change 3648088 by Jamie.Dale
Fixed some case-sensitivity issues with FText format argument names/pins
These were originally case-sensitive, but that was lost somewhere along the way. This change restores their original behavior.
#jira UE-47122
Change 3648097 by Jamie.Dale
Moved common macOS/iOS localization implementation into FApplePlatformMisc
#jira UE-49940
Change 3650858 by Arciel.Rekman
UBT: improve CodeLite project generator (UE-49400).
- PR #3987 submitted by yaakuro (Cengiz Terzibas).
#jira UE-49400
Change 3651231 by Arciel.Rekman
Linux: default to SM5 for Vulkan.
- Change by Timothee.Bessett.
Change 3653627 by Matt.Kuhlenschmidt
PR #4020: Source Control Submit Files now interprets Escape key as if the user clicked cancel (Contributed by SRombauts)
Change 3653628 by Matt.Kuhlenschmidt
PR #4022: Add New C++ Class dialog remember previously selected module. (Contributed by Koderz)
Change 3653984 by Jamie.Dale
Fixed some redundant string construction
Change 3658528 by Joe.Graf
UE-45141 - Added CMAKE_CXX_COMPILER and CMAKE_C_COMPILER settings to the generated CMake files
Change 3658594 by Jamie.Dale
Zipping in UAT now always uses UTF-8 encoding to prevent Unicode issues
#jira UE-27263
Change 3659643 by Michael.Trepka
Added a call to FCoreDelegates::ApplicationWillTerminateDelegate.Broadcast(); in Mac RequestExit() to match Windows behavior
#jira UETOOL-1238
Change 3661908 by Matt.Kuhlenschmidt
USD asset importing improvements
Change 3664100 by Matt.Kuhlenschmidt
Fix static analysis
Change 3664107 by Matt.Kuhlenschmidt
PR #4051: UE-49448: FPropertyChangedEvent to include TopLevelObjects (Contributed by projectgheist)
Change 3664125 by Matt.Kuhlenschmidt
PR #4036: Add missing GRAPHEDITOR_API (Contributed by projectgheist)
Change 3664340 by Jamie.Dale
PR #3648: Prevent GatherTextFromSource from failing the commandlet (Contributed by projectgheist)
Change 3664403 by Jamie.Dale
PR #3769: Fixes UE-46973 - Drag and Dropping Folders with Names (Contributed by LordNed)
Change 3664539 by Jamie.Dale
PR #3280: Added EditableText functionality (Contributed by projectgheist)
Change 3665433 by Alexis.Matte
When we finish importing morph target we must re-initialise the render resources since we now use GPU morph target.
#jira UE-50231
Change 3666747 by Cody.Albert
Change 3669280 by Jamie.Dale
PR #4060: UE-50455: Verify folder is newly created before removing from tree (Contributed by projectgheist)
Change 3669718 by Jamie.Dale
PR #4061: Clear Content Browser folder search box on escape key (Contributed by projectgheist)
Change 3670838 by Alexis.Matte
Fix crash when deleting a skeletal mesh LOD and the mouse is over the "reimport" button.
#jira UE-50387
Change 3671559 by Matt.Kuhlenschmidt
Update SimpleUI automation test ground truth
#jira UE-50325
Change 3671587 by Alexis.Matte
Fix fbx importer scale not always apply. A cache array was not reset when opening a fbx file.
#jira UE-50147
Change 3671730 by Jamie.Dale
Added PostInitInstance to UClass to allow class types to perform construction time initialization of their instances
Change 3672104 by Michael.Dupuis
#jira UE-50427: Update the volume visibility list of the editor viewport when changing the procedural foliage settings
Change 3674906 by Alexis.Matte
Make sure the export LOD option is taken in consideration when exporting a level or the current level selection
#jira UE-50248
Change 3674942 by Matt.Kuhlenschmidt
Fix static analysis
Change 3675401 by Alexis.Matte
-fix export animation, do not truncate the last frame anymore
-fix the import animation, there was a display issue in the progress bar. Also a floorToInt sometime truncate the last valid frame. We also have a better way to calculate the time increment we use to sample the fbx curves.
#jira UE-48231
Change 3675990 by Alexis.Matte
Remove morph target when doing a re-import, so morph will be remove if they do not exist anymore in the fbx.
This is to avoid driving random vertex with old morph target.
#jira UE-50391
Change 3676169 by Alexis.Matte
When we re-import with dialog the option, "Override Full Name" was set to false and save with the option dialog. We now not set it to false, since it was not use during re-import.
Change 3676396 by Alexis.Matte
Make all LOD 0 name consistent in staticmesh editor
#jira UE-49461
Change 3677730 by Cody.Albert
Enable locking of Persistent Level in Levels tab
#jira UE-50686
Change 3677838 by Jamie.Dale
Replaced broken version of Roboto Light
Change 3679619 by Alexis.Matte
Integrate GitHub pr #4029 to fix import fbx chunk material assignation.
#jira UE-50001
Change 3680093 by Alexis.Matte
Fix the skeletal mesh so the vertex color is part of the vertex equality like with the static mesh.
Change 3680931 by Arciel.Rekman
SlateDialogs: show image icon for *.tga (UE-25106).
- Also reworked the logic somewhat.
#jira UE-25106
Change 3681966 by Yannick.Lange
MaterialEditor post-process preview.
#jira UE-45307
Change 3682407 by Lauren.Ridge
Fixes for material editor compile errors
Change 3682628 by Lauren.Ridge
Content browser filters for Material Layers, Blends, and their instances
Change 3682725 by Lauren.Ridge
Adding filter assets and instance assets to Material Layers and Material Layer Blends. Turning Material Layering on by default
Change 3682921 by Lauren.Ridge
Fix for instance layers not initializing fully
Change 3682954 by Lauren.Ridge
Creating Material Layer Test Assets
Change 3683582 by Alexis.Matte
Fix static analysis build
Change 3683614 by Matt.Kuhlenschmidt
PR #4062: Git Plugin: Fix UE-44637: Deleting an asset is unsuccessful if the asset is marked for add (Contributed by SRombauts)
Change 3684130 by Lauren.Ridge
Allow visible parameter retrieval to correctly recurse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3686289 by Arciel.Rekman
Remove the pessimization (UE-23791).
Change 3686455 by Lauren.Ridge
Fixes for adding/removing a layer parameter from the parent not updating the child
Change 3686829 by Jamie.Dale
No longer include trailing whitespace in the justification calculation for soft-wrapped lines
#jira UE-50266
Change 3686970 by Lauren.Ridge
Making material parameter preview work for functions as well
Change 3687077 by Jamie.Dale
Fixed crash using FActorDetails with the struct details panel
Change 3687152 by Jamie.Dale
Fixed the row structure tag not appearing in the Content Browser for Data Table assets
The CDO is used to filter these tags, and the CDO was omiting that tag which caused it to be filtered for all Data Tables.
#jira UE-48691
Change 3687174 by Lauren.Ridge
Fix for material layer sub-parameters showing up in the default material parameters panel
Change 3688100 by Lauren.Ridge
Fixing static analysis error
Change 3688317 by Jamie.Dale
Fixed crash using the widget reflector in a cooked game
Editor-style isn't available in cooked games. Core-style should be used instead for the widget reflector.
Change 3689054 by Jamie.Dale
Reference Viewer can now show/copy references lists for nodes with multiple objects, or multiple selected nodes
#jira UE-45751
Change 3689513 by Jamie.Dale
Fixed justification bug with RTL text caused by CL# 3686829
Also implemented the same alignment fix for visually left-aligned RTL text.
#jira UE-50266
Change 3690231 by Lauren.Ridge
Added Material Layers Parameters Preview (all editing disabled) panel to the Material Editor
Change 3690234 by Lauren.Ridge
Adding Material Layers Function Parameter to Static Parameter Compare
Change 3690750 by Chris.Bunner
Potential nullptr crash.
Change 3690751 by Chris.Bunner
Fixed logic on overridden vector parameter retrieval for material instances checking a function owned parameter.
Change 3691010 by Jamie.Dale
Fixed some clipping issues that could occur with right-aligned text
FTextBlockLayout::OnPaint was passing an unscaled offset to SetVisibleRegion, and it also wasn't correctly adjusting the offset for RTL text with left-alignment (which becomes a visual right-alignment)
#jira UE-46760
Change 3691091 by Jamie.Dale
Renamed FTextBlockLayout to FSlateTextBlockLayout to reflect that it's a Slate specific type
Change 3691134 by Alexis.Matte
Make sure we instance also the collision mesh when exporting a level to fbx file.
#jira UE-51066
Change 3691157 by Lauren.Ridge
Fix for reset to default not refreshing sub-parameters
Change 3691192 by Jamie.Dale
Fixed Content Browser selection resetting when changing certain view settings
#jira UE-49611
Change 3691204 by Alexis.Matte
Remove fbx export file version 2010 compatibility. The 2018 fbx sdk refuse to export earlier then 2011.
#jira UE-51023
Change 3692335 by Lauren.Ridge
Setting displayed asset to equal filter asset if no instance has been selected
Change 3692479 by Jamie.Dale
Fixed whitespace
Change 3692508 by Alexis.Matte
Make sure we warn the user that there is nothing to export when exporting to fbx using "export selected" or "export All" from the file menu.
We also prevent the export dialog to show
#jira UE-50973
Change 3692639 by Jamie.Dale
Translation Editor now shows stale translations as "Untranslated"
Change 3692743 by Lauren.Ridge
Smaller blend icons, added icon size override to FObjectEntryBox
Change 3692830 by Alexis.Matte
Fix linux build
Change 3692894 by Lauren.Ridge
Tooltip on "Parent" in material layers
Change 3693141 by Jamie.Dale
Removed dead code
FastDecimalFormat made this redundant
Change 3693580 by Jamie.Dale
Added AlwaysSign number formatting option
#jira UE-10310
Change 3693784 by Jamie.Dale
Fixed assert extracting the number formatting rules for Arabic
It uses a character outside the BMP for its plus and minus sign, so we need these to be a string to handle that.
#jira UE-10310
Change 3694428 by Arciel.Rekman
Linux: make directory watch request a warning so they don't block cooking.
- See https://answers.unrealengine.com/questions/715206/cook-error-on-linux.html
Change 3694458 by Matt.Kuhlenschmidt
Made duplicate keybinding warning non-fatal
Change 3694496 by Alexis.Matte
fix static analysis build
Change 3694515 by Jamie.Dale
Added support for culture correct parsing of decimal numbers
#jira UE-4028
Change 3694621 by Jamie.Dale
Added a variant of FastDecimalFormat::StringToNumber that takes a string length
This can be useful if you want to convert a number from within a non-null terminated string
#jira UE-4028
Change 3694958 by Jamie.Dale
Added a parsed length output to FastDecimalFormat::StringToNumber to allow permissive parsing
You can test this rather than the result if you want to attempt to parse a number from a string that may have other data after it. This also fixes the sign-suffix causing the parsing to fail.
#jira UE-4028
Change 3695083 by Alexis.Matte
Optimisation of the morph target import
- We now compute only the normal for the shape the tangent are not necessary
- The async tasks are create when there is some available cpu thread to avoid filling the memory
- When we re-import the morph target are deleted in bulk avoiding to initialize the morph map for every morphs targets
#jira UE-50945
Change 3695122 by Jamie.Dale
GetCultureAgnosticFormattingRules no longer returns a copy
Change 3695835 by Arciel.Rekman
TestPAL: greatly expanded malloc test.
Change 3695918 by Arciel.Rekman
TestPAL: Added thread priority test.
Change 3696589 by Arciel.Rekman
TestPAL: tweak thread priorities test (better readability).
Change 3697345 by Alexis.Matte
Fix reorder of material when importing a LOD with new material
#jira UE-51135
Change 3699590 by Jamie.Dale
Updated SGraphPinNum to use a numeric editor
#jira UE-4028
Change 3699698 by Matt.Kuhlenschmidt
Fix crash opening the level viewport context menu if the actor-component selection is out of sync
#jira UE-48444
Change 3700158 by Arciel.Rekman
Enable packaging for Android Vulkan on Linux (UETOOL-1232).
- Change by Cengiz Terzibas
Change 3700224 by Arciel.Rekman
TestPAL: fixed a memory leak.
Change 3700775 by Cody.Albert
Don't need to initialize EnvironmentCubeMap twice.
Change 3700866 by Michael.Trepka
PR #3223: Remove unnecessary reallocation. (Contributed by foollbar)
#jira UE-41643
Change 3701132 by Michael.Trepka
Copy of CL 3671538
Fixed issues with editor's game mode in high DPI on Mac.
#jira UE-49947, UE-51063
Change 3701421 by Michael.Trepka
Fixed a crash in FScreenShotManager caused by an attempt to access a deleted FString in async lambda expression
Change 3701495 by Alexis.Matte
Fix fbx importer "import normals" option when mix with "mikkt" tangent build it was recomputing the normals instead of importing them.
#jira UE-UE-51359
Change 3702982 by Jamie.Dale
Cleaned up some localization setting names
These now have consistent names and avoid double negatives. This also fixes needing to restart the editor when changing the "ShouldUseLocalizedPropertyNames" setting.
Change 3703517 by Arciel.Rekman
TestPAL: improved thread test.
- Changed the counter to a normal variable to reduce possible contentions (threads used to share the counter in an early prototype, hence the usage of an atomic).
Change 3704378 by Michael.Trepka
Disable Zoom button on Mac if project requests a resizeable window without it.
#jira UE-51335
Change 3706316 by Jamie.Dale
Fixed the asset search suggestions list closing if you clicked on its scrollbar
#jira UE-28885
Change 3706855 by Alexis.Matte
Support importing animation that has some keys with negative time
#jira UE-51305
Change 3709634 by Matt.Kuhlenschmidt
PR #4146: Null access check on ForceLOD in FViewport::HighResScreenshot (Contributed by projectgheist)
Change 3711085 by Michael.Trepka
Reenabled UBT makefiles on Mac
Change 3713049 by Josh.Engebretson
The ConfigPropertyEditor now generates a unique runtime UClass. It uses the outer name on the property instead of a unique ID as a unique id would generate a new UClass every time (and these are RF_Standalone). I also removed some static qualifiers for Section and Property names which were incorrect.
#jira UE-51319
Change 3713144 by Lauren.Ridge
Fixing automated test error
#jira UE-50982
Change 3713395 by Alexis.Matte
Fix auto import mountpoint
#jira UE-51524
Change 3713881 by Michael.Trepka
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 3714197 by Michael.Trepka
Send IMM key down event to the main window instead of Cocoa key window, as that's what the Slate's active window is. This solves problems with IMM not working in context menu text edit fields.
#jira UE-47915
Change 3714911 by Joe.Graf
Merge of cmake changes from Dev-Rendering
Change 3715973 by Michael.Trepka
Disable OS close button on Windows if project settings request that
#jira UE-45522
Change 3716390 by Lauren.Ridge
The color picker summoned when double-clicking vector3 nodes now has its intended "do not refresh until OK is clicked" behavior.
#jira UE-50916
Change 3716529 by Josh.Engebretson
Content Browser: Clamp "Assets to Load at Once Before Warning" so it cannot be set below 1
#jira UE-51341
Change 3716885 by Josh.Engebretson
Tracking transactions such as a duplication operation can modify a selection which differs from the initial one. Added package state tracking to restore unmodified state when necessary.
#jira UE-48572
Change 3716929 by Josh.Engebretson
Unshelved from pending changelist '3364093':
PR #3420: Exe's icons and properties (Contributed by projectgheist)
Change 3716937 by Josh.Engebretson
Unshelved from pending changelist '3647428':
PR #4026: Fixed memory leaks for pipe writes and added data pipe writes (Contributed by Hemofektik)
Change 3717002 by Josh.Engebretson
Fix FileReference/string conversion
Change 3717355 by Joe.Graf
Fixed CMake file generation on Windows including Engine/Source/ThirdParty source
Change 3718256 by Arciel.Rekman
TestPAL: slight mod to the malloc test.
- Touch the allocated memory to check actual resident usage.
Change 3718290 by Arciel.Rekman
BAFO: place descriptor after the allocation to save some VIRT memory.
- We're relying on passing correct "Size" argument to Free() anyway, and this modification makes use of that extra information to save on memory for the descriptor.
Change 3718508 by Michael.Trepka
Fixed vsnprintf on platforms that use our custom implementation in StandardPlatformString.cpp to ignore length modifier for certain types (floating point, pointer)
#jira UE-46148
Change 3718855 by Lauren.Ridge
Adding content browser favorite folders. Add or remove folders from the favorite list in the folder's right-click context menu, and hide or show the favorites list in the Content Browser options.
Change 3718932 by Cody.Albert
Update ActorSequence plugin loading phase to PreDefault
#jira UE-51612
Change 3719378 by tim.gautier
QAGame: Renamed multiTxt_Justification > UMG_TextJustification.
Added additional Text Widgets for testing
Change 3719413 by Lauren.Ridge
Resubmit of content browser favorites
Change 3719803 by Yannick.Lange
VREditor: Fix crash with null GEditor
#jira UE-50103
Change 3721127 by tim.gautier
QAGame: Fixed up a ton of redirectors within /Content and /Content/Materials
- Added M_ParamDefaults and MF_ParamDefaults
- Moved legacy MeshPaint materials into /Content/Materials/MeshPaint
- Renamed ColorPulse assets from MatFunction_ > MF_, moved into /Content/Materials/Functions
Change 3721255 by Alexis.Matte
Replace skeletal mesh import option "keep overlapping vertex" by 3 float thresholds allowing the user to control the welding thresholds.
#jira UE-51363
Change 3721594 by Lauren.Ridge
Material Blends now have plane mesh previews in their icons.
Change 3722072 by tim.gautier
QAGame: Updated MF_ParamDefaults - using red channel as roughness
Updated M_ParamDefaults - tweaked Scalar values
Change 3722180 by Michael.Trepka
Updated Xcode project generator to sort projects in the navigator by name (within folders) and also sort the list of schemes so that their order matches the order of projects in the navigator.
#jira UE-25941
Change 3722220 by Michael.Trepka
Fixed a problem with Xcode project generator not handling quoted preprocessor definitions correctly
#jira UE-40246
Change 3722806 by Lauren.Ridge
Fixing non-editor compiles
Change 3722914 by Alexis.Matte
Fbx importer: Add new attribute type(eSkeleton) for staticmesh socket import.
#jira UE-51665
Change 3723446 by Michael.Trepka
Copy of CL 3688862 from 4.18 + one more fix for a deadlock related to window resizing when using IME
Don't do anything in Mac window's windowWillResize: if we're simply chaning the z order of windows. This way we avoid a rare dead lock when hiding the window.
#jira UE-48257
Change 3723505 by Matt.Kuhlenschmidt
Fix duplicate actors being created for USD primitives that specify a custom actor class
Change 3723555 by Matt.Kuhlenschmidt
Fix crash loading the gameplayabilities module
#jira UE-51693
Change 3723557 by Matt.Kuhlenschmidt
Fixed tooltip on viewport dpi scaling option
Change 3723870 by Lauren.Ridge
Fixing incorrect reset to default visibility, adding clear behavior to fields
Change 3723917 by Arciel.Rekman
Linux: fix compilation with glibc 2.26+ (UE-51699).
- Fixes compilation on Ubuntu 17.10 among others.
(Merging 3723489 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3723918 by Arciel.Rekman
Linux: do not test for popcnt presence unnecessarily (UE-51677).
(Merging 3723904 from //UE4/Release-4.18/... to //UE4/Dev-Editor/...)
Change 3724229 by Arciel.Rekman
Fix FOutputDeviceStdOutput to use printf() on Unix platforms.
Change 3724261 by Arciel.Rekman
TestPAL: fix thread priority test (zero the counter).
Change 3724978 by Arciel.Rekman
Linux: fix priority calculation.
- Rlimit values are always positive, so this was completely broken when the RLIMIT_NICE is non-0.
Change 3725382 by Matt.Kuhlenschmidt
Guard against crashes and add more logging when actor creation fails.
Looks like it could be manual garbage collections triggered before conversion is complete so those have been removed
#jira UE-47464
Change 3725559 by Matt.Kuhlenschmidt
Added a setting to enable/disable high dpi support in editor. This currently only functions in Windows.
Moved some files around for better consistency
Change 3725640 by Arciel.Rekman
Fix Linux thread/process priorities.
- Should also speed up SCW on Linux by deprioritizing them less.
Change 3726101 by Matt.Kuhlenschmidt
Fix logic bug in USD child "kind" type resolving
Change 3726244 by Joe.Graf
Added an option to generate a minimal set of targets for cmake files
Added shader and config files to cmake file generation for searching within IDEs
Change 3726506 by Arciel.Rekman
Fix compile issue after DPI change.
Change 3726549 by Matt.Kuhlenschmidt
Remove unnecessary indirection to cached widgets in the hit test grid
Change 3726660 by Arciel.Rekman
Enable DPI switch on Linux.
Change 3726763 by Arciel.Rekman
Fix mismatching "noperspective" qualifier (UE-50807).
- Pull request #4080 by TTimo.
Change 3727080 by Michael.Trepka
Added support for editor's EnableHighDPIAwareness setting on Mac
Change 3727658 by Matt.Kuhlenschmidt
Fix shutdown crash if level editor is still referenced after the object system has been gc'd
#jira UE-51630
Change 3728270 by Matt.Kuhlenschmidt
Remove propertyeditor dependency from editorstyle
Change 3728291 by Arciel.Rekman
Linux: fix for a crash on a headless system (UE-51714).
- Preliminary change before merging to 4.18.
Change 3728293 by Arciel.Rekman
Linux: remove unneeded dependency on CEF.
- Old workaround should no longer be needed, while this dependency makes UE4 depend on a ton of external libs.
Change 3728524 by Michael.Trepka
Copy of CL 3725570
Removed Enable Fullscreen option from editor's Window menu on Mac. Windowed fullscreen mode is currently unavailable on Mac in editor mode as supporting it properly would require it to work with multiple spaces and split screen, which we currently don't handle (requested in UE-27240)
#jira UE-51709
Change 3728875 by Michael.Trepka
Fixed compile error in Mac SlateOpenGLContext.cpp
Change 3728880 by Matt.Kuhlenschmidt
Guard against invalid worlds in thumbnail renderers
Change 3728924 by Michael.Trepka
Don't defer MacApplication->CloseWindow() call. This should fix a rare problem with deferred call executing during Slate's PrepassWindowAndChildren call.
#jira UE-51711
Change 3729288 by Joe.Graf
Added the .idea/misc.xml file generation to speed up CLion indexing
Change 3729935 by Michael.Dupuis
#jira UE-51722: Hide from UI invalid enum values
Change 3730234 by Matt.Kuhlenschmidt
Fix "Game Gets Mouse Control" setting no longer functioning and instead the mouse was always captured.
#jira UE-51801
Change 3730349 by Michael.Dupuis
#jira UE-51324: Clear the UI selection when rebuilding the palette, as we destroyed all items and recreate them, so selection is on invalid item
Change 3730438 by Lauren.Ridge
Cleaning up material layering UI functions
Change 3730723 by Jamie.Dale
Fixed FastDecimalFormat::StringToNumber incorrectly reporting that number-like sequences that lacked digits had been parsed as numbers
#jira UE-51799
Change 3731008 by Lauren.Ridge
Changing Layers and Blends from proxy assets to real assets
Change 3731026 by Arciel.Rekman
libelf: make elf_end() visible (UE-51843).
- This repairs compilation for a case when CUDA is being used.
- Also added some missing files for ARM 32-bit.
Change 3731081 by Lauren.Ridge
New material layer test assets
Change 3731186 by Josh.Engebretson
Adding camera speed scalar setting and Toolbar UI to increase range on camera speed presets
#jira UE-50104
Change 3731188 by Mike.Erwin
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 3731682 by Arciel.Rekman
UnrealEd: Allow unattended commandlets to rename/save packages.
Change 3732305 by Michael.Dupuis
#jira UE-48434 : Only register if the foliage type still has a valid mesh
Change 3732361 by Matt.Kuhlenschmidt
Fix two settings objects being created in the transient package with the same name
#jira UE-51891
Change 3732895 by Josh.Engebretson
https://jira.it.epicgames.net/browse/UE-51706
If a shared DDC is not being used, present a notification to the licensee with a link on how to setup a shared DDC.
Adds DDC notification events for check/put and query for whether a shared DDC is in use.
#jira UE-51706
Change 3733025 by Arciel.Rekman
UBT: make sure new clang versions are invoked.
Change 3733311 by Mike.Erwin
Fix Linux compile warning from CL 3731188
It didn't like mixing && and || without parentheses. Reworked logic to do one test at a time, put cheaper tests first to avoid calls to more expensive IsPluginFolder.
Change 3733658 by Josh.Engebretson
Add a missing #undef LOCTEXT_NAMESPACE
Change 3734003 by Arciel.Rekman
Fix Windows attempting to use printf %ls and crashing at that (UE-51934).
Change 3734039 by Michael.Trepka
Fixed a couple of merge issues in Mac ApplicationCore
Change 3734052 by Michael.Trepka
One more Mac ApplicationCore fix
Change 3734244 by Lauren.Ridge
Fix for accessing Slate window on render thread
Change 3734950 by Josh.Engebretson
Fixing clang warning
Change 3734978 by Jamie.Dale
Relaxed enum property importing to allow valid numeric values to be imported too
This was previously made more strict which caused a regression in Data Table importing
#jira UE-51848
Change 3734999 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
Change 3735268 by Matt.Kuhlenschmidt
Added support for canvas based DPI scaling.
-Scene canvas is by default not scaled as this could severely impact any game using a canvas based UI
-The debug canvas for stats is always dpi scaled in editor and pie.
-Eliminated text scaling workaround now that the entire canvas is properly scaled
-Enabled canvas scaling in cascade UI
Change 3735329 by Matt.Kuhlenschmidt
Fix potential crash if an asset editor has an object deleted out from under it
#jira UE-51941
Change 3735502 by Arciel.Rekman
Fix compile issue (bShouldUpdateScreenPercentage).
Change 3735878 by Jamie.Dale
Updated FString::SanitizeFloat to allow you to specify the min number of fractional digits to have in the resultant string
This defaults to 1 as that was the old behavior of FString::SanitizeFloat, but can also be set to 0 to prevent adding .0 to whole numbers.
Change 3735881 by Jamie.Dale
JsonValue no longer stringifies whole numbers as floats
Change 3735884 by Jamie.Dale
Only allow enums to import integral values
Change 3735912 by Josh.Engebretson
Improving cook process error/warning handling including asset warning/error content browser links and manual dismiss for cook error notifications
#jira UE-48131
Change 3736280 by Matt.Kuhlenschmidt
Fix 0 dpi scale for canvases
#jira UE-51995
Change 3736298 by Matt.Kuhlenschmidt
Force focus of game viewports in vr mode
Change 3736374 by Jamie.Dale
Fixed some places where input chords were being used without testing that they had a valid key set
#jira UE-51799
Change 3738543 by Matt.Kuhlenschmidt
Better fix for edit condition crashes
#jira UE-51886
Change 3738603 by Lauren.Ridge
Copy over of drag and drop non-array onto array fix
Change 3739701 by Chris.Babcock
Fix crashlytics merge error
#jira UE-52064
#ue4
#android
[CL 3739980 by Matt Kuhlenschmidt in Main branch]
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3494741 by Steve.Robb
Generated code size savings.
#jira UE-43048
Change 3495484 by Steve.Robb
Fix for generated indices of static arrays when saving configs.
Change 3497926 by Robert.Manuszewski
Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.
Change 3498077 by Robert.Manuszewski
Only use the recursion guard in async loading code when the event driven loader is enabled.
Change 3498112 by Ben.Marsh
UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.
Change 3500239 by Robert.Manuszewski
Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.
Change 3500395 by Steve.Robb
Extra codegen savings when not in hot reload.
Change 3501004 by Steve.Robb
EObjectFlags now have constexpr operators.
Change 3502079 by Ben.Marsh
UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.
Change 3502527 by Steve.Robb
Fix for zero-sized array compile error in generated code when all functions are editor-only.
Change 3502542 by Ben.Marsh
UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.
Change 3502868 by Steve.Robb
Workaround for inefficient generated code with stateless lambdas on Clang.
Change 3503550 by Steve.Robb
Another generated code lambda optimization.
Change 3503582 by Ben.Marsh
BuildGraph: Add support for nullable parameter types.
Change 3504424 by Steve.Robb
New AllOf, AnyOf and NoneOf algorithms.
Change 3504712 by Ben.Marsh
UAT: Less spammy log and error output from UAT.
* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
* Name of the calling function is not included in console output by default, but still included in the log.
Change 3504808 by Ben.Marsh
UAT: Suppress P4 output when running a recursive instance of UAT.
Change 3505044 by Steve.Robb
Code generation improved for TCppClassType code.
Change 3505485 by Ben.Marsh
Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.
Change 3505699 by Ben.Marsh
Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.
Change 3506055 by Ben.Marsh
UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.
Change 3507745 by Robert.Manuszewski
Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).
Change 3507911 by Ben.Marsh
Plugins: Minor changes to plugin descriptors.
* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.
Change 3508669 by Ben.Marsh
EC: Parse multi-line messages from UBT and UAT.
Change 3508691 by Ben.Marsh
Fix double-spacing of cook stats.
Change 3509245 by Steve.Robb
UHT makefiles removed.
Flag audit removed.
Change 3509275 by Steve.Robb
Fix for mismatched stat categories in AudioMixer.
#jira UE-46129
Change 3509289 by Robert.Manuszewski
Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.
Change 3509294 by Robert.Manuszewski
UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.
Change 3509312 by Steve.Robb
GitHub# 3679: Add TArray constructor that takes a raw pointer and a count
Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.
#jira UE-46136
Change 3509396 by Steve.Robb
GitHub# 3676: Fix TUnion operator<< compile error
#jira UE-46099
Change 3509633 by Steve.Robb
Fix for line numbers on multiline macros.
Change 3509938 by Gil.Gribb
UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.
Change 3510593 by Daniel.Lamb
Fixed up unsoilicited files getting populated with files which aren't finished being created yet.
#test None
Change 3510594 by Daniel.Lamb
Fixed up temp files directory for patching.
Thanks David Yerkess @ Milestone
#review@Ben.Marsh
Change 3511628 by Ben.Marsh
PR #3707: Fixed UBT stack size (Contributed by gildor2)
Change 3511808 by Ben.Marsh
Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)
#jira UE-46540
Change 3512017 by Ben.Marsh
Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.
Change 3513935 by Steve.Robb
Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.
Change 3514142 by Steve.Robb
MemoryProfiler2 added to generated solution.
Change 3516463 by Ben.Marsh
Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.
Change 3517860 by Ben.Marsh
PR #3727: FString Dereference Fixes (Contributed by jovisgCL)
Change 3517967 by Ben.Marsh
Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.
Change 3518070 by Steve.Robb
Disable Binned2 stats in shipping non-editor builds.
Change 3520079 by Steve.Robb
Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.
#jira UE-24034
Change 3520080 by Robert.Manuszewski
Made max package summary size to be configurable with ini setting
Change 3520083 by Steve.Robb
Force a GC after hot reload to clean up reinstanced objects which may still tick.
#jira UE-40421
Change 3520480 by Robert.Manuszewski
Improved assert message when the initial package read request was too small.
Change 3520590 by Graeme.Thornton
SignedArchiveReader optimizations
- Loads more stats
- Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
- Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
- Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries
Change 3521023 by Graeme.Thornton
Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing
Change 3521787 by Ben.Marsh
PR #3736: Small static code analysis fixes (Contributed by jovisgCL)
Change 3521789 by Ben.Marsh
PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)
Change 3524721 by Ben.Marsh
Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.
Change 3524741 by Ben.Marsh
Move PumpMessages() into FPlatformApplicationMisc.
Change 3525399 by Ben.Marsh
UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.
Change 3525743 by Ben.Marsh
UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.
Change 3525746 by Ben.Marsh
EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.
Change 3526453 by Ben.Marsh
UGS: Do not generate project files when syncing precompiled binaries.
Change 3527045 by Ben.Marsh
Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.
Change 3527420 by Ben.Marsh
UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).
Config files are now read from:
Engine/Programs/UnrealGameSync/UnrealGameSync.ini
Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini
If a project is selected:
<ProjectDir>/Build/UnrealGameSync.ini
<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini
If the .uprojectdirs file is selected:
Engine/Programs/UnrealGameSync/DefaultProject.ini
Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini
Change 3528063 by Ben.Marsh
Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.
Change 3528415 by Ben.Marsh
UAT: Remove \r characters from the end of multiline log messages.
Change 3528427 by Ben.Marsh
EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.
Change 3528485 by Ben.Marsh
EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.
Change 3528505 by Steve.Robb
PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)
#jira UE-46819
Change 3528772 by Robert.Manuszewski
Enabling actor and blueprint clustering in ShooterGame
Change 3528786 by Robert.Manuszewski
PR #3760: Fix typo (Contributed by jesseyeh)
Change 3528792 by Steve.Robb
PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)
#jira UE-46962
Change 3528941 by Robert.Manuszewski
Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.
#jira UE-44996
Change 3530241 by Ben.Marsh
UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.
Change 3531377 by Ben.Marsh
Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.
This has several advantages over the per-module platform whitelist/blacklist:
* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
* References to dependent plugins from platform-specific plugins can now be eliminated.
* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
* The editor can load any plugins without having to whitelist supported editor host platforms.
UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.
Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.
Change 3531502 by Jin.Zhang
Add support for GPUCrash #rb
Change 3531664 by Ben.Marsh
UBT: Change output format from C# JSON writer to match output by the engine.
Change 3531848 by Ben.Marsh
UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.
Change 3531869 by Ben.Marsh
UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.
Change 3532474 by Ben.Marsh
UBT: Use the same mechanism as UAT for logging exceptions.
Change 3532734 by Graeme.Thornton
Initial VSCode Support
- Tasks generated for building all game/engine/program targets
- Debugging support for targets on Win64
Change 3532789 by Steve.Robb
FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
Set_Add and Map_Add no longer have a return value.
FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.
Change 3532845 by Steve.Robb
Obsolete UHT settings deleted.
Change 3532875 by Graeme.Thornton
VSCode
- Add debug targets for different target configurations
- Choose between VS debugger (windows) and GDB (mac/linux)
Change 3532906 by Graeme.Thornton
VSCode
- Point all builds directly at UBT rather than the batch files
- Adjust mac build tasks to run through mono
Change 3532924 by Ben.Marsh
UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.
Change 3535234 by Graeme.Thornton
VSCode - Pass intellisense system a list of paths to use for header resolution
Change 3535247 by Graeme.Thornton
UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation
Change 3535376 by Graeme.Thornton
VSCode
- Added build jobs for C# projects
- Linked launch tasks to relevant build task
Change 3537083 by Ben.Marsh
EC: Change P4 swarm links to start at the changelist for a build.
Change 3537368 by Graeme.Thornton
Fix for crash in FSignedArchiveReader when multithreading is disabled
Change 3537550 by Graeme.Thornton
Fixed a crash in the taskgraph when running single threaded
Change 3537922 by Steve.Robb
Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.
Change 3539691 by Graeme.Thornton
VSCode - Various updates to get PC and Mac C++ projects building and debugging.
- Some other changes to C# setup to allow compilation. Debugging doesn't work.
Change 3539775 by Ben.Marsh
Plugins: Various fixes to settings for enabling plugins.
* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.
Change 3540788 by Ben.Marsh
UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
Example usage:
public class UnrealPakTarget : TargetRules
{
public UnrealPakTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
LaunchModuleName = "UnrealPak";
if(HostPlatform == UnrealTargetPlatform.Win64)
{
PreBuildSteps.Add("echo Before building:");
PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
PostBuildSteps.Add("echo After building!");
PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
}
}
}
Change 3541664 by Graeme.Thornton
VSCode - Add problemMatcher tag to cpp build targets
Change 3541732 by Graeme.Thornton
VSCode - Change UBT command line switch to "-vscode" for simplicity
Change 3541967 by Graeme.Thornton
VSCode - Fixes for Mac/Linux build steps
Change 3541968 by Ben.Marsh
CRP: Pass through the EnabledPlugins element in crash context XML files.
#jira UE-46912
Change 3542519 by Ben.Marsh
UBT: Add chain of references to error messages when configuring plugins.
Change 3542523 by Ben.Marsh
UBT: Add more useful error message when attempt to parse a JSON object fails.
Change 3542658 by Ben.Marsh
UBT: Include a chain of references when reporting errors instantiating modules.
Change 3543432 by Ben.Marsh
Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.
Change 3543436 by Ben.Marsh
UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.
Change 3543536 by Ben.Marsh
UBT: Downgrade message about redundant plugin references to a warning.
Change 3543871 by Gil.Gribb
UE4 - Fixed a critical crash bug with non-EDL loading from pak files.
Change 3543924 by Robert.Manuszewski
Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
+Small optimization to token stream generation code.
Change 3544469 by Jin.Zhang
Crashes page displays the list of plugins from the crash context #rb
Change 3544608 by Steve.Robb
Fix for nativized generated code.
#jira UE-47452
Change 3544612 by Ben.Marsh
Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().
#jira UE-47449
Change 3545954 by Gil.Gribb
Fixed a critical crash bug relating to a race condition in async package summary reading.
Change 3545968 by Ben.Marsh
UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.
#jira UE-47419
Change 3545976 by Ben.Marsh
EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.
Change 3546185 by Ben.Marsh
Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.
Change 3547084 by Gil.Gribb
Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.
Change 3547968 by Gil.Gribb
Fixed critical race which potentially could cause a crash in the pak precacher.
Change 3504722 by Ben.Marsh
BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.
For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:
ERROR: Unable to write to foo.txt
while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
at Engine\Build\InstalledEngineBuild.xml(91)
(see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
Change 3512255 by Ben.Marsh
Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.
Change 3512332 by Ben.Marsh
Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.
Change 3512393 by Ben.Marsh
Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().
Change 3513452 by Ben.Marsh
Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.
Change 3516262 by Ben.Marsh
Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.
* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).
Change 3517565 by Ben.Marsh
Remove fixed engine version numbers from OSS plugins.
Change 3518005 by Ben.Marsh
UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.
Change 3518054 by Ben.Marsh
UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.
Change 3524496 by Ben.Marsh
Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.
Change 3524641 by Ben.Marsh
Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.
Change 3528723 by Steve.Robb
MoveTemp now static asserts if passed a const reference or rvalue.
MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
Fixes to violations of these new rules.
Change 3528876 by Ben.Marsh
Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.
Change 3529073 by Ben.Marsh
Add script to package ShooterGame for any platforms.
Change 3531493 by Ben.Marsh
Update platform-specific plugins to declare the target platforms they support.
Change 3531611 by Ben.Marsh
UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.
Change 3531868 by Ben.Marsh
Resaving project descriptors to remove invalid fields.
Change 3531983 by Ben.Marsh
UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.
* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
* An error is output if any restricted folder names other than the output platform are in the staged output.
Change 3540315 by Ben.Marsh
UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.
Change 3542410 by Ben.Marsh
UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.
Change 3543018 by Ben.Marsh
UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.
Change 3544371 by Steve.Robb
Fixes to TSet_Add and TMap_Add BPs.
#jira UE-47441
[CL 3548391 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 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]
#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]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
#rb None
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3182087 on 2016/11/01 by Lina.Halper
PR #2328: fix morph target weight application order. (Contributed by tmiv)
- changed order of morphtarget application to be animation and THEN SetMorphTarget
- made sure you could clear the weight also if SetMorphTarget to be 0.f
#jira: UE-29999
Change 3182090 on 2016/11/01 by Lina.Halper
Fix issue where import doesn't display any message when import type hasn't been detected
Change 3182123 on 2016/11/01 by Wes.Hunt
ensure the EngineAnalytics singleton is not being held onto by someone else during engine shutdown.
Change 3182177 on 2016/11/01 by Lina.Halper
Fix not being able to modify Joint Target Location in detail panel
#jira: UE-30900
Change 3182181 on 2016/11/01 by Ben.Zeigler
Add UGameplayTagsManager::AddNativeGameplayTag to allow registering tags directly from native code. This stops them from being deleteable in the editor, and will register them even if they don't exist elsewhere
Change internal games to use this to register their native tags. The explicit call to be done adding native tags is not required, it happens on engine post init
Some header cleanup
Change 3182876 on 2016/11/02 by Danny.Bouimad
Moving files
Change 3182912 on 2016/11/02 by Thomas.Sarkanen
Added access to the viewport client from IPersonaViewport
Allows systems to hook into the state of the client.
#jira UE-36549 - Need to access the current viewmode in FPersonaMeshDetails
Change 3182927 on 2016/11/02 by Thomas.Sarkanen
Initially select current asset in the asset family shortcut bar dropdown
#jira UE-35532 - Animation dropdown submenu doesn't highlight currently selected object, where as the asset browser does
Change 3182970 on 2016/11/02 by Lukasz.Furman
CIS fix for gameplay debugger
copy of CL# 3165005
Change 3183123 on 2016/11/02 by Mieszko.Zielinski
Fixed changing AreaClass of NavLinkProxy point links not having any effect on navmesh generation #UE4
Change 3183310 on 2016/11/02 by Jurre.deBaare
Blendspace changes:
- Moved MarkerSync code from BlendSpaceBase.cpp to BlendSpaceUtilities.h/cpp
- Re-ordered blendspace.h/cpp
- const correctness where possible
- Removed unused code paths
- Wrapped non-runtime code paths in WITH_EDITOR
Blendspace editor refactor:
- Moved element generators into respective AnimationBlendSpaceHelpers.h/cpp
- New Grid Widget class
- Simplified Blendspace(1D) editors, most things are handled within SAnimationBlendSpaceBase
- SBlendSpaceGridWidget handles visualization and UI interaction (modifying blendspace is done through parent SAnimationBlendSpaceBase)
Change 3183344 on 2016/11/02 by James.Golding
UEFW-181 : Move PhysX vehicle support to a plugin
- Added FPhysicsDelegates for several useful global physics delegates (OnUpdatePhysXMaterial, OnPhysicsAssetChanged, OnPhysSceneInit, OnPhysSceneTerm)
- Added OnPhysScenePreTick and OnPhysSceneStep delegates to FPhysScene
- TireType is now deprecated, just kept in Engine for backwards compat. TireConfig in PhysXVehicles plugin is new structure
- Added 'ConvertTireTypes' editor console util which creates TireConfig's from TireTypes's (using asset registry) and PhysicalMaterials, and updates any VehicleWheel BPs
Change 3183351 on 2016/11/02 by Ben.Zeigler
Add utility functions to convert from export text versions of tag and container, which is useful when reading tags out of the asset registry
Change 3183354 on 2016/11/02 by Ben.Zeigler
Change fortnite to use new GameplayTag functions to parse tags in the asset registry to avoid bad stall while checking mission requirements. This only works once the mission infos have been resaved
Change 3183383 on 2016/11/02 by Thomas.Sarkanen
Persona camera fixes
Dont reset the camera all the time when setting skeletal meshes (we only do this the first time now).
Add shortcuts to focus the camera using 'F' key from the skeleton tree (or anywhere else that wants to). Also add a menu option to the viewport to make this more discoverable.
Shortcut is now handles by the viewport widget instead of the client (as this is how other viewports handle it).
#jira UE-36458 - Stop camera from resetting when doing undo or redo in persona animation editor
Change 3183409 on 2016/11/02 by Jon.Nabozny
#rn Allow MAX_ARRAY_SIZE and MAX_ARRAY_MEMORY from RepLayout to be user configurable.
#jira UE-35660
Change 3183625 on 2016/11/02 by James.Golding
Hopeful fix for Mac CIS issue in PhysXVehiclesEditor
Change 3183652 on 2016/11/02 by Ben.Zeigler
Fix issue where commonly replicated tags didn't work if load from ini was turned off.
Fix it so gameplay tag tree is always fully sorted alphabetically, instead of only the root tags being sorted.
Change 3183856 on 2016/11/02 by Richard.Hinckley
#jira UEDOC-4006
Editing GameMode and GameState documentation (in Framework branch).
Change 3183902 on 2016/11/02 by Mieszko.Zielinski
Fixed EQS debug drawing not showing item labels #UE4
Proper implementation of CL#3183899
#jira UE-38122
Change 3183996 on 2016/11/02 by Jon.Nabozny
Fix DefaultMaxRepArrayMemory value to be UINT16_MAX (65535). Was previously set to 64 * 1024 = 65536.
Change 3184129 on 2016/11/02 by Ben.Zeigler
#jira UE-38022 Move GameplayAbilities to a plugin.
Remove GameplayAbilitiesEditorEnabled ini setting, instead enable the "GameplayAbilities" plugin in your uproject if you want abilities, it's disabled by default
#jira UE-6947 Remove GameplayAbilityBlueprintGeneratedClass as it's not needed and was only being used half the time
#jira UE-19427 Fix incorrect usage of WorldContextObject in ability tasks to instead be OwningAbility, as it would crash if used on anything other than a gameplay ability object
Change 3184130 on 2016/11/02 by Ben.Zeigler
Internal game fixups for moving gameplayabilities to a plugin
Change 3184469 on 2016/11/02 by Ben.Zeigler
Change abilities plugin to be more obviously unsupported
Change 3184565 on 2016/11/02 by dan.reynolds
AEOverview update with HRTF test map
Change 3184800 on 2016/11/03 by Thomas.Sarkanen
Added "Show Selected and Parents" to bone display options
Also fixed mis-named menu section.
#jira UE-35375 - Add 'selected bone and parents' option to Persona viewport
Change 3184810 on 2016/11/03 by James.Golding
Remove WoflPlat PhysX 3.3 and Apex 1.3 files
Change 3184817 on 2016/11/03 by Thomas.Sarkanen
Added facial animation support
Added curve table to sound wave (internal or external). Added UI support for manipulating these.
Improved curve table editor.
- Editor can now display curves as well as tables.
- Sparse keys are now properly supported (where keys are not presnet at some times in some curves).
Added curve source interface.
Added external curve node. This allows any component or actor (BP or native) that implements ICurveSourceInterface to drive curves.
Added new audio component that can also provide curves. This handles the preroll delay (approx 0.4 seconds, depending on audio) so the mouth can open before audio is played.
Added bulk importer plugin.
This imports audio & FBX files and builds cuirve data into SoundWave assets.
- Adapted exisitng FBX curve import slightly to use FRichCurves rather than FFloatCurves.
- Added new support for importing curves to a curve table.
Added preview of audio to Persona.
- Added display, filtering and playback of sound waves from the anim sequence browser.
- Audio playback with curves routed to animation now works with anim blueprints and pose assets (as we need a pose asset to preview poses!)
- Persona now uses an Actor rather than disparate components.
- Added overrides for AddComponent and RemoveComponent to make sure actor is hooked up correctly.
- Preview scene can now be manipulated by plugins etc. using a delegate when it is created.
- Single anim instance has been slightly re-worked to do its update and evaluate logic inside of a local anim node. This allows derived classes to build functionality up component-wise by adding new nodes to the 'graph'.
#jira UEFW-7 - Routing Sound Curves to AnimBP
#jira UEFW-5 - Support importing curves
#jira UE-37950 - Spawn preview actor in animation editor
Change 3184837 on 2016/11/03 by James.Golding
PR #2896: Fix FVehicleAnimInstanceProxy::PreUpdate not calling FFAnimInstanceProxy's PreUpdate (Contributed by DenizPiri)
#jira UE-37978
Change 3184847 on 2016/11/03 by Thomas.Sarkanen
Fixed editor shutdown crash
Dont try to save config when UObjects are all gone.
Change 3184853 on 2016/11/03 by James.Golding
Stop Engine module linking against PhysX vehicle lib, link that into PhysXVehicles plugin instead.
Change 3184884 on 2016/11/03 by Thomas.Sarkanen
Anim Blueprint thread safety is now checked in the compiler
Added new metadata keys for classes and functions to describe their thread safety.
Added extra warnings in the anim BP compiler based around these new keys to help people catch suspect thread usage.
Expanded the compiler erorr reporting to allow for extra rich message tokens to be appended (for documentation etc.).
Improved BP error reporting: Now we display the actual node name instead of CallFunction_0 etc.
CVar forcing multithreaded update is now defaulted to off. Projects now by default enable it but can more easily opt-out.
#doc Added link to new section of AnimGraph page, which may benefit from images etc.
#jira UE-28283 - Look into expanding the system to determine what nodes we allow to run on worker threads.
Change 3184886 on 2016/11/03 by Thomas.Sarkanen
Content fixes for anim BP thread safety warnings
Ocean:
Random Float node is unsafe (uses rand() unde rthe hood) so replaced with Random Stream.
Odin:
Flying Bot accessed the character blueprint inside some transitions. Cached the value in the event graph instead.
Fortnite:
Disable threaded update for a number of anim BPs as they were using unsafe calls when using CopyPoseFromMesh
Change 3184894 on 2016/11/03 by Thomas.Sarkanen
Fix Mac CIS
Change 3184951 on 2016/11/03 by Thomas.Sarkanen
Fix CIS warning on clang platforms
Change 3185176 on 2016/11/03 by James.Golding
Hopeful fix for building PhysXVehicles plugin for mac
Change 3185289 on 2016/11/03 by Alex.Delesky
#jira UE-37773 - Updating the Gameplay Tags UI to allow for the following:
-Addition of a tag with comments and a specific INI location
-An "Add Subtag" button that will allow the user to create a tag underneath a specified parent that autofills most of the information (parent name and location) for the new tag
-A dropdown menu to allow for additional actions to be performed on a tag (rename, delete, search for references)
-Comments for gameplay tags now show up in the tooltip forthe tag rather than the tag name if one had been specified
-Shows a tree in the Project Settings window when viewing the gameplay tag list instead of an array
Change 3185331 on 2016/11/03 by Marc.Audy
Remove duplicated condition from if
Change 3185426 on 2016/11/03 by James.Golding
Another attempt at fixing mac builds of PhysXVehicles plugin
Change 3185487 on 2016/11/03 by James.Golding
- Remove TireType assets from templates/sample, add TireConfigs instead
- Make deprecated vehicle vars visible (but not editable), to help converting content
- Change icon for PhysX vehicle plugin
Change 3185520 on 2016/11/03 by James.Golding
Trying yet again to fix Mac CIS!
Change 3185542 on 2016/11/03 by Ben.Zeigler
#jira UE-34086
Commit modified version of PR #2665 to allow overriding crouch behavior in subclasses of CharacterMovementComponent
#jira UE-35652
Fix crouch behavior to not change capsule until after uncroach check, to avoid causing unnecessary physics side effects
Also had to set the TeleportPhysics flag in this case, so add code to remember if a teleport was attempted during a deferred movement, and then apply that flag during EndScopedMovementUpdate
Change 3185570 on 2016/11/03 by Marc.Audy
Protect against theoretical crash introduced in CL# 2049861 if CreatePackage returns null.
Remove some autos
Change 3185749 on 2016/11/03 by dan.reynolds
AEOverview test map addition: testing Virtual Voice
Change 3185946 on 2016/11/03 by dan.reynolds
AEOverview tweaks - clarified success conditions for Streaming Spam and Streaming Priority maps
Change 3185972 on 2016/11/03 by Lina.Halper
Fix issue with offset of attachment getting messed up because parent doesn't tick the animation correctly when opening level from Content Browser
#jira: UE-31890
#code review: Thomas.Sarkanen
Change 3186043 on 2016/11/03 by Alex.Delesky
#jira UE-37773 - Fixing some of the gameplay tags UI based on feedback
-Right-aligned input fields for the AddNewGameplayTag and RenameGameplayTag widgets
-Added a divider to the GameplayTag widget that will appear when the AddNewGameplayTag widget is visible
-Tags with comments will now display both their name and their comment in tooltips
Change 3186207 on 2016/11/03 by Alex.Delesky
#jira UE-37773 - The Gameplay Tags widget in the project browser will no longer display the disabled checkboxes and disabled text for the tag names
Change 3186321 on 2016/11/03 by Dan.Reynolds
Removed deprecated test asset (BP_ProceduralSoundWaveTest)
Change 3186740 on 2016/11/04 by Thomas.Sarkanen
Removed FPersona and supporting classes
Also removed UMorphTarget's asset type actions (as it was nearly empty and we dont use them as assets any more).
#jira UEFW-222 - Remove FPersona
Change 3186741 on 2016/11/04 by Thomas.Sarkanen
Fix non-unity builds
Change 3186755 on 2016/11/04 by Thomas.Sarkanen
Prevent adding keys to read-only curves in curve tables
Lock off the shift-LMB shortcut to add keys
#jira UE-38210 - Crash trying to add a key to a curve table in curve view
Change 3186798 on 2016/11/04 by James.Golding
UE-37503 - Add FHitResult output to K2_LineTraceComponent
Change 3186800 on 2016/11/04 by James.Golding
- Remove deprecated collision functions in KismetSystemLibrary
- Remove _NEW from collision function names, add redirectors
- Add debug draw options (TraceColor, TraceHitColor, DrawTime) to shape traces, to match line traces (UE-35941)
Change 3186989 on 2016/11/04 by James.Golding
Fix CIS fail in Fortnte
Change 3187081 on 2016/11/04 by Wes.Hunt
EngineAnalytics::Shutdown now checks to see if the Analytics pointer is null OR unique before ensuring. #jira UE-38125
Change 3187135 on 2016/11/04 by Jurre.deBaare
Fix for incorrect framework version in blendspace serialization code.
Change 3187682 on 2016/11/04 by Ben.Zeigler
#jira UE-38289 Fix crash when replicated tag array is empty
Change 3188113 on 2016/11/05 by Mieszko.Zielinski
Removed a bunch of deprecated AI module functions #UE4
Cut-off point at v4.10
Change 3188119 on 2016/11/05 by Mieszko.Zielinski
Deprecated AI functionality removal fallout fixes #UE4
Change 3188121 on 2016/11/05 by Mieszko.Zielinski
PR #2883: Added a Cone EQS Generator (Contributed by orfeasel)
Did some massaging on change.
#jira UE-37685
Change 3188122 on 2016/11/05 by Mieszko.Zielinski
Bumped EnvQueryGenerator_Cone.AlignedPointsDistance's default value up to 100, which makes a bit more sense #UE4
Change 3188442 on 2016/11/07 by James.Golding
Check in trace debug draw test map
Change 3188463 on 2016/11/07 by james.cobbett
Submitting Pose Snapshot test map and asset
Change 3188618 on 2016/11/07 by Thomas.Sarkanen
Expanded pose snapshot system
Allows poses to be stored in variables.
Split FPoseSnapshot from FAnimInstanceProxy and made it a BlueprintType USTRUCT.
Added modes to FAnimNode_PoseSnapshot so that we can either use the named pose or a FPoseSnapshot variable pin.
Moved pose snapshot code into USkeletalMeshComponent as it doesnt need to be on the proxy any more.
#jira UEFW-242 - Caching poses to a Blueprint variable (and an anim node to use it with)
Change 3188619 on 2016/11/07 by Thomas.Sarkanen
Moved "NoResetToDefaults" to the correct metadata section in ObjectMacros.h
Change 3188642 on 2016/11/07 by Thomas.Sarkanen
Added new test for pose variables
Change 3188716 on 2016/11/07 by Ben.Zeigler
#jira UE-38294 Fix bad error message when adding new DefaultGameplayTags.ini file
Change 3189020 on 2016/11/07 by dan.reynolds
Added a test map for Audio Volume Ambient Zone test for Play Sound at Location
AVOverviewAZPlaySoundAtLocation
Change 3189188 on 2016/11/07 by Jon.Nabozny
Fix edge cases / alternate IPv6 formats in IPAddressBSDIPv6::SetIp.
#jira UE-36607
Change 3189199 on 2016/11/07 by Jon.Nabozny
Flag UActorComponent, USceneComponent, and UPrimitiveComponent UFUNCTIONS as UnsafeDuringActorConstruction="true" if they
modify unreplicated properties, require use of the PhysScene, or otherwise indicate poor design.
#jira UE-33038
Change 3189271 on 2016/11/07 by Aaron.McLeran
UEFW-224 Refectoring UnrealEd code to move all audio related editing code to a new AudioEditor module
- Fixups for removals
- Several bug fixes for sound classes
Change 3189450 on 2016/11/07 by Aaron.McLeran
Fixes for facial animation playback progress
- Creating a per-source PlaybackTime which can be used to get a fairly accurate playback percentage function for all platforms.
- Allowing platforms to override to get a "sample accurate" playback time for platforms that are able.
Change 3189507 on 2016/11/07 by Wes.Hunt
* Deprecated GetUniqueDeviceId. Use GetDeviceId now instead. #jira AN-820
* Added warnings to each implementation of GetDeviceId as to what API it uses, and what cert requirements may be placed on it.
* Deprecated all platform independent usages of GetMacAddress and related functions. #jira AN-820 #jira AN-802
* Deprecated GetMachineId. Use GetLoginId now instead. #jira AN-811
* Update usages of MachineID throughout CrashReporter code. Left MachineId and LoginId as available attributes.
* Removed LocalPlayer requirement for setting the Analytics UserId in internal products. Removed fallbacks for seting UserId for internal products. #jira AN-814 #jira AN-808
* Removed GetUniqueDeviceId code from LauncherInstaller.
* Removed redundant MachineID and AccountID from Editor.ProgramStarted analytics event.
* Removed DeviceID from SessionStart analytics event.
#FYI: justin.sargent, Chris.Wood, Wes.Fudala
* Justin, reminder that FPortalRpcResponderFactory::Create will need to start using GetLoginID instead of MacAddress for IPC identifiers.
* Chris, look over CRP code to ensure that I didn't destroy some vital bit of necessary connection with the MachineId->LoginId name change. Both values are used, and for now, they both return the same thing.
* Wes, we didn't need GetUnqiueDeviceId attribute in BeginSession, as no one ever uses it, so I just removed it.
Change 3190032 on 2016/11/08 by Wes.Hunt
Fix a few places I forgot to deprecate regarding GetMacAddress.
Change 3190107 on 2016/11/08 by Wes.Hunt
Another attempt to remove deprecation warning in CIS. Apparently removing the warning for a const string initialized via a consrtuctor with a deprecated function is somewhat tricky. Still not sure why it works on my machine either way.
Change 3190326 on 2016/11/08 by Aaron.McLeran
Fixing CIS build warning
Change 3190495 on 2016/11/08 by Jon.Nabozny
Fix OSSNull server / session filtering to better match SessionSettings and online OSS. Make MCP, Steam, and Null LAN queries more consistent.
#jira UE-37512
Change 3190566 on 2016/11/08 by Martin.Wilson
Remove warning on Least Destructive (was incorrectly applied to least destructive due to legacy reasons)
#jira UE-27323
Change 3190631 on 2016/11/08 by Martin.Wilson
Fix notify validation not triggering when using set time/set frame context menu options
#jira UE-37857
Change 3190666 on 2016/11/08 by Martin.Wilson
Add info about anim instance to additive warning
#jira UE-35930
Change 3191290 on 2016/11/09 by Thomas.Sarkanen
Fix skeleton tree selection disappearing when filtering changes
Note: Copying //Tasks/UE4/Dev-UEFW132-PhATUpgrade to Dev-Framework (//UE4/Dev-Framework)
Split SSkeletonTree into multiple files
Items now derive from the common base class ISkeletonTreeItem.
New skeleton tree item RTTI added modlled on the drag/drop RTTI.
Filtering is now performed independently of tree building. Filtering and building are more extensible (more of this to come).
Item selection is now preserved on filter change.
Filtering now (optionally) keeps the hierarchy in place.
#jira UE-31017 - Skeleton Selection is Lost When Changing Filters
Change 3191325 on 2016/11/09 by Thomas.Sarkanen
Fix clang CIS
Change 3191344 on 2016/11/09 by Thomas.Sarkanen
More clang CIS fixes
Change 3191345 on 2016/11/09 by Thomas.Sarkanen
CIS fix: Missed another enum fwd declaration
Change 3191374 on 2016/11/09 by Thomas.Sarkanen
Remove 4.11 deprecated functions from animation systems
Also deprecate NativeUpdateAnimation_WorkerThread as users should no longer be calling this function (it is not run on worker threads anyways).
#jira UE-35748 - Clean up 4.11 Deprecated functions
Change 3191375 on 2016/11/09 by Thomas.Sarkanen
Fixup Orion hero instance after deprecation
Change 3191739 on 2016/11/09 by Marc.Audy
PhysX Vehicle plugin needs to be loaded with -game as well, so it must be Developer, not Editor.
Change 3191827 on 2016/11/09 by Marc.Audy
Raw Input plugin allowing support of steering wheels and flightsticks
#jira UEFW-237
Change 3191828 on 2016/11/09 by Ben.Zeigler
#jira UE-38384 Comment cleanup for gameplay tag library
Change 3191889 on 2016/11/09 by Ben.Zeigler
#jira UE-38294 Fix issues with trying to set not-yet-written settings files as writable and add them to source control
If a settings file does not yet exist on disk, also try adding to source control after writing it
Change 3191911 on 2016/11/09 by Marc.Audy
Enable raw input plugin and configure for use with the Logitech G920 all vehicle templates and vehicle game.
#jira UEFW-237
Change 3191915 on 2016/11/09 by Marc.Audy
Provide useful tooltips for raw input setting properties
#jira UEFW-237
Change 3192039 on 2016/11/09 by dan.reynolds
AEOverview Update
- Added a map for checking multi-channel file playback: AEOverviewMultichannel.umap
- Incorporated AVOverviewAZPlaySoundAtLocation test into the AEOverviewMain submap list temporarily for testing purposes
Change 3192059 on 2016/11/09 by Martin.Wilson
Fix montage thumbnail rendering with ref pose
#jira UE-35578
Change 3192065 on 2016/11/09 by Martin.Wilson
Widen bone reference widget to give a better view of the name and added full name to tooltip
#jira UE-36264
Change 3192217 on 2016/11/09 by Martin.Wilson
Auto selected current bone when opening bone reference tree
#Jira UE-36264
Change 3192332 on 2016/11/09 by Marc.Audy
Fix RawInput compiling when WITH_EDITOR is false
#jira UE-38433
Change 3193061 on 2016/11/10 by Thomas.Sarkanen
Marked facial animation plugin & component as experimental/beta
Change 3193072 on 2016/11/10 by Martin.Wilson
Correct reference skeleton fix up order
Change 3193112 on 2016/11/10 by Danny.Bouimad
Pesudo hair asset usintphat for testing
Change 3193243 on 2016/11/10 by Martin.Wilson
Fix removal of USkeleton bone tree entries
#Jira UE-37363
Change 3193249 on 2016/11/10 by Marc.Audy
Raw input compile fixes:
Fix additional not with_editor compile issues
Fix static analysis warnings
#jira UE-38433
Change 3193558 on 2016/11/10 by Martin.Wilson
Move "Number of Curves" label creation to attribute so that it updates dynamically
#jira UE-26767
Change 3193664 on 2016/11/10 by Marc.Audy
PR #2919: Fixed Comment Typo in ActorComponent.cpp (Contributed by KumaKing)
#jira UE-38436
Change 3193719 on 2016/11/10 by Lukasz.Furman
fixed vertical jitter in replicated NavWalking movement
#jira UE-33260
Change 3193802 on 2016/11/10 by Marc.Audy
Remove some autos, fix NULL to nullptr, call GetWorld just once
Change 3193809 on 2016/11/10 by Marc.Audy
Fix Mac CIS compile error
#jira UE-38501
Change 3194053 on 2016/11/10 by Aaron.McLeran
Fixed crash on shutdown when using audio mixer
- Switching audio mixer to use a runnable thread rather than async tasks
- Fixed issue where audio buffers weren't taking ownership of wave data
Change 3194057 on 2016/11/10 by Aaron.McLeran
Adjusting channel mapping code to better support standard down-mixing for 2D multi-channel files.
- Added support for 8 channel source files.
Change 3194070 on 2016/11/10 by Aaron.McLeran
Fixing stupid compile error
Change 3194779 on 2016/11/11 by Jon.Nabozny
Fixed UnsafeDuringActorConstruction tag on USceneComponent::GetPhysicsVolume.
Missed the '=true' portion.
Change 3194967 on 2016/11/11 by Mieszko.Zielinski
PR #2920: Bug Fix: fix pasting Behavior Tree nodes with decorators in wrong position (Contributed by BrettKercher)
#jira UE-38443
#jira UE-30906
Change 3195741 on 2016/11/11 by Ben.Zeigler
#UE-38539 Stop Orion from reinitializing it's native tag dictionary when reloading menu, this was just slow before but now ensures
Change 3196655 on 2016/11/14 by Marc.Audy
Remove pointless remove/adds from Odin DefaultEngine.ini.
This also fixes the duplicate redirector of AnimNode_WheelHandler as the version in BaseEngine.ini has been changed where it points to
#jira UE-38562
Change 3196678 on 2016/11/14 by Lukasz.Furman
pass on gameplay debugger's EQS category
copy of CL# 3195071, 3195152, 3196617 with local fixes
Change 3196700 on 2016/11/14 by Ben.Zeigler
#jira UE-38539 Move where orion tags are initialized to earlier in the startup for all loading flows
Change 3196719 on 2016/11/14 by Thomas.Sarkanen
Added extra output to anim BP compiler when a blueprint function call is used
This allows us to give more info to users when unsafe things (like blueprint functions) are used.
Change 3196799 on 2016/11/14 by Jurre.deBaare
Fix for blendspace tooltip crash
#fix Check before dereferencing animation ptr on samples :)
Change 3196971 on 2016/11/14 by Lukasz.Furman
replaced hardcoded value for pathfollowing's focal point distance with a parameter
#ue4
Change 3196994 on 2016/11/14 by Marc.Audy
Slightly improve performance of boolean check
Change 3197768 on 2016/11/14 by dan.reynolds
AEOverview Stage 2 WIP
- Added Command Line auto sub-level loading (-AELoadMap=MapName01,MapName02,etc.) or sub-level categories auto loading (-AELoadCat=AE,SC,STRM,AV,etc.)
- Added Categorization menu to Main staging map to help sorting maps by category
- Changed menu to be dynamically loaded from editable Data Structure Arrays, so all the menu information is loaded dynamically.
Change 3197782 on 2016/11/14 by dan.reynolds
AEOverview Stage 2 WIP - fixed misnamed sub-level reference, cleaned up some of the BP
Change 3197801 on 2016/11/14 by dan.reynolds
AEOverviewMain Stage 2 WIP:
- Added Select All Buttom to select all loaded menu items
Change 3197988 on 2016/11/15 by Thomas.Sarkanen
Add the ability to use incompatible meshes with snapshots
We now use a name-based mapping to copy local poses to the correct bones in the hierarchy, similar to CopyPoseFromMesh.
No access to UObjects (components or meshes) is performed on worker threads. Bone names are all cached on the game thread when needed and used on worker threads.
#jira UE-38413 - Pose snapshot cannot be used across meshes with different hierarchies
Change 3198062 on 2016/11/15 by Thomas.Sarkanen
Disabled threaded update on various anim blueprints to remove cook warnings
#jira UE-38537 - Cooking FortniteGame results in warnings
Change 3198071 on 2016/11/15 by Thomas.Sarkanen
Fix default values not being available to change post anim BP compilation
Make sure we re-select with force refresh on so the details panel is rebuilt even if the objects are the same (as the customization relies upon it).
#jira UE-38518 - Animation Blueprint: Default values cannot be changed after compiling if node is currently selected
Change 3198082 on 2016/11/15 by Jurre.deBaare
CRASH If the Vertical Axis of a blendspace is set to 0 segments when an animation is on the blendspace the editor crashes
#fix UI and ClampMin to 1
#jira UE-38587
Change 3198138 on 2016/11/15 by Thomas.Sarkanen
Expose montage functions to Blueprint
Made sure to flag appropriate functions as not thread safe.
Also const-corrected a few functions that should be.
Github #2918: Blueprint Callable Montage Set/Get Position
#jira UE-38391 - GitHub 2918 : Blueprint Callable Montage Set/Get Position
Change 3198141 on 2016/11/15 by Jurre.deBaare
Crash from generated Merged Actor with no created lightmap UV
#fix Always flag UV channel 0 to be occupied
#jira UE-38520
Change 3198420 on 2016/11/15 by Thomas.Sarkanen
Move thread-safety check flags to the UAnimBlueprint
Then have the compiler propogate the flags to the CDO. Prevents issues where the old CDO wasnt propgated during compile-on-load.
Also move blueprint usage warning flag into the UAnimBlueprint too, as these suffer from the same issues.
#jira UE-38537 - Cooking FortniteGame results in warnings
Change 3198485 on 2016/11/15 by Thomas.Sarkanen
Properly fix compile-on-load/cook warnings about anim blueprint thread safety
Content only re-save.
#jira UE-38537 - Cooking FortniteGame results in warnings
Change 3198622 on 2016/11/15 by Ben.Zeigler
#jira UE-38632 Fix blueprint warning, was calling SetActive from construction script which is no longer allowed. This was being used for an editor-only debug feature
[CL 3198987 by Marc Audy in Main branch]
- FAssetImportInfo is now marked as USTRUCT and is stored as a member value on UAssetImportData rather than using inheritance. This makes customization writing much easier and better affords UObject interoperability.
- Removed UAssetImportData::bDirty as it was only every used to enable/disable a button on the static mesh editor, and its presence caused confusion and inconsistency.
- Fixed issue where timestamps did not get updated correctly
- Fixed various reimport paths that were not updating their source file information correctly.
This addresses UETOOL-466 and UE-16406.
[CL 2646395 by Andrew Rodham in Main branch]
The majority of asset reimport machinery is now held within UAssetImportData and FAssetImportInfo. This change allows us to remove the CachedAssetsBySourceFileName map from FAssetRegistry that was previously added to support auto reimport for 4.7.
The functionality of CachedAssetsBySourceFileName has been wrapped up in FAssetSourceFilenameCache, which sits on top of the asset registry in the editor.
This unification allows us to also consistently store the file timestamps and MD5 hashes of imported files. This subsequently allows auto-reimports to be ignored where a source content file has not actually changed (its MD5 is the same).
This addresses UETOOL-365 - Rework AssetRegistry changes to support auto-reimport
[CL 2567286 by Andrew Rodham in Main branch]