Files
UnrealEngineUWP/Engine/Source/Runtime/Online/HTTP/HTTP.Build.cs

106 lines
2.6 KiB
C#
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
public class HTTP : ModuleRules
{
protected virtual bool bPlatformSupportsWinHttp
{
get
{
return Target.Platform.IsInGroup(UnrealPlatformGroup.Windows);
}
}
protected virtual bool bPlatformSupportsLibCurl
{
get
{
return Target.Platform.IsInGroup(UnrealPlatformGroup.Windows) ||
Target.IsInPlatformGroup(UnrealPlatformGroup.Unix) ||
Target.IsInPlatformGroup(UnrealPlatformGroup.Android);
}
}
protected virtual bool bPlatformSupportsXCurl { get { return false; } }
private bool bPlatformSupportsCurl { get { return bPlatformSupportsLibCurl || bPlatformSupportsXCurl; } }
protected virtual bool bPlatformRequiresOpenSSL
{
get
{
return Target.Platform.IsInGroup(UnrealPlatformGroup.Windows) ||
Target.IsInPlatformGroup(UnrealPlatformGroup.Unix) ||
Target.IsInPlatformGroup(UnrealPlatformGroup.Android);
}
}
public HTTP(ReadOnlyTargetRules Target) : base(Target)
{
PublicDefinitions.Add("HTTP_PACKAGE=1");
PrivateIncludePaths.AddRange(
new string[] {
"Runtime/Online/HTTP/Private",
}
);
PublicDependencyModuleNames.AddRange(
new string[] {
"Core"
}
);
PrivateDependencyModuleNames.AddRange(
new string[] {
"SSL",
}
);
if (bPlatformSupportsCurl)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3173994) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3118934 on 2016/09/08 by Jeff.Campeau Shader compression setting based on target platform instead of cooking host platform. #jira UE-35753 Change 3150366 on 2016/10/04 by Nick.Shin emscripten SDK 1.36.11 windows and mac binaries will be checked in separately #jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors Change 3150367 on 2016/10/04 by Daniel.Lamb Removed caching of cooked platform data from postload. #test cook paragon Change 3150368 on 2016/10/04 by Daniel.Lamb Added new setting to reserve the maximum amount of memory to leave free for the cooker.. Change 3151091 on 2016/10/04 by Nick.Shin upgrade emsdk toolchain to "tag-1.36.11" (along with updates to make scripts) #jira UEPLAT-890 - HTML5 Multithreading #jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors Change 3151205 on 2016/10/04 by Daniel.Lamb HasShaderJobs now includes the PendingFinalizedShadermaps in it's check #test cook paragon. Change 3151501 on 2016/10/05 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix memory usage in PS4 crash handler server. - The ORTMAPI com object implements a Dispose method which we we're calling, so the object was leaked until it eventually gets GC'd. - Whilst that object is alive, the orbis-debugserver-x64.exe process stays alive, using up to 2GB memory per instance. - Also limited the server to processing a single crash dump at once, via a task queue. Change 3151608 on 2016/10/05 by Nick.Shin fix CIS build warnings and errors this is for HTML5 platform Change 3151851 on 2016/10/05 by Michael.Trepka Added DesktopRect and WorkArea to FMonitorInfo for desktop platforms and used that to fix an issue in SceneViewport where windowed fullscreen mode would be forced to primary monitor and incorrectly positioned on desktops where a taskbar/dock/etc. was on the left #jira FORT-30638 Change 3152085 on 2016/10/05 by Josh.Adams - Fixing some Wolf Launcher things (icon, string) Change 3152451 on 2016/10/05 by Daniel.Lamb Enabled logging to help debug shader compiler issue. #test Cook Paragon. Change 3152880 on 2016/10/05 by Dmitry.Rekman Linux: add support for new multiarch toolchain. - Redoing the change as submitted to Dev-Mobile. Change 3152957 on 2016/10/05 by Dmitry.Rekman Linux: fix crosstoolchain for non-AutoSDKs case. - Redoing the fix for UE-36899 from Dev-Mobile. Change 3153109 on 2016/10/06 by Keith.Judge Remove D3D11_RESOURCE_MISC_SHARED from XB1 D3D11.x RHI as it is invalid. Change 3153176 on 2016/10/06 by Keith.Judge Xbox One - Disable engine analytics on XB1 shipping games, as per XRs. Verified http requests from devkit with Fiddler. Change 3153213 on 2016/10/06 by Keith.Judge Xbox One - Plug small memory leak in the movie player. Change 3153258 on 2016/10/06 by Josh.Adams - Moved Wolf OSS to proper location for Online plugins Change 3153450 on 2016/10/06 by Josh.Adams wolf net driver class stub Change 3153451 on 2016/10/06 by Josh.Adams - Fixed more Wolf OSS errors without special sdk Change 3153471 on 2016/10/06 by Dmitry.Rekman Linux: fix always rebuilding FixDeps. Change 3153472 on 2016/10/06 by Josh.Adams - Deleting some old test files Change 3153535 on 2016/10/06 by Josh.Adams - And... fixed some build errors again with the special sdk Change 3153819 on 2016/10/06 by Daniel.Lamb Remove some dead code in the cook on the fly server. #test Cook QAGame Change 3154050 on 2016/10/06 by Dmitry.Rekman Linux: remove some of the clang 3.9.0 warnings. - Add missing destructors. - Deal with defined() being undefined in a #define. - Prevent casting nullptr to reference (or suppress that warning for third party code). - Case sensitivity fixes. - Make deoptimization work properly. - Code still crashes when compiling some of the editor targets. Change 3154071 on 2016/10/06 by Josh.Adams - Fixed an issue with Wolf shader compiler optimizing out global array - Fixed Windows display internal thing Change 3154567 on 2016/10/07 by Luke.Thatcher [PLATFORM] [PS4] [!] Hack fix for PS4 crash handler site leaking sony debug server processes. - Find and kill the process after each task Change 3154570 on 2016/10/07 by Keith.Judge Fix crash when run with -nolive. Unititialized member fix. Change 3154572 on 2016/10/07 by Keith.Judge Xbox One - Small optimization I did a while ago for Paragon and forgot to submit. Removed the SRV dynamic/static distinction in the state cache and calling code, as it makes no difference since fast semantics. Change 3154656 on 2016/10/07 by Dmitry.Rekman Linux: make Test configuration drop core by default. Change 3154789 on 2016/10/07 by Dmitry.Rekman Linux: remove multiple instances of target platform device. Change 3154957 on 2016/10/07 by Joe.Graf Changed additional plugin directories for project descriptors to be absolute in memory and path relative on disk Change 3155298 on 2016/10/07 by Dmitry.Rekman Fix CIS (LinuxTargetDevice not linking). Change 3155684 on 2016/10/07 by Josh.Adams - Added -PulseC option for Quickmatch Change 3155691 on 2016/10/07 by Josh.Adams - New Wolf NetDriver for P2P sockets. Not working yet - OSS is _not_ currently usable, for reference Change 3155750 on 2016/10/07 by Dmitry.Rekman Linux: fix UT server build (UE-37042). Change 3156816 on 2016/10/10 by Josh.Adams - Fixed compile errors wihtout extra SDK bits Change 3156872 on 2016/10/10 by Keith.Judge Xbox One - Fix corrupted screenshots. Needed a GPU/CPU sync point, which legacy D3D11.x used to do for us, but now we have to do manually. #jira UE-37038 Change 3156936 on 2016/10/10 by Josh.Adams - Backed out changes from files that got pulled into a changelist by mistake Change 3157602 on 2016/10/10 by Josh.Adams - FIxed Wolf crash on level quit (at least in ShooterGame) Change 3157676 on 2016/10/10 by Josh.Adams - Fixed Wolf audio playback in latest SDK Change 3158544 on 2016/10/11 by Josh.Adams - Disabled one of the Wolf file mount points in Debug builds due to SDK bug Change 3158603 on 2016/10/11 by Josh.Adams - FIxed type in non-Debug Change 3159257 on 2016/10/11 by Dmitry.Rekman Linux: case-sensitive fixes. Change 3159537 on 2016/10/12 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix leaking orbis-dbgserver-x64 processes in PS4 crash handler. - We needed to call Marshal.ReleaseComObject on the CoreFileAPI object to shut down the child processes. - Disabled the kill process hack. [!] Also fixed "Unknown" usernames in PS4 crash dumps. - Sony had changed the format of the PS4 settings file in system software 4.008.071. [!] Fixed exception getting modules from crash dump when symbols have not been loaded. - Just skipping this step now, as it was only used for logging. Change 3159581 on 2016/10/12 by Joe.Conley Wolf support for TPri_Lowest was missing, so I added that and the corresponding WolfThreadPriority_Lowest Change 3159749 on 2016/10/12 by Luke.Thatcher [PLATFORM] [PS4] [~] Re-enable kill process hack in PS4 crash server. The ReleaseComObject fix hasn't solved the leaking processes on the server. Change 3160336 on 2016/10/12 by Daniel.Lamb Fix for skip editor content flag being passed throught o UAT. #jira UE-37223 Change 3160341 on 2016/10/12 by Dmitry.Rekman Linux: fixes for Fortnite and Orion editors. - Also, again disable XGE because clang 3.9.0-based toolchain crashes when compiling those with XGE. Change 3160473 on 2016/10/12 by Nick.Shin remove old emsdk Change 3160528 on 2016/10/12 by Michael.Trepka Copy of CL 3160314 from //Fortnite/Main Fixed incorrect rect initialization in Mac GetDisplayMetrics Change 3160591 on 2016/10/12 by Josh.Adams - Fixed wolf coimpiling without stats #jira UE-37230 Change 3160866 on 2016/10/12 by Dmitry.Rekman OpenGL: fix swapped arguments. - Cengiz noticed this while working on one of bugs. Change 3160978 on 2016/10/12 by Josh.Adams - Fixed issue with running out of Wolf audio pools on large games Change 3160979 on 2016/10/12 by Josh.Adams - Enabled Curl HTTP on Wolf, along with basic SSL (no local cert importing yet) Change 3161025 on 2016/10/12 by Dmitry.Rekman Disable poison proxy. - Malloc::GetAllocationSize() may not account for alignment for mallocs like Binned and Binned2, resulting in a memory stomp. Change 3161034 on 2016/10/12 by Josh.Adams -Wolf Http changes - load .pem files if they exist (although they aren't being staged automatically yet) - Added network pause to make sure its ready before we Http Change 3161046 on 2016/10/12 by Dmitry.Rekman TestPAL: adding a test for Malloc::GetAllocationSize(). Change 3161212 on 2016/10/13 by Dan.Mahashin - Upgraded to new NXCP API. Confirmed to run ok with SunTemple on 0.11.2 SDK. Change 3161624 on 2016/10/13 by Josh.Adams - Fixed MAX_PATH usage, should be PLATFORM_MAX_FILEPATH_LENGTH Change 3161639 on 2016/10/13 by Josh.Adams - Added curl to main Wolf build since now it's used not just with OSS Change 3161737 on 2016/10/13 by Josh.Adams - Added support for staging .pem files for SSL peer verification Change 3161923 on 2016/10/13 by Dmitry.Rekman Linux: provide choice between RTLD_GLOBAL/LOCAL when opening DSOs (UE-36716). - By default, Unreal modules will be opened with RTLD_LOCAL (so the hot reload has a chance to work). - However, if "ue4_module_options" symbol is exported (a string with comma-separated options), and "linux_global_symbols" is present in that string, RTLD_LAZY will be used. - DSOs that don't have either ue4_module_options nor are recognized as UE4 modules will be loaded RTLD_GLOBAL. - PR #2823 by 20tab. Change 3163532 on 2016/10/14 by Michael.Trepka Copy of CL 3162466 By default, do not compile Mac OpenGL and Metal SM4 shaders while cooking #jira UE-37088 Change 3163550 on 2016/10/14 by Josh.Stoddard Fix key event processing during movies using FDefaultGameMoviePlayer #jira UE-37294 Change 3163687 on 2016/10/14 by Josh.Adams - Added a workaround for Wolf crashing inside vswprintf with %p Change 3163693 on 2016/10/14 by Josh.Adams - Added a delegate for getting extra on-screen messages (like the Shaders to compile, etc). Change 3163725 on 2016/10/14 by Josh.Adams - Added high level Wolf network transition functions for Wolf Change 3163745 on 2016/10/14 by Josh.Adams - Wolf OSS changes for new high level networking logic, cleaned up includes, added on screen messages with status Change 3164455 on 2016/10/17 by Josh.Adams - SOmehow a file wasn't checked out, but writable. Checking in now Change 3164630 on 2016/10/17 by Michael.Trepka Copy of CL 3162062 Replaced FWindowsCursor hack for warping the mouse cursor to the center of the viewport with a better fix for the original problem (users being able to resize the window while the cursor is hidden and the mouse controls the camera). This change removes round window corners in borderless window mode and disables window resizing when the cursor is hidden. Change 3164975 on 2016/10/17 by Joe.Graf Changed the New Plugin Wizard to only show plugin types available for that project type (content only or code) Change 3165213 on 2016/10/17 by Josh.Adams - Fixed some perf testing by disabling the startup benchmark for UT on non-desktop platforms Change 3165576 on 2016/10/18 by Dan.Mahashin - Fix broken colors in QAGame UE-37197: depth write cannot work without depth test being enabled. Change 3165809 on 2016/10/18 by Josh.Stoddard Enforce UMaterialExpressionActorPositionWS dependency on primitive uniform buffer #jira UE-37425 #rb chris.bunner Change 3165948 on 2016/10/18 by Owen.Stupka Fix exception when creating an exception to say we don't have a 32-bit VC compiler installed. Change 3166330 on 2016/10/18 by Dmitry.Rekman Linux: disable XGE on Windows (UE-37446). - XGE does not seem to handle new clang 3.9.0 toolchain well, with very reproducible crashes. Change 3166456 on 2016/10/18 by Dmitry.Rekman Fix build breakage with clang 3.8.1. - always_inline was still applied to debug builds and as such was ignored. Change 3166457 on 2016/10/18 by Chris.Babcock Add missing MultiviewOVR functions for Android deferred #jira UE-37401 #ue4 #android Change 3166469 on 2016/10/18 by Dmitry.Rekman Linux: make target platform modules independent (UE-37370). - Module load order is different for target platform modules between UE4Editor and UE4Editor-Cmd, and dependent modules may end up being loaded first. Change 3166755 on 2016/10/18 by Joe.Barnes [UE-35552] Enable PLATFORM_ENABLE_VECTORINTRINSICS_NEON on Wolf. Change 3166757 on 2016/10/18 by Joe.Barnes [UE-35552] Optimized platform specific implementation of some common math functions. Change 3166761 on 2016/10/18 by Joe.Barnes Use new 64 bit Power of 2 function. Change 3167865 on 2016/10/19 by Josh.Adams - Wolf P2P/NAT stuff working! - Minor Wolf net mode fixes Change 3167869 on 2016/10/19 by Josh.Adams - Moved a blocking net call for Wolf Http into a thread Change 3168100 on 2016/10/19 by Joe.Barnes #include <NVN/nvn_CppMethods.h>. Fixes a compiler problem with some inline functions not being available during compile phase. Change 3168101 on 2016/10/19 by Joe.Barnes Exposed a function to create a platform based filename Change 3168141 on 2016/10/19 by Dmitry.Rekman TestPAL: better test for allocation sizes. Change 3168144 on 2016/10/19 by Dmitry.Rekman Fix for FMallocBinned::GetAllocationSize() for aligned allocations. Redoing SteveR's fix in 4.13/4.14. Copied from CL# 3165739. #jira UE-37249 #jira UE-37243 Change 3168213 on 2016/10/19 by Josh.Adams - Wolf OSS function rename Change 3168313 on 2016/10/19 by Josh.Adams Rename/move file(s) Change 3168691 on 2016/10/20 by Dan.Mahashin - Fixed application teardown and memory leak: - NVNCommandContext was failing to free the last frame resources on shutdown (resources were thought to be in use because never actually processed by GPU) - NVNCommandContext was leaking a FSyncedFrameDestruction at each frame - NVNTempBlockManager was not freeing all of its temp blocks upon shutdown Change 3168986 on 2016/10/20 by Josh.Adams - Removed some log spam Change 3168990 on 2016/10/20 by Josh.Adams - Removed dead code Change 3169091 on 2016/10/20 by Josh.Adams Moved UT's OnlineGameplayFramework plugin into NotForLicensees so licensees don't need Mcp Change 3169262 on 2016/10/20 by Josh.Adams - Updated the OnScreenMessages to use a TMap of severity to message, so we can have multiple colors, etc - Also has some fixes needed from a merge down (oops) Change 3169363 on 2016/10/20 by Dmitry.Rekman TestPAL: final synth test for stomp. Change 3169436 on 2016/10/20 by Michael.Trepka Change the minimum supported macOS version setting in Info.plists to 10.11.6 Change 3169510 on 2016/10/20 by Dmitry.Rekman TestPAL: added stomp test with poison proxy. Change 3169972 on 2016/10/20 by Dmitry.Rekman Re-enable PoisonProxy. Change 3170000 on 2016/10/20 by Dmitry.Rekman Linux: minor code cleanup. Change 3170400 on 2016/10/21 by Josh.Adams - Added a comment with current supported SDK in UEBuildWolf.cs Change 3170929 on 2016/10/21 by Josh.Adams - Added generic Elf symbol parser to MemoryProfiler2 app. It uses nm.exe, and any platform that uses it would need to subclass it (which Wolf now does) Change 3171266 on 2016/10/21 by Dmitry.Rekman Linux: fix Setup.sh on Ubuntu 16.10 (UE-37621) Change 3172847 on 2016/10/24 by Josh.Adams - Added a null Material check to the recent change to UMaterialExpressionActorPositionWS #jira UE-37730 Change 3173535 on 2016/10/25 by Josh.Adams - Helping clean up some misplaced files, since obliterate caused problems with BulletProofSync [CL 3174242 by Josh Adams in Main branch]
2016-10-25 18:15:13 -04:00
{
PrivateDependencyModuleNames.AddRange(
new string[] {
"Sockets",
}
);
if (bPlatformSupportsLibCurl && !bPlatformSupportsXCurl)
{
AddEngineThirdPartyPrivateStaticDependencies(Target, "libcurl");
PublicDefinitions.Add("CURL_ENABLE_DEBUG_CALLBACK=1");
if (Target.Configuration != UnrealTargetConfiguration.Shipping)
{
PublicDefinitions.Add("CURL_ENABLE_NO_TIMEOUTS_OPTION=1");
}
}
}
PrivateDefinitions.Add("WITH_CURL_LIBCURL =" + (bPlatformSupportsLibCurl ? "1" : "0"));
PrivateDefinitions.Add("WITH_CURL_XCURL=" + (bPlatformSupportsXCurl ? "1" : "0"));
PrivateDefinitions.Add("WITH_CURL= " + ((bPlatformSupportsLibCurl || bPlatformSupportsXCurl) ? "1" : "0"));
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
// Use Curl over WinHttp on platforms that support it (until WinHttp client security is in a good place at the least)
if (bPlatformSupportsWinHttp)
Merging from //UE4/Fortnite-Staging up to CL#3673800 based on CL#3664064 from //Fortnite/Main #rb none #lockdown Nick.Penwarden ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS AND/OR RESTRICTED FOLDERS. YOU MUST REVIEW THESE MANUALLY AND APPEND THEM TO THE DESCRIPTIONS FOR THE APPROPRIATE PLATFORMS. ================================================================================================= Change 3662267 by Nick.Darnell Engine - Fixing a bug in GetAccurateRealTime, it wasn't subtracting GStartTime, which if you don't prevents accurate platform time when you try to store it in a float. #jira nojira Change 3662176 by Ben.Marsh Disable image integrity report generation if a debugger is attached, and in editor builds. #jira FORT-55656 Change 3656958 by Luke.Thatcher [FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame. - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe. - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency. Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup. A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index. In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread. [~] Unified platform specific sync interval CVars (D3D12.SyncInterval, D3D11.SyncInterval, r.PS4FlipRate, RHI.SyncIntervalOgl) into one: rhi.SyncInterval - 1 == 60Hz - 2 == 30Hz - 3 == 20Hz [-] Removed large number in XboxOneTime. Adding this arbitrary number prevents us from comparing timestamps from FPlatformTime::Seconds() and various OS callbacks (e.g. flip timings). #jira FORT-50803 Change 3655598 by Lukasz.Furman added filtering for navmesh's low height spans to fix crash on layer partitioning % of span reductions depends on presence of stair or roof building in navmesh tile, changed failsafes in layer code to ignore entire tile if heightfield is too complex to partition instead of reallocating memory #jira FORT-35375 Change 3648972 by Keith.Judge Add analytics to help diagnose default parameter collection buffer issue. +++ REMOVE ONCE CORE ISSUE IS SOLVED +++ #jira FORT-54690 Change 3648756 by Bart.Hawthorne Integrate 3645298 from //UE4/Dev-Networking Deprecate GetNetworkObjectInfo in favor of separate FindNetworkObjectInfo and FindOrCreateNetworkObjectInfo methods. #jira none Change 3643090 by Josh.Markiewicz #UE4 - proper handling of "pending connection lost" - triggered only if a connection is lost and there no "owning actor" to deal with the connection loss -- added Rejoin and CleanedUp states to connection to make sure that the pending connection lost delegate only fires at the appropriate time - delegate returns the unique id of the player if known (still possible to be unknown if connection lost after NMT_Hello) - changed debug output on timeout if the net connection was already in the process of being destroyed -- occurs when game hitches during the pending destroy 2 second wait -- ReceivedAcks should have been called to clean things up quietly in those 2 seconds but blocking the game thread will cause the cleanup to look like a timeout - added userid to UNetConnection::Describe - bad split screen player handling of unique id -- splitscreen uniqueid was overwriting the primary player id -- only store the id on the child connection - added some clarifying comments #review-3642816 @ryan.gerleve, @bob.tellez, @sam.zamani, @bart.hawthorne, @dave.ratti #jira FORT-26776 Change 3639043 by Alex.Thurman Fix CommonTreeView SetSelection to correctly update list navigation, and behave similarly to CommonListView's SetSelectedItem. #JIRA FORT-45841 Change 3632275 by Seth.Weedin #JIRA FORT-54203 - Add clamps to ActiveSound fade interpolation to prevent unwanted volume spikes. Remove 0.01 start time for single-fire audio cues. Should remove the sudden pops sometimes heard when firing weapons, as well as smooth out fade volume in general. Change 3626944 by Josh.Markiewicz #UE4 - added "updates connection status" flag to ServiceConfigMCP - disable updates on Cloud and Friend services (Fortnite only) - removed overloaded ProcessConnectionStatus function in cloud service #jira FORT-53113 Change 3626226 by Stewart.Lynch LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * added separate LLM enums for XB1, PS4 and D3D12 (PS4LLM.cpp/h etc.) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum * fixed program size stat which was broken recently on PS4. This was due to initialisation order and global platform stats setup #jira NONE-01 Change 3622978 by Lukasz.Furman changed WeaponStatus BT decorator to be event driven, fixes AI trying to check ranged weapon abilities without valid weapon includes copy of CL# 3620700 #jira FORT-45914 #review-3622979 John.Abercrombie Change 3622340 by Josh.Markiewicz #UE4 - playerid netconnection variable setup properly on clients and servers for both beacons and game net drivers - ipconnection prints uniqueid with lowleveldescribe #jira fort-0 Change 3621386 by Tim.Tillotson Add the ability to retry HTTP operations by VERB. This allows us to automatically retry cloud save PUT operations. #JIRA FORT-53717 #review-3621317 @Josh.Markiewicz @Ian.Fox @Carlos.Cuello Change 3620517 by Keith.Judge Xbox One - Revert iOS behaviour for the depth bias back to how it was, and make separate XB1 change use its own define to avoid confusion. #jira FORT-53928 Change 3620248 by Lukasz.Furman changed behavior of UBTTask_MoveTo.bStopOnOverlap flag after recent AcceptanceRadius fix, updated comments to be more detailed #jira nojira Change 3616187 by Bob.Tellez #UE4 Throwing an error (for now) if you attempt to use both the malloc profiler and leak detection at the same time since it causes a deadlock. #JIRA UE-0 Change 3613935 by Peter.Knepley More logging on update launcher launching #jira nojira #robomerge rp rn Change 3613537 by Marcus.Wassmer Safety asserts around the MarkPendingKill feature for rendering classes. #jira FORT-50385 Change 3613399 by Arne.Schober Extended ShowMaterialDrawEvents to enable it only in very specific passes and default enabled Depth for Fortnite on PS4 to track down a crash. #RB Marcus.Wassmer #jira FORT-53610 Change 3610794 by robomerge #ROBOMERGE-AUTHOR: marc.audy Reduce UMG class memory #jira UE-52043 #ROBOMERGE-SOURCE: CL 3610792 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3610144 by Stewart.Lynch General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * made IsDebugMemoryEnabled() always return false in shipping and if not runnong on a dev-kit (PS4). The reason is that the function is a bit hacky, and should only be used for debug purposes, such as displaying the on screen warning. * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llmplatform tracking for XBoxSymbols * added llm tracking for CPU symbol allocations (20MB) * wrote an allocator for XBoxOneStack reading so that it doesn't go through Malloc and get tracked by LLM. * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio #jira FORT-53420 Change 3610136 by robomerge #ROBOMERGE-AUTHOR: marc.audy Reduce size of UStaticMeshComponent by 224 bytes (cumulative, 64 bytes exclusive) Reduce size of UPrimitiveComponent by 176 bytes (cumulative, 64 bytes exclusive). Reduce size of USceneComponent by 112 bytes. Reduce size of FLightingChannels from 3 bytes to 1. Reduce size of FBodyInstance by 16 bytes. #jira FORT-52043 #ROBOMERGE-SOURCE: CL 3610134 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3607937 by robomerge #ROBOMERGE-AUTHOR: paul.moore #jira FORT-53105 - Fix websocket not providing information when the peer closes the connection. #ROBOMERGE-SOURCE: CL 3607933 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3607042 by Bart.Hawthorne Move replay.Loop functionality into the demo net driver and rename it demo.Loop #jira none Change 3605448 by robomerge #ROBOMERGE-AUTHOR: seth.weedin #Athena - Pass owner to ActiveSounds created using PlaySoundAtLocation/PlaySound2D to allow "Limit to Owner" concurrency rules to work. Hook up for weapon sounds. #JIRA FORT-53180 #ROBOMERGE-SOURCE: CL 3605443 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3604787 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Initial support for hotfixing live assets from .ini files - This allows clients and server to patch certain assets in memory whenever .ini file hotfixes are downloaded - Only CurveTables and DataTables are supported for now - The new asset content must be in Json format, the same format the editor uses for importing - Assets that are hotfixed will be synchronously loaded if they're not already in memory. They'll be retained in memory afterwards. - IMPORTANT: Json data must be supplied on a single line, and all double quotes must be escaped! - The changes must go in the Game.ini file and use the following syntax: [AssetHotfix] +CurveTable=("/Game/Folder/MyCurveTable","[{\"Name\":\"Default\"}]") +DataTable=("/Game/Folder2/MyDataTable","[{\"Name\":\"Foo\"}]") #jira FORT-52099 [CODEREVIEW] frank.gigliotti [FYI] peter.knepley,bob.tellez #ROBOMERGE-SOURCE: CL 3604784 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3602067 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Loading time improvements - This shaves off up to 10 seconds of load time on PS4 in Athena Details: - Fixed multiple sub-levels not being able to be enqueued for loading in a single client frame. Athena has ~300 sub-levels, so this ended up wasting up many seconds. - Fixed 3D world being rendered while loading (frees up game thread cycles for throttled streaming) - UWorld::AllowLevelLoadRequests() was not allowing load requests to go through while an async load was in progress and the match had started. It now allows this as long as the world isn't being rendered (loading screen.) - Eliminated extra 2 second delay before loading screen is dismissed (in Athena only) - Note: A side effect of this change is that the progress bar may not update as smoothly on loading screen. We'll look at tuning the throttle settings if it ends up being a problem. [CODEREVIEW] ori.cohen #jira AT-1477 #ROBOMERGE-SOURCE: CL 3602061 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3601951 by Luke.Thatcher [FORTNITE] [PS4] [!] Fix memory stats in the old PS4 memory system - Physical memory stat now includes garlic and onion allocations. CPU OOMs will result in "AvailablePhysical" being close to 0. - Added garlic, onion and defrag stats to the platform memory stats struct. - Added fixed pool sizes to platform memory stats. - Modified the Fortnite heartbeat logging to include extra details of PS4 fixed sized pools. #jira FORT-52910 Change 3600340 by robomerge #ROBOMERGE-AUTHOR: wes.hunt All Fort analytics events now contain a GameState attribute indicating the active GameState ClassName when the event is sent. Added some new context to crashreporter to help identify Athena matches near and long term. * Near Term: GameNameSuffix - set via FCoreDelegates::CrashOverrideParamsChanged * Added bools to the params to indicate WHICH ones are changing * Allows you to set only some values, and clear them out. * Hooked up in FortGameState::PostInitializeComponents. * FortGameState clears it (for returning to main menu). * FortGameStateAthena sets it (for going into an Athena match). * Only does this when it's a true GameMode GameState instance (ie, not PIE) so PIE crashes aren't modified. * Long Term: GameStateName - set via FCoreDelegates::GameStateClassChanged. * This works for ANY crash on ANY game. * Hooked up in GameState::HandleMatchIsWaitingToStart. #jira AT-1457 #jira AT-519 [CODEREVIEW] peter.knepley,josh.markiewicz #ROBOMERGE-SOURCE: CL 3600278 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3597593 by Ben.Zeigler #jira FORT-50722 Fix issues where AssetBundles weren't being correctly updated during cook, which is blocking both Noland and Abercrombie Partial copy of CL #3402335 and #3526538 #robomerge rp, rn Change 3597577 by Luke.Thatcher [FORTNITE] [PS4] [~] Modified the way memory is allocated on Playstation to make more memory available to the CPU. - Previously the amount of texture memory wasn╞t fixed due to the way the defrag memory is allocated on PS4. This meant we had to have a significant amount of slack. - With the new configuration, we have a guaranteed texture memory pool, so the slack can be significantly smaller, meaning we can give more memory to the CPU, which is where most of our memory pressure is. #jira FORT-50825 #jira FORT-49688 #jira FORT-49695 #jira FORT-50054 Change 3596556 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Enable GC clustering for actors and blueprints in Fortnite - This shaves off about 10 ms on GC frames in Athena on PS4 (~52 ms -> 42 ms) - Clustering doesn't work on building actors because they're very dynamic, but general Fort static meshes and blueprints are clustered! - This gets us into the realm of shippability on console for very large UObject counts [FYI] bob.tellez,peter.knepley,michael.noland #jira AT-1440 #ROBOMERGE-SOURCE: CL 3596552 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3593994 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Force largest distance field atlas size in Athena - We now force the largest distance field atlas size before preloading Athena content (512x512x1024 = 256 MB). This helps with load times because it's expensive to re-create this texture on consoles, and typically it gets resized over a dozen times. - Added new CVar "r.DistanceFields.ForceMaxAtlasSize" (defaults to zero) - Important: Currently we never "reset" this atlas texture. This will be a problem when going back to play Campaigns after preloading to play Athena. I will look into this soon! [CODEREVIEW] peter.knepley,marcus.wassmer,michael.noland,daniel.wright #jira AT-1477 #ROBOMERGE-SOURCE: CL 3593992 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3592096 by robomerge #ROBOMERGE-AUTHOR: ben.salem Prototype of gauntlet memory soak test. Not fully fiinished, but want changes in tonight's cook so we can experiment on cooked build tomorrow morning. #jira FORT-0 #ROBOMERGE-SOURCE: CL 3592025 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3592085 by robomerge #ROBOMERGE-AUTHOR: mike.fricker HLOD: Added support for a fixed distance override via CVar - Use this to force all HLODs to transition at a specific distance, regardless of their TransitionSize/MinDrawDistance/LODDrawDistance - New CVar: r.HLOD.DistanceOverride (defaults to 0) - Fortnite uses 350m for this distance, fornow [CODEREVIEW] jurre.debaare #jira AT-1462 #ROBOMERGE-SOURCE: CL 3591929 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3587391 by Michael.Noland Fortnite: Lots of memory tracking stuff - Added memory logging to game state transitions and overall health tracking for the entire session - Added support for Gauntlet-based tests to Fortnite - Enabled the Gauntlet plugin (and fixed spaces instead of tabs in the .uproject file) - Added code to set gauntlet state based on the current subclass of AFortGameState - Added a base controller and a memory report controller (WIP, ported from equivalents in Paragon) - Updated FortniteClient to use MALLOC_LEAKDETECTION=1, PLATFORM_USES_FIXED_GMalloc_CLASS=0, and AllowASLRInShipping=false in Development builds (may enable them in Test builds in a future CL, to match Paragon) #jira FORT-50567 Change 3583307 by Peter.Knepley Need non-jittered ViewToClip matrix in order to do "after tonemapper" postprocess blendable material that's positioned in view space Modify the AttachScope material function to use "ViewSpaceTransformToClipSpace" instead of going back to world space first. This also means it can utilitize the ViewToClipNoAA matrix. #jira AT-733 Change 3582378 by Luke.Thatcher [FORTNITE] [~] Unify Xbox and PS4 scalability settings and device profiles. - All Xbox and PS4 r. CVars are overriden in their platform's Scalability.ini file. The device profile only selects sg. groups. - Fixed the Neo 4K profile for Fortnite. Previously players with 4K monitors would choose the Neo_4K profile, which looks worse than Neo, but still renders at 1080p. - Console specific settings have to live in the Base/Default .ini's, as the cooker doesn't load the console specific files. This is fixed in UE4 Main. #jira FORT-50206 Change 3580934 by Luke.Thatcher [FORTNITE] [PS4] [+] Support different garlic and onion heap sizes in the old memory system for base and neo. - Neo has 512 MB more direct memory than a base kit. - Increased the garlic heap size by 416 MB on Neo, and CPU heap by 96 MB. #jira FORT-50206 Change 3576664 by Bart.Hawthorne Re-enable Oodle and add Mac implementation. Also includes fixed oodle libraries by MichaelT. #jira FORT-49986 #tests Connected to PC server with editor -game build on Mac in Athena Change 3575671 by Nick.Darnell Athena - The gameplay ability system now supports adding Gameplay Cue's with params. Now using cues instead of gameplay effects in order to notify when the bandaging/shielding begin and end. THe new method should properly show and disappear on time, b/c it's all client side. Added a way in the Athena Context to easily hook gameplay "UI" cues that are rebroadcast from the Athena Pawn. #jira AT-644 Change 3575534 by Peter.Knepley Ability montage replication optimizations #jira AT-955 Change 3573305 by Lukasz.Furman disabled path section update when crowd simulated AI is moving through navlink, fixed AI getting stuck in some corners #jira FORT-49748 Change 3566775 by John.Abercrombie Optimizations from Dev-Athena - Tested with PIE & and 2 Player local server game #ue4-athena - (merge CLs 3345771 and 3363030 from Framework) - Refactored CharacterMovementComponent determination of net send rate when combining moves into a virtual function GetClientNetSendDeltaTime(). Added configurable values to GameNetworkManager under [/Script/Engine.GameNetworkManager]. For Fortnite, set unthrottled (<= 10 player) limit to 60Hz (from 90Hz), and trying throttled at 30Hz (from 45Hz). #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545535 by Zak.Middleton on 2017/07/19 20:15:17. #ue4-athena - (merge CL 3377054 from Framework) - Fix CharacterMovementComponent updated with very high delta time on server when initially joining. Make sure the ServerTimeStamp is initialized to current world time rather than zero to prevent large delta. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545452 by Zak.Middleton on 2017/07/19 18:57:45. #athena - If network smoothing mode is not linear, don't replicate ReplicatedServerLastTransformUpdateTimeStamp. Only AI use linear smoothing in FN. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545559 by Zak.Middleton on 2017/07/19 20:47:18. #ue4-athena - Converted all RPCs on UCharacterMovementComponent to be on ACharacter instead, to avoid the bandwidth overhead of calling RPCs on a component. Existing overrides of _Implementation and _Validate functions should remain unchanged. If for some reason someone overrode the old RPC virtuals, those are now non-virtual on UCharacterMovementComponent but are still virtual on ACharacter. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3557564 by Zak.Middleton on 2017/07/26 20:13:43. #ue4-athena - Throttle character movement server corrections and acks to the client based on time since last adjustment. Cuts down on network traffic for character movement. Added configurable settings to control this. Set times to zero to disable this. - NetworkMinTimeBetweenClientAckGoodMove - NetworkMinTimeBetweenClientAdjustments - NetworkMinTimeBetweenClientAdjustmentsLargeCorrection - NetworkLargeClientCorrectionDistance #ue4-athena - Perf: (EditMerge CL 3492200 from Dev-Framework): Always reset the input array in AActor::GetComponents(), but do so without affecting allocated size. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561669 by Zak.Middleton on 2017/07/28 14:16:19. #ue4-athena - Perf: (EditMerge CL 3468253 from Dev-AnimPhys): Remove the need for calling constructors for physx PxRaycastHit in the dynamic hit result buffer. Saves 30% of the cost of doing small raycasts. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561672 by Zak.Middleton on 2017/07/28 14:17:12. #ue4-athena - Perf: (EditMerge CL 3359553 from Dev-Framework): Optimization in CharacterMovement tick to not extract transform values twice. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561674 by Zak.Middleton on 2017/07/28 14:18:04. #ue4-athena - Perf: (EditMerge CL 3426174 from Dev-Framework): Avoid call to virtual getSimulationFilterData() to only use it when needed in PreFilter if we actually have items in the IgnoreComponents list (which is rare). The sim filter data 'word2' stores the component ID. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561709 by Zak.Middleton on 2017/07/28 14:32:11. #ue4-athena - Perf: (EditMerge CL 3382054 from Dev-Framework): Optimize CharacterMovementComponent::GetPredictionData_Client_Character() and GetPredictionData_Server_Character() to remove virtual calls. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561856 by Zak.Middleton on 2017/07/28 15:11:57. #ue4-athena - Use less bandwidth for CharacterMovement RPCs when the character is not standing on any component (ie during jumps and falling). Added separate "...NoBase()" versions of ServerMove() and ServerMoveDual(). Undid part of 3557564 and restored the CMC functions to be virtual, and removed virtual keyword from matching Character functions, so that overrides are in one consistent place. Also guarantees backwards compat for licensees. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3564858 by Zak.Middleton on 2017/07/31 15:24:39. #jira Fort-1 Change 3562825 by Chris.Gagnon Added CommonCustomNavigation Widget, this widget can be used to capture navigation requests to handle in custom ways. #jira FORT-0 Change 3562098 by Josh.Markiewicz #UE4 Encryption token/ack changes - moved encryption token request/ack to delegates - moved FNetworkNotify to NetworkDelegates.h - moved connection logic out of GameInstance and back into networking code -- GameInstance sends an enum and the network code does the right thing based on that #review-3559694 @ryan.gerleve #tests PC dedicated server connections golden path and forced failures #jira FORT-0 Change 3559354 by Luke.Thatcher [FORTNITE] [PS4] [^] Merging (as edit) support for setting flip rate on PS4 (CLs 3555687 and 3558843) from //Fortnite/Dev-Athena/... to //Fortnite/Main/... - Allowed rates are now 60Hz, 30Hz and 20Hz. - Exposed by r.PS4FlipRate CVar, set to 60Hz by default. Requires r.Vsync 1. #jira FORT-49463 Change 3532644 by Jeff.Campeau Fix mapping current culture to movie audio channels using data table to map languages to track indices. Don't rewind cinematics (they all start from the begining because we load them and play them once). Seeks cause us to have to redecode video frames at a large perf cost. Delay cutscene playback by 0.5 seconds to give us time to build up a buffer of decoded video. (Temporary workaround for audio/video sync). Generic implementation for getting current languages in BP. Fix more issues with calling into media source functionality when using the source reader (potential hangs). #jira FORT-44376,FORT-48209,FORT-48040 #testedon Preflight from last night combined with Bob's changes from today clear all known issues. This change tested on Xbox and PC multiple times each. Change 3527761 by Chris.Gagnon Fixed various issues in the widget switcher, also added Advanced calls that allow the user to specify if activation/deactivation should occur. #jira FORT-47988, FORT-47984 Change 3525390 by Jeff.Campeau Remove media player log spam #jira FORT-47393 #testedon compiled client Change 3518692 by Chris.Gagnon Added CleanOperation Adding which will remove unneeded op combinations from the op queue. Also added the ability to suspend starting operation queue processing to allow complex operations to accumulate and in turn allow the Clean Op adding code to be effective. GameFeedback, and the widget switcer utilize this to avoid unnesacary activations of a screen that is immediately being deactivated. Root issue of the mentioned bug is that activation of the quest screen created a latent navigation du to the deferal of scrolling into view. This is still an issue in general, there isn't much we can do about it. Other than avoid activating a panel that will deactivated that frame as we did with the code changes in this CL. #jira FORT-47395 Change 3514658 by Jeff.Campeau Fixed a media player threading issue where the OnMediaOpened event could be called before the media Init script completed. Moved the event Cinematic used when setting up and playing media after media file load to use a delayed event from the MovieWidget so that it will always happen after the movie widget processing. Fixed an issue that could cause samples to leak in MfMedia plugin and cause ReadSample to lockup. Fixed an issue where a default texture is displayed for movies before the movie starts playing (the player may be active before the first frame of the video is decoded). Default is now all black as it is expected that this texture will be displayed for several frames. #jira FORT-46801 #testedon Xbox through rocket launch cinematic including vintertip for stairs, skill tree nodes, and victory result video Change 3507896 by Ryan.Gerleve Changed the net.UseEncryptionToken to be more useful and renamed it to net.AllowEncryption. This cvar, if 0, will prevent the PacketHandler from adding the configured encryption component, and prevent UPendingNetGame and AOnlineBeaconClient from filling out the EncryptionToken parameter of NMT_Hello - which prevents the extra encryption handshake connection step. #jira FORT-46878 #review-3507897 @josh.markiewicz Change 3503928 by Ryan.Gerleve Add safety checks around some of the encryption functionality. Fixes a server crash seen during load testing. #jira FORT-46772 #review-3503929 bob.tellez #robomerge ReleaseNext [CL 3673993 by Bob Tellez in Main branch]
2017-09-30 03:42:01 -04:00
{
AddEngineThirdPartyPrivateStaticDependencies(Target, "WinHttp");
PublicDefinitions.Add("WITH_WINHTTP=1");
}
else
{
PublicDefinitions.Add("WITH_WINHTTP=0");
}
if (bPlatformRequiresOpenSSL)
{
AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenSSL");
Merging from //UE4/Fortnite-Staging up to CL#3673800 based on CL#3664064 from //Fortnite/Main #rb none #lockdown Nick.Penwarden ================================================================================================= THESE CHANGES TOUCH MULTIPLE PLATFORMS AND/OR RESTRICTED FOLDERS. YOU MUST REVIEW THESE MANUALLY AND APPEND THEM TO THE DESCRIPTIONS FOR THE APPROPRIATE PLATFORMS. ================================================================================================= Change 3662267 by Nick.Darnell Engine - Fixing a bug in GetAccurateRealTime, it wasn't subtracting GStartTime, which if you don't prevents accurate platform time when you try to store it in a float. #jira nojira Change 3662176 by Ben.Marsh Disable image integrity report generation if a debugger is attached, and in editor builds. #jira FORT-55656 Change 3656958 by Luke.Thatcher [FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame. - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe. - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency. Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup. A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index. In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread. [~] Unified platform specific sync interval CVars (D3D12.SyncInterval, D3D11.SyncInterval, r.PS4FlipRate, RHI.SyncIntervalOgl) into one: rhi.SyncInterval - 1 == 60Hz - 2 == 30Hz - 3 == 20Hz [-] Removed large number in XboxOneTime. Adding this arbitrary number prevents us from comparing timestamps from FPlatformTime::Seconds() and various OS callbacks (e.g. flip timings). #jira FORT-50803 Change 3655598 by Lukasz.Furman added filtering for navmesh's low height spans to fix crash on layer partitioning % of span reductions depends on presence of stair or roof building in navmesh tile, changed failsafes in layer code to ignore entire tile if heightfield is too complex to partition instead of reallocating memory #jira FORT-35375 Change 3648972 by Keith.Judge Add analytics to help diagnose default parameter collection buffer issue. +++ REMOVE ONCE CORE ISSUE IS SOLVED +++ #jira FORT-54690 Change 3648756 by Bart.Hawthorne Integrate 3645298 from //UE4/Dev-Networking Deprecate GetNetworkObjectInfo in favor of separate FindNetworkObjectInfo and FindOrCreateNetworkObjectInfo methods. #jira none Change 3643090 by Josh.Markiewicz #UE4 - proper handling of "pending connection lost" - triggered only if a connection is lost and there no "owning actor" to deal with the connection loss -- added Rejoin and CleanedUp states to connection to make sure that the pending connection lost delegate only fires at the appropriate time - delegate returns the unique id of the player if known (still possible to be unknown if connection lost after NMT_Hello) - changed debug output on timeout if the net connection was already in the process of being destroyed -- occurs when game hitches during the pending destroy 2 second wait -- ReceivedAcks should have been called to clean things up quietly in those 2 seconds but blocking the game thread will cause the cleanup to look like a timeout - added userid to UNetConnection::Describe - bad split screen player handling of unique id -- splitscreen uniqueid was overwriting the primary player id -- only store the id on the child connection - added some clarifying comments #review-3642816 @ryan.gerleve, @bob.tellez, @sam.zamani, @bart.hawthorne, @dave.ratti #jira FORT-26776 Change 3639043 by Alex.Thurman Fix CommonTreeView SetSelection to correctly update list navigation, and behave similarly to CommonListView's SetSelectedItem. #JIRA FORT-45841 Change 3632275 by Seth.Weedin #JIRA FORT-54203 - Add clamps to ActiveSound fade interpolation to prevent unwanted volume spikes. Remove 0.01 start time for single-fire audio cues. Should remove the sudden pops sometimes heard when firing weapons, as well as smooth out fade volume in general. Change 3626944 by Josh.Markiewicz #UE4 - added "updates connection status" flag to ServiceConfigMCP - disable updates on Cloud and Friend services (Fortnite only) - removed overloaded ProcessConnectionStatus function in cloud service #jira FORT-53113 Change 3626226 by Stewart.Lynch LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags * Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB) * re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes. * changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8) * summary page for content creators where all lower-level stats are grouped under one Engine stat * renamed ELLMScopeTag enum to ELLMTag * renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE * removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro * fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore * fixed BackupOOMMemoryPool stat (now shows in both default and platform pages) * added separate LLM enums for XB1, PS4 and D3D12 (PS4LLM.cpp/h etc.) * lots of changes adding/removing/renaming tags * added LLMArray and FLLMObjectAllocator classes * disabled asset tag tracking by default because it takes up so much memory even when not used * enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv. * all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging. * disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed. * added a CVar to control the csv write interval: LLM.LLMWriteInterval * added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements. * renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum * fixed program size stat which was broken recently on PS4. This was due to initialisation order and global platform stats setup #jira NONE-01 Change 3622978 by Lukasz.Furman changed WeaponStatus BT decorator to be event driven, fixes AI trying to check ranged weapon abilities without valid weapon includes copy of CL# 3620700 #jira FORT-45914 #review-3622979 John.Abercrombie Change 3622340 by Josh.Markiewicz #UE4 - playerid netconnection variable setup properly on clients and servers for both beacons and game net drivers - ipconnection prints uniqueid with lowleveldescribe #jira fort-0 Change 3621386 by Tim.Tillotson Add the ability to retry HTTP operations by VERB. This allows us to automatically retry cloud save PUT operations. #JIRA FORT-53717 #review-3621317 @Josh.Markiewicz @Ian.Fox @Carlos.Cuello Change 3620517 by Keith.Judge Xbox One - Revert iOS behaviour for the depth bias back to how it was, and make separate XB1 change use its own define to avoid confusion. #jira FORT-53928 Change 3620248 by Lukasz.Furman changed behavior of UBTTask_MoveTo.bStopOnOverlap flag after recent AcceptanceRadius fix, updated comments to be more detailed #jira nojira Change 3616187 by Bob.Tellez #UE4 Throwing an error (for now) if you attempt to use both the malloc profiler and leak detection at the same time since it causes a deadlock. #JIRA UE-0 Change 3613935 by Peter.Knepley More logging on update launcher launching #jira nojira #robomerge rp rn Change 3613537 by Marcus.Wassmer Safety asserts around the MarkPendingKill feature for rendering classes. #jira FORT-50385 Change 3613399 by Arne.Schober Extended ShowMaterialDrawEvents to enable it only in very specific passes and default enabled Depth for Fortnite on PS4 to track down a crash. #RB Marcus.Wassmer #jira FORT-53610 Change 3610794 by robomerge #ROBOMERGE-AUTHOR: marc.audy Reduce UMG class memory #jira UE-52043 #ROBOMERGE-SOURCE: CL 3610792 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3610144 by Stewart.Lynch General LLM improvements * added tracking for misc task graph tasks (moves 20MB out of Untagged) * renamed EngineTick to EngineMisc * added tracking for FName * added tracking for GC_ProcessObjectArray potential leak * renamed index & vertex buffers stat to Meshes * added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h. * removed AVAILABLE_PHYSICAL stat from LLM csv * csv files now include the date in the filename * fixed potential threading bug when reading stat values to csv * made IsDebugMemoryEnabled() always return false in shipping and if not runnong on a dev-kit (PS4). The reason is that the function is a bit hacky, and should only be used for debug purposes, such as displaying the on screen warning. * added lots more scopes * started changing Stat scopes to enum scopes. Stat scopes will be phased out. * added tracking of FName memory * added llmplatform tracking for XBoxSymbols * added llm tracking for CPU symbol allocations (20MB) * wrote an allocator for XBoxOneStack reading so that it doesn't go through Malloc and get tracked by LLM. * added tracking for GC * fixed tracking for TransientMemoryAllocator * added tracking for networking memory * added more audio memory tracking * added tracking for blueprints * added tracking for static meshes * show on screen warning if debug memory is enabled * added tracking for particles * renamed Phys to PhysX and added more scopes * renamed Slate to UI and added more scopes * much better coverage of networking memory * improved coverage of audio #jira FORT-53420 Change 3610136 by robomerge #ROBOMERGE-AUTHOR: marc.audy Reduce size of UStaticMeshComponent by 224 bytes (cumulative, 64 bytes exclusive) Reduce size of UPrimitiveComponent by 176 bytes (cumulative, 64 bytes exclusive). Reduce size of USceneComponent by 112 bytes. Reduce size of FLightingChannels from 3 bytes to 1. Reduce size of FBodyInstance by 16 bytes. #jira FORT-52043 #ROBOMERGE-SOURCE: CL 3610134 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3607937 by robomerge #ROBOMERGE-AUTHOR: paul.moore #jira FORT-53105 - Fix websocket not providing information when the peer closes the connection. #ROBOMERGE-SOURCE: CL 3607933 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3607042 by Bart.Hawthorne Move replay.Loop functionality into the demo net driver and rename it demo.Loop #jira none Change 3605448 by robomerge #ROBOMERGE-AUTHOR: seth.weedin #Athena - Pass owner to ActiveSounds created using PlaySoundAtLocation/PlaySound2D to allow "Limit to Owner" concurrency rules to work. Hook up for weapon sounds. #JIRA FORT-53180 #ROBOMERGE-SOURCE: CL 3605443 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3604787 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Initial support for hotfixing live assets from .ini files - This allows clients and server to patch certain assets in memory whenever .ini file hotfixes are downloaded - Only CurveTables and DataTables are supported for now - The new asset content must be in Json format, the same format the editor uses for importing - Assets that are hotfixed will be synchronously loaded if they're not already in memory. They'll be retained in memory afterwards. - IMPORTANT: Json data must be supplied on a single line, and all double quotes must be escaped! - The changes must go in the Game.ini file and use the following syntax: [AssetHotfix] +CurveTable=("/Game/Folder/MyCurveTable","[{\"Name\":\"Default\"}]") +DataTable=("/Game/Folder2/MyDataTable","[{\"Name\":\"Foo\"}]") #jira FORT-52099 [CODEREVIEW] frank.gigliotti [FYI] peter.knepley,bob.tellez #ROBOMERGE-SOURCE: CL 3604784 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3602067 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Loading time improvements - This shaves off up to 10 seconds of load time on PS4 in Athena Details: - Fixed multiple sub-levels not being able to be enqueued for loading in a single client frame. Athena has ~300 sub-levels, so this ended up wasting up many seconds. - Fixed 3D world being rendered while loading (frees up game thread cycles for throttled streaming) - UWorld::AllowLevelLoadRequests() was not allowing load requests to go through while an async load was in progress and the match had started. It now allows this as long as the world isn't being rendered (loading screen.) - Eliminated extra 2 second delay before loading screen is dismissed (in Athena only) - Note: A side effect of this change is that the progress bar may not update as smoothly on loading screen. We'll look at tuning the throttle settings if it ends up being a problem. [CODEREVIEW] ori.cohen #jira AT-1477 #ROBOMERGE-SOURCE: CL 3602061 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3601951 by Luke.Thatcher [FORTNITE] [PS4] [!] Fix memory stats in the old PS4 memory system - Physical memory stat now includes garlic and onion allocations. CPU OOMs will result in "AvailablePhysical" being close to 0. - Added garlic, onion and defrag stats to the platform memory stats struct. - Added fixed pool sizes to platform memory stats. - Modified the Fortnite heartbeat logging to include extra details of PS4 fixed sized pools. #jira FORT-52910 Change 3600340 by robomerge #ROBOMERGE-AUTHOR: wes.hunt All Fort analytics events now contain a GameState attribute indicating the active GameState ClassName when the event is sent. Added some new context to crashreporter to help identify Athena matches near and long term. * Near Term: GameNameSuffix - set via FCoreDelegates::CrashOverrideParamsChanged * Added bools to the params to indicate WHICH ones are changing * Allows you to set only some values, and clear them out. * Hooked up in FortGameState::PostInitializeComponents. * FortGameState clears it (for returning to main menu). * FortGameStateAthena sets it (for going into an Athena match). * Only does this when it's a true GameMode GameState instance (ie, not PIE) so PIE crashes aren't modified. * Long Term: GameStateName - set via FCoreDelegates::GameStateClassChanged. * This works for ANY crash on ANY game. * Hooked up in GameState::HandleMatchIsWaitingToStart. #jira AT-1457 #jira AT-519 [CODEREVIEW] peter.knepley,josh.markiewicz #ROBOMERGE-SOURCE: CL 3600278 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3597593 by Ben.Zeigler #jira FORT-50722 Fix issues where AssetBundles weren't being correctly updated during cook, which is blocking both Noland and Abercrombie Partial copy of CL #3402335 and #3526538 #robomerge rp, rn Change 3597577 by Luke.Thatcher [FORTNITE] [PS4] [~] Modified the way memory is allocated on Playstation to make more memory available to the CPU. - Previously the amount of texture memory wasn╞t fixed due to the way the defrag memory is allocated on PS4. This meant we had to have a significant amount of slack. - With the new configuration, we have a guaranteed texture memory pool, so the slack can be significantly smaller, meaning we can give more memory to the CPU, which is where most of our memory pressure is. #jira FORT-50825 #jira FORT-49688 #jira FORT-49695 #jira FORT-50054 Change 3596556 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Enable GC clustering for actors and blueprints in Fortnite - This shaves off about 10 ms on GC frames in Athena on PS4 (~52 ms -> 42 ms) - Clustering doesn't work on building actors because they're very dynamic, but general Fort static meshes and blueprints are clustered! - This gets us into the realm of shippability on console for very large UObject counts [FYI] bob.tellez,peter.knepley,michael.noland #jira AT-1440 #ROBOMERGE-SOURCE: CL 3596552 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3593994 by robomerge #ROBOMERGE-AUTHOR: mike.fricker Force largest distance field atlas size in Athena - We now force the largest distance field atlas size before preloading Athena content (512x512x1024 = 256 MB). This helps with load times because it's expensive to re-create this texture on consoles, and typically it gets resized over a dozen times. - Added new CVar "r.DistanceFields.ForceMaxAtlasSize" (defaults to zero) - Important: Currently we never "reset" this atlas texture. This will be a problem when going back to play Campaigns after preloading to play Athena. I will look into this soon! [CODEREVIEW] peter.knepley,marcus.wassmer,michael.noland,daniel.wright #jira AT-1477 #ROBOMERGE-SOURCE: CL 3593992 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3592096 by robomerge #ROBOMERGE-AUTHOR: ben.salem Prototype of gauntlet memory soak test. Not fully fiinished, but want changes in tonight's cook so we can experiment on cooked build tomorrow morning. #jira FORT-0 #ROBOMERGE-SOURCE: CL 3592025 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3592085 by robomerge #ROBOMERGE-AUTHOR: mike.fricker HLOD: Added support for a fixed distance override via CVar - Use this to force all HLODs to transition at a specific distance, regardless of their TransitionSize/MinDrawDistance/LODDrawDistance - New CVar: r.HLOD.DistanceOverride (defaults to 0) - Fortnite uses 350m for this distance, fornow [CODEREVIEW] jurre.debaare #jira AT-1462 #ROBOMERGE-SOURCE: CL 3591929 in //Fortnite/Release-Prep/... #ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main) Change 3587391 by Michael.Noland Fortnite: Lots of memory tracking stuff - Added memory logging to game state transitions and overall health tracking for the entire session - Added support for Gauntlet-based tests to Fortnite - Enabled the Gauntlet plugin (and fixed spaces instead of tabs in the .uproject file) - Added code to set gauntlet state based on the current subclass of AFortGameState - Added a base controller and a memory report controller (WIP, ported from equivalents in Paragon) - Updated FortniteClient to use MALLOC_LEAKDETECTION=1, PLATFORM_USES_FIXED_GMalloc_CLASS=0, and AllowASLRInShipping=false in Development builds (may enable them in Test builds in a future CL, to match Paragon) #jira FORT-50567 Change 3583307 by Peter.Knepley Need non-jittered ViewToClip matrix in order to do "after tonemapper" postprocess blendable material that's positioned in view space Modify the AttachScope material function to use "ViewSpaceTransformToClipSpace" instead of going back to world space first. This also means it can utilitize the ViewToClipNoAA matrix. #jira AT-733 Change 3582378 by Luke.Thatcher [FORTNITE] [~] Unify Xbox and PS4 scalability settings and device profiles. - All Xbox and PS4 r. CVars are overriden in their platform's Scalability.ini file. The device profile only selects sg. groups. - Fixed the Neo 4K profile for Fortnite. Previously players with 4K monitors would choose the Neo_4K profile, which looks worse than Neo, but still renders at 1080p. - Console specific settings have to live in the Base/Default .ini's, as the cooker doesn't load the console specific files. This is fixed in UE4 Main. #jira FORT-50206 Change 3580934 by Luke.Thatcher [FORTNITE] [PS4] [+] Support different garlic and onion heap sizes in the old memory system for base and neo. - Neo has 512 MB more direct memory than a base kit. - Increased the garlic heap size by 416 MB on Neo, and CPU heap by 96 MB. #jira FORT-50206 Change 3576664 by Bart.Hawthorne Re-enable Oodle and add Mac implementation. Also includes fixed oodle libraries by MichaelT. #jira FORT-49986 #tests Connected to PC server with editor -game build on Mac in Athena Change 3575671 by Nick.Darnell Athena - The gameplay ability system now supports adding Gameplay Cue's with params. Now using cues instead of gameplay effects in order to notify when the bandaging/shielding begin and end. THe new method should properly show and disappear on time, b/c it's all client side. Added a way in the Athena Context to easily hook gameplay "UI" cues that are rebroadcast from the Athena Pawn. #jira AT-644 Change 3575534 by Peter.Knepley Ability montage replication optimizations #jira AT-955 Change 3573305 by Lukasz.Furman disabled path section update when crowd simulated AI is moving through navlink, fixed AI getting stuck in some corners #jira FORT-49748 Change 3566775 by John.Abercrombie Optimizations from Dev-Athena - Tested with PIE & and 2 Player local server game #ue4-athena - (merge CLs 3345771 and 3363030 from Framework) - Refactored CharacterMovementComponent determination of net send rate when combining moves into a virtual function GetClientNetSendDeltaTime(). Added configurable values to GameNetworkManager under [/Script/Engine.GameNetworkManager]. For Fortnite, set unthrottled (<= 10 player) limit to 60Hz (from 90Hz), and trying throttled at 30Hz (from 45Hz). #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545535 by Zak.Middleton on 2017/07/19 20:15:17. #ue4-athena - (merge CL 3377054 from Framework) - Fix CharacterMovementComponent updated with very high delta time on server when initially joining. Make sure the ServerTimeStamp is initialized to current world time rather than zero to prevent large delta. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545452 by Zak.Middleton on 2017/07/19 18:57:45. #athena - If network smoothing mode is not linear, don't replicate ReplicatedServerLastTransformUpdateTimeStamp. Only AI use linear smoothing in FN. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545559 by Zak.Middleton on 2017/07/19 20:47:18. #ue4-athena - Converted all RPCs on UCharacterMovementComponent to be on ACharacter instead, to avoid the bandwidth overhead of calling RPCs on a component. Existing overrides of _Implementation and _Validate functions should remain unchanged. If for some reason someone overrode the old RPC virtuals, those are now non-virtual on UCharacterMovementComponent but are still virtual on ACharacter. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3557564 by Zak.Middleton on 2017/07/26 20:13:43. #ue4-athena - Throttle character movement server corrections and acks to the client based on time since last adjustment. Cuts down on network traffic for character movement. Added configurable settings to control this. Set times to zero to disable this. - NetworkMinTimeBetweenClientAckGoodMove - NetworkMinTimeBetweenClientAdjustments - NetworkMinTimeBetweenClientAdjustmentsLargeCorrection - NetworkLargeClientCorrectionDistance #ue4-athena - Perf: (EditMerge CL 3492200 from Dev-Framework): Always reset the input array in AActor::GetComponents(), but do so without affecting allocated size. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561669 by Zak.Middleton on 2017/07/28 14:16:19. #ue4-athena - Perf: (EditMerge CL 3468253 from Dev-AnimPhys): Remove the need for calling constructors for physx PxRaycastHit in the dynamic hit result buffer. Saves 30% of the cost of doing small raycasts. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561672 by Zak.Middleton on 2017/07/28 14:17:12. #ue4-athena - Perf: (EditMerge CL 3359553 from Dev-Framework): Optimization in CharacterMovement tick to not extract transform values twice. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561674 by Zak.Middleton on 2017/07/28 14:18:04. #ue4-athena - Perf: (EditMerge CL 3426174 from Dev-Framework): Avoid call to virtual getSimulationFilterData() to only use it when needed in PreFilter if we actually have items in the IgnoreComponents list (which is rare). The sim filter data 'word2' stores the component ID. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561709 by Zak.Middleton on 2017/07/28 14:32:11. #ue4-athena - Perf: (EditMerge CL 3382054 from Dev-Framework): Optimize CharacterMovementComponent::GetPredictionData_Client_Character() and GetPredictionData_Server_Character() to remove virtual calls. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561856 by Zak.Middleton on 2017/07/28 15:11:57. #ue4-athena - Use less bandwidth for CharacterMovement RPCs when the character is not standing on any component (ie during jumps and falling). Added separate "...NoBase()" versions of ServerMove() and ServerMoveDual(). Undid part of 3557564 and restored the CMC functions to be virtual, and removed virtual keyword from matching Character functions, so that overrides are in one consistent place. Also guarantees backwards compat for licensees. #AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3564858 by Zak.Middleton on 2017/07/31 15:24:39. #jira Fort-1 Change 3562825 by Chris.Gagnon Added CommonCustomNavigation Widget, this widget can be used to capture navigation requests to handle in custom ways. #jira FORT-0 Change 3562098 by Josh.Markiewicz #UE4 Encryption token/ack changes - moved encryption token request/ack to delegates - moved FNetworkNotify to NetworkDelegates.h - moved connection logic out of GameInstance and back into networking code -- GameInstance sends an enum and the network code does the right thing based on that #review-3559694 @ryan.gerleve #tests PC dedicated server connections golden path and forced failures #jira FORT-0 Change 3559354 by Luke.Thatcher [FORTNITE] [PS4] [^] Merging (as edit) support for setting flip rate on PS4 (CLs 3555687 and 3558843) from //Fortnite/Dev-Athena/... to //Fortnite/Main/... - Allowed rates are now 60Hz, 30Hz and 20Hz. - Exposed by r.PS4FlipRate CVar, set to 60Hz by default. Requires r.Vsync 1. #jira FORT-49463 Change 3532644 by Jeff.Campeau Fix mapping current culture to movie audio channels using data table to map languages to track indices. Don't rewind cinematics (they all start from the begining because we load them and play them once). Seeks cause us to have to redecode video frames at a large perf cost. Delay cutscene playback by 0.5 seconds to give us time to build up a buffer of decoded video. (Temporary workaround for audio/video sync). Generic implementation for getting current languages in BP. Fix more issues with calling into media source functionality when using the source reader (potential hangs). #jira FORT-44376,FORT-48209,FORT-48040 #testedon Preflight from last night combined with Bob's changes from today clear all known issues. This change tested on Xbox and PC multiple times each. Change 3527761 by Chris.Gagnon Fixed various issues in the widget switcher, also added Advanced calls that allow the user to specify if activation/deactivation should occur. #jira FORT-47988, FORT-47984 Change 3525390 by Jeff.Campeau Remove media player log spam #jira FORT-47393 #testedon compiled client Change 3518692 by Chris.Gagnon Added CleanOperation Adding which will remove unneeded op combinations from the op queue. Also added the ability to suspend starting operation queue processing to allow complex operations to accumulate and in turn allow the Clean Op adding code to be effective. GameFeedback, and the widget switcer utilize this to avoid unnesacary activations of a screen that is immediately being deactivated. Root issue of the mentioned bug is that activation of the quest screen created a latent navigation du to the deferal of scrolling into view. This is still an issue in general, there isn't much we can do about it. Other than avoid activating a panel that will deactivated that frame as we did with the code changes in this CL. #jira FORT-47395 Change 3514658 by Jeff.Campeau Fixed a media player threading issue where the OnMediaOpened event could be called before the media Init script completed. Moved the event Cinematic used when setting up and playing media after media file load to use a delayed event from the MovieWidget so that it will always happen after the movie widget processing. Fixed an issue that could cause samples to leak in MfMedia plugin and cause ReadSample to lockup. Fixed an issue where a default texture is displayed for movies before the movie starts playing (the player may be active before the first frame of the video is decoded). Default is now all black as it is expected that this texture will be displayed for several frames. #jira FORT-46801 #testedon Xbox through rocket launch cinematic including vintertip for stairs, skill tree nodes, and victory result video Change 3507896 by Ryan.Gerleve Changed the net.UseEncryptionToken to be more useful and renamed it to net.AllowEncryption. This cvar, if 0, will prevent the PacketHandler from adding the configured encryption component, and prevent UPendingNetGame and AOnlineBeaconClient from filling out the EncryptionToken parameter of NMT_Hello - which prevents the extra encryption handshake connection step. #jira FORT-46878 #review-3507897 @josh.markiewicz Change 3503928 by Ryan.Gerleve Add safety checks around some of the encryption functionality. Fixes a server crash seen during load testing. #jira FORT-46772 #review-3503929 bob.tellez #robomerge ReleaseNext [CL 3673993 by Bob Tellez in Main branch]
2017-09-30 03:42:01 -04:00
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2909747) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2898120 on 2016/03/07 by Chris.Babcock Disable NvTimerQuery on Nexus 9 before Android 6.0 to fix slow frame updates #jira UE-28013 #ue4 #android Change 2898539 on 2016/03/08 by Matthew.Griffin Merging //UE4/Dev-Build to //UE4/Release-4.11 Change 2887414 on 2016/03/01 by Ben.Marsh Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac. Change 2898788 on 2016/03/08 by Keith.Judge Latest DX12.x integration from Microsoft. Brings XB1 up to PC level of functionality and improved perf. #jira UEPLAT-325 Change 2898836 on 2016/03/08 by Taizyd.Korambayil #jira UE-27990 Reimported River_Basin_02 Mesh with Adjacency Buffer Change 2898897 on 2016/03/08 by Sean.Gribbin #Jira UE-26550 Adding name to credits of Match 3 Change 2898938 on 2016/03/08 by Taizyd.Korambayil #jira UE-26284 Fixed Up Some Materials and BP errors Change 2898967 on 2016/03/08 by Benjamin.Hyder Updating Qa_Materials map #jira UE-24473 Change 2899032 on 2016/03/08 by Zachary.Wilson Fixing broken assets in QA-LightsStationary and eliminating log errors. Fixing mispelling and player start height in QA-LightsStationary. #jira UE-24473 Change 2899244 on 2016/03/08 by Peter.Sauerbrei addition of launch images for iPad Pro #jira UE-24793 Change 2899335 on 2016/03/08 by Richard.Hinckley #jira UE-27356 Fixing code for VR headsets so that the camera starts inside the vehicle if the user has an active HMD. Found that the C++ templates never had HMD support, so mirroring the BP templates for that functionality. Works in my testing, but a proper QA pass should be performed. Change 2899402 on 2016/03/08 by Michael.Schoell Macro instance nodes now have a hard dependency to any object class or structs their pins reference. Expanded UK2Node_MacroInstance::HasExternalDependencies to iterate over all pins and add their struct or object's class. #jira UE-27795 - Split Pins on a referenced Macro Library will crash the editor on restart Change 2899424 on 2016/03/08 by Dmitry.Rekman Fix CrossCompilerTool on Linux (UE-28056). #jira UE-28056 Change 2899445 on 2016/03/08 by Dmitry.Rekman Fix CrossCompilerTool invocation in debug scripts. #jira UE-28056 Change 2899488 on 2016/03/08 by Ryan.Vance #jira UE-28000 We can't test how many views are in the view family when initializing a view. There's no guaruntee that the family is setup yet. We'll need to move this test to the calling code. Change 2899546 on 2016/03/08 by Zachary.Wilson Updating QA-PostProcessing to match the 4.12 Main version of the map. #jira UE-24473 Change 2899553 on 2016/03/08 by Michael.Schoell Reinstancer will no longer queue BPs to be saved when compiling skeleton class dependencies and will no longer process all queued BPs to save when it is complete. #jira UE-27509 - Save on compile set to always causes a crash on compile #jira UE-27856 - "Always" Save on Compile does not save the Blueprint Change 2899558 on 2016/03/08 by Benjamin.Hyder building Lighting for QA-Materials #jira UE-24473 Change 2899597 on 2016/03/08 by Chris.Babcock Change reporting level of audio buffer decompression type logging #jira UE-28058 #ue4 #android Change 2899704 on 2016/03/08 by Benjamin.Hyder Updating Qa-Materials map #Jira UE-24473 Change 2899736 on 2016/03/08 by Benjamin.Hyder Updating TM-LPV map #Jira UE-24473 Change 2899810 on 2016/03/08 by Lauren.Ridge #jira UE-27995 UE-27987 Final UM3 UI Tweaks, + bug fix Change 2899876 on 2016/03/08 by Peter.Sauerbrei [CL 2913181 by Matthew Griffin in Main branch]
2016-03-17 11:10:14 -04:00
if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS || Target.Platform == UnrealTargetPlatform.Mac)
{
PublicFrameworks.Add("Security");
}
}
}