2016-01-07 08:17:16 -05:00
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
2015-03-27 08:02:21 -04:00
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using System.IO ;
using AutomationTool ;
using UnrealBuildTool ;
namespace Rocket
{
public class RocketBuild : GUBP . GUBPNodeAdder
{
static readonly string [ ] CurrentTemplates =
{
2015-05-05 14:44:22 -04:00
"FP_FirstPerson" ,
"FP_FirstPersonBP" ,
2015-03-27 08:02:21 -04:00
"TP_FirstPerson" ,
"TP_FirstPersonBP" ,
"TP_Flying" ,
"TP_FlyingBP" ,
"TP_Rolling" ,
"TP_RollingBP" ,
"TP_SideScroller" ,
"TP_SideScrollerBP" ,
"TP_ThirdPerson" ,
"TP_ThirdPersonBP" ,
"TP_TopDown" ,
"TP_TopDownBP" ,
"TP_TwinStick" ,
"TP_TwinStickBP" ,
"TP_Vehicle" ,
"TP_VehicleBP" ,
"TP_Puzzle" ,
"TP_PuzzleBP" ,
"TP_2DSideScroller" ,
"TP_2DSideScrollerBP" ,
"TP_VehicleAdv" ,
"TP_VehicleAdvBP" ,
2015-06-30 10:06:41 -04:00
2015-03-27 08:02:21 -04:00
} ;
static readonly string [ ] CurrentFeaturePacks =
{
"FP_FirstPerson" ,
"FP_FirstPersonBP" ,
"TP_Flying" ,
"TP_FlyingBP" ,
"TP_Rolling" ,
"TP_RollingBP" ,
"TP_SideScroller" ,
"TP_SideScrollerBP" ,
"TP_ThirdPerson" ,
"TP_ThirdPersonBP" ,
"TP_TopDown" ,
"TP_TopDownBP" ,
"TP_TwinStick" ,
"TP_TwinStickBP" ,
"TP_Vehicle" ,
"TP_VehicleBP" ,
"TP_Puzzle" ,
"TP_PuzzleBP" ,
"TP_2DSideScroller" ,
"TP_2DSideScrollerBP" ,
"TP_VehicleAdv" ,
"TP_VehicleAdvBP" ,
"StarterContent" ,
2015-07-13 05:47:36 -04:00
"MobileStarterContent" ,
2015-03-27 08:02:21 -04:00
} ;
public RocketBuild ( )
{
}
2015-07-07 16:34:24 -04:00
public override void AddNodes ( GUBP bp , GUBP . GUBPBranchConfig BranchConfig , UnrealTargetPlatform HostPlatform , List < UnrealTargetPlatform > ActivePlatforms )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
if ( ! BranchConfig . BranchOptions . bNoInstalledEngine )
2015-03-27 08:02:21 -04:00
{
2015-08-11 08:14:46 -04:00
// Add the aggregate for making a rocket build
2016-01-22 08:13:18 -05:00
if ( WaitToMakeRocketBuild . ShouldAddTrigger ( BranchConfig ) & & ! BranchConfig . HasNode ( WaitToMakeRocketBuild . StaticGetFullName ( ) ) )
2015-08-11 08:14:46 -04:00
{
2015-08-12 13:58:01 -04:00
BranchConfig . AddNode ( new WaitToMakeRocketBuild ( BranchConfig ) ) ;
2015-08-11 08:14:46 -04:00
}
2015-04-10 13:56:50 -04:00
// Find all the target platforms for this host platform.
2015-03-27 08:02:21 -04:00
List < UnrealTargetPlatform > TargetPlatforms = GetTargetPlatforms ( bp , HostPlatform ) ;
2015-09-21 12:00:50 -04:00
// Remove any target platforms that aren't available
TargetPlatforms . RemoveAll ( x = > ! IsTargetPlatformAvailable ( BranchConfig , HostPlatform , x ) ) ;
2015-05-01 15:01:10 -04:00
2015-04-23 18:13:08 -04:00
// Get the temp directory for stripped files for this host
string StrippedDir = Path . GetFullPath ( CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Saved" , "Rocket" , HostPlatform . ToString ( ) ) ) ;
2015-07-17 13:13:26 -04:00
// Get the temp directory for signed files for this host
string SignedDir = Path . GetFullPath ( CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Saved" , "Rocket" , "Signed" , HostPlatform . ToString ( ) ) ) ;
2015-04-23 18:13:08 -04:00
// Strip the host platform
if ( StripRocketNode . IsRequiredForPlatform ( HostPlatform ) )
{
2015-07-07 16:34:24 -04:00
BranchConfig . AddNode ( new StripRocketToolsNode ( BranchConfig , HostPlatform , StrippedDir ) ) ;
BranchConfig . AddNode ( new StripRocketEditorNode ( BranchConfig , HostPlatform , StrippedDir ) ) ;
2015-04-23 18:13:08 -04:00
}
2015-07-17 13:13:26 -04:00
BranchConfig . AddNode ( new SignRocketToolsNode ( BranchConfig , HostPlatform , SignedDir ) ) ;
BranchConfig . AddNode ( new SignRocketEditorNode ( BranchConfig , HostPlatform , SignedDir ) ) ;
2015-04-23 18:13:08 -04:00
2015-04-28 15:47:56 -04:00
// Strip all the target platforms that are built on this host
2015-04-23 18:13:08 -04:00
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
{
2015-07-08 08:05:50 -04:00
if ( GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) = = HostPlatform & & StripRocketNode . IsRequiredForPlatform ( TargetPlatform ) )
2015-04-23 18:13:08 -04:00
{
2015-07-08 08:05:50 -04:00
BranchConfig . AddNode ( new StripRocketMonolithicsNode ( BranchConfig , HostPlatform , TargetPlatform , StrippedDir ) ) ;
2015-04-23 18:13:08 -04:00
}
2015-07-17 13:13:26 -04:00
if ( GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) = = HostPlatform & & SignRocketNode . IsRequiredForPlatform ( TargetPlatform ) )
{
BranchConfig . AddNode ( new SignRocketMonolithicsNode ( BranchConfig , HostPlatform , TargetPlatform , SignedDir ) ) ;
}
2015-04-23 18:13:08 -04:00
}
2015-04-10 13:56:50 -04:00
// Build the DDC
2015-07-08 08:05:50 -04:00
BranchConfig . AddNode ( new BuildDerivedDataCacheNode ( BranchConfig , HostPlatform , GetCookPlatforms ( HostPlatform , TargetPlatforms ) , CurrentFeaturePacks ) ) ;
2015-04-10 13:56:50 -04:00
// Generate a list of files that needs to be copied for each target platform
2015-07-08 08:05:50 -04:00
BranchConfig . AddNode ( new FilterRocketNode ( BranchConfig , HostPlatform , TargetPlatforms , CurrentFeaturePacks , CurrentTemplates ) ) ;
2015-04-10 13:56:50 -04:00
2015-04-25 10:33:07 -04:00
// Copy the install to the output directory
string LocalOutputDir = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "LocalBuilds" , "Rocket" , CommandUtils . GetGenericPlatformName ( HostPlatform ) ) ;
2015-07-07 16:34:24 -04:00
BranchConfig . AddNode ( new GatherRocketNode ( BranchConfig , HostPlatform , TargetPlatforms , LocalOutputDir ) ) ;
2015-03-27 08:02:21 -04:00
2015-03-30 14:29:36 -04:00
// Add a node for GitHub promotions
2016-04-14 20:35:31 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 & & ! BranchConfig . JobInfo . IsPreflight )
2015-03-30 14:29:36 -04:00
{
string GitConfigRelativePath = "Engine/Build/Git/UnrealBot.ini" ;
if ( CommandUtils . FileExists ( CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , GitConfigRelativePath ) ) )
{
2016-04-14 20:35:31 -04:00
string BranchName = null ;
if ( BranchConfig . BranchName = = "//UE4/Main" )
{
BranchName = "Main" ;
}
else if ( BranchConfig . BranchName . StartsWith ( "//UE4/Release-4." ) )
{
int MinorVersion ;
if ( int . TryParse ( BranchConfig . BranchName . Substring ( BranchConfig . BranchName . IndexOf ( '.' ) + 1 ) , out MinorVersion ) )
{
BranchName = "4." + MinorVersion . ToString ( ) ;
}
}
if ( BranchName ! = null )
{
BranchConfig . AddNode ( new RunGithubPromotion ( HostPlatform , BranchConfig . HostPlatforms , BranchName , CommandUtils . P4Env . Changelist ) ) ;
}
2015-03-30 14:29:36 -04:00
}
}
2015-04-23 13:26:28 -04:00
2015-05-01 19:53:59 -04:00
// Get the output directory for the build zips
string PublishedEngineDir ;
2015-07-08 08:05:50 -04:00
if ( ShouldDoSeriousThingsLikeP4CheckinAndPostToMCP ( BranchConfig ) )
2015-05-01 19:53:59 -04:00
{
2016-07-18 08:50:43 -04:00
PublishedEngineDir = CommandUtils . CombinePaths ( CommandUtils . RootBuildStorageDirectory ( ) , "Rocket" , "Automated" , "Engine" , GetBuildLabel ( ) , CommandUtils . GetGenericPlatformName ( HostPlatform ) ) ;
2015-05-01 19:53:59 -04:00
}
else
{
PublishedEngineDir = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "LocalBuilds" , "RocketPublish" , CommandUtils . GetGenericPlatformName ( HostPlatform ) ) ;
}
2015-04-25 10:33:07 -04:00
// Publish the install to the network
2015-07-07 16:34:24 -04:00
BranchConfig . AddNode ( new PublishRocketNode ( HostPlatform , LocalOutputDir , PublishedEngineDir ) ) ;
2015-07-08 08:05:50 -04:00
BranchConfig . AddNode ( new PublishRocketSymbolsNode ( BranchConfig , HostPlatform , TargetPlatforms , PublishedEngineDir + "Symbols" ) ) ;
2015-03-27 08:02:21 -04:00
}
}
2015-04-10 13:56:50 -04:00
public static string GetBuildLabel ( )
{
return FEngineVersionSupport . FromVersionFile ( CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , @"Engine\Source\Runtime\Launch\Resources\Version.h" ) ) . ToString ( ) ;
}
2015-09-21 12:00:50 -04:00
public static bool IsTargetPlatformAvailable ( GUBP . GUBPBranchConfig BranchConfig , UnrealTargetPlatform HostPlatform , UnrealTargetPlatform TargetPlatform )
{
UnrealTargetPlatform SourceHostPlatform = GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
bool bIsCodeTargetPlatform = IsCodeTargetPlatform ( HostPlatform , TargetPlatform ) ;
if ( ! BranchConfig . HasNode ( GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , false , bIsCodeTargetPlatform ) ) )
{
return false ;
}
return true ;
}
2015-05-01 15:01:10 -04:00
public static List < UnrealTargetPlatform > GetTargetPlatforms ( BuildCommand Command , UnrealTargetPlatform HostPlatform )
2015-03-27 08:02:21 -04:00
{
List < UnrealTargetPlatform > TargetPlatforms = new List < UnrealTargetPlatform > ( ) ;
2015-05-01 15:01:10 -04:00
if ( ! Command . ParseParam ( "NoTargetPlatforms" ) )
2015-03-27 08:02:21 -04:00
{
2015-04-16 11:49:34 -04:00
// Always support the host platform
2015-03-27 08:02:21 -04:00
TargetPlatforms . Add ( HostPlatform ) ;
2015-04-16 11:49:34 -04:00
// Add other target platforms for each host platform
2015-03-27 08:02:21 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 )
{
TargetPlatforms . Add ( UnrealTargetPlatform . Win32 ) ;
}
2015-04-16 11:49:34 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 | | HostPlatform = = UnrealTargetPlatform . Mac )
2015-03-27 08:02:21 -04:00
{
TargetPlatforms . Add ( UnrealTargetPlatform . Android ) ;
}
2015-04-16 11:49:34 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 | | HostPlatform = = UnrealTargetPlatform . Mac )
2015-03-27 08:02:21 -04:00
{
TargetPlatforms . Add ( UnrealTargetPlatform . IOS ) ;
}
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2945165)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2731596 on 2015/10/16 by Keith.Judge
Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step.
Change 2764244 on 2015/11/12 by Keith.Judge
Stop creating/deleting SRVs for dynamic buffers all the time. Instead add a new view when a new buffer is cycled and keep them around until the buffer is dead.
Change 2936695 on 2016/04/07 by Mark.Satterthwaite
Disable Metal on Mac OS X versions prior to 10.11.4 because their drivers are too buggy and lots of issues users will encounter were fixed in 10.11.4.
Change 2936701 on 2016/04/07 by Mark.Satterthwaite
Re-enable DistanceFieldAO on Mac Metal, but disable the support for Heightfield composition into the DistanceFieldAO as that currently requires Read+Write texture support which isn't present in Metal yet.
Change 2936702 on 2016/04/07 by Mark.Satterthwaite
Enable capsule shadows on Metal SM5 for Mac Paragon.
Change 2936704 on 2016/04/07 by Mark.Satterthwaite
Re-add Metal_MacES3_1 entries in RHIDefinition functions - not quite sure how they disappeared...
Change 2936706 on 2016/04/07 by Mark.Satterthwaite
Fix implementation of BeginRenderingPrePass to only clear the depth+stencil buffers when it is asked to - this fixes LOD fading in Paragon on Mac when parallel execution is enabled. The parallel contexts were being instructed to clear the pre-pass data which was then fouling up all the subsequent rendering.
Change 2936708 on 2016/04/07 by Mark.Satterthwaite
Extend workaround from 2905206 for UE-27818 to Metal as well as OpenGL - it isn't permissable to have an unbound resource on these APIs as you aren't allowed to make the assumption than an if-branch will protect against null dereference on the GPU.
Change 2936737 on 2016/04/07 by Mark.Satterthwaite
Changes to reduce Metal's peak memory usage when streaming texture data in when loading levels:
- When uploading data to Shared memory Metal textures dispose of the source buffer immediately as it won't be required after the call to replaceRegion.
- Add an optional CVar ("rhi.Metal.MaxOutstandingAsyncTexUploads") and keep a count of outstanding async. texture uploads - really this might be better as a memory count - if teh current outstanding count is greater than the specified CVar wait for all operations to complete before purging the used buffers. By default the CVar is set to 0 which disables the tracking and the game will use all available memory.
Change 2936741 on 2016/04/07 by Mark.Satterthwaite
For Metal don't use a texture-view unless the mip-range or texture format is different - we only create a texture-view if we absolutely have to in order to avoid performance reductions on some vendors. When this happens we'll have to update the SRV to point to the new source texture but that can be handled on bind.
Change 2936753 on 2016/04/07 by Mark.Satterthwaite
Mutex the pipeline cache inside each Metal bound-shader-state - with parallel execution this can be modified from multiple threads.
Change 2936758 on 2016/04/07 by Mark.Satterthwaite
Don't eliminate redundant Metal command-encoders on Intel either - this only seems to work correctly on AMD...
Change 2936762 on 2016/04/07 by Mark.Satterthwaite
Validate that parallel contexts aren't asked to clear render-targets (incl depth/stencil) as this won't work as desired - each context will end up clearing the contents meaning none of the rendering will propagate which is probably not what you intend.
Change 2936765 on 2016/04/07 by Mark.Satterthwaite
Fix alignment of blit-commands between textures & buffers in Metal. Mac Metal has no minimum alignment and allows tightly packed rows, but mobile H/W has a fixed row alignment of 64-bytes for linear texture data.
Change 2936767 on 2016/04/07 by Mark.Satterthwaite
Remove the workaround for old Mac OS X AMD cards not supporting frame-buffer sRGB - I have a feeling it causes more problems than it solves.
Change 2936773 on 2016/04/07 by Mark.Satterthwaite
Warn the user when trying to run on OpenGL 3.2 GPUs that they are running unsupported and there may be rendering errors and performance problems.
Change 2936777 on 2016/04/07 by Mark.Satterthwaite
In MetalRHI move the calls that reset the state-cache and command-encoder to EndFrame and fix the fallout. Hopefully this will eliminate the problem where a draw call fails because a call to SetRenderTargets hasn't been made since the last time the command-buffer was submitted.
Change 2936788 on 2016/04/07 by Daniel.Lamb
PR #2193: Commandlet tweaks: Fixup Redirects and Cook-on-the-fly Server (Contributed by FineRedMist)
Change 2936799 on 2016/04/07 by Mark.Satterthwaite
Automatically enable RHI thread support in Metal if parallel execution is compiled in unless running the Editor which doesn't support it. The RHI thread is only enabled in Metal when parallel execution is available because there's little to no advantages to the RHI thread with Metal unless parallel execution is enabled. Also only enable async compute support when parallel execution is available and running on an AMD GPU as only AMD support it and again its only really useful when running things in parallel. Disable the async. compute fencing code when async. compute is disabled.
Change 2936923 on 2016/04/07 by Peter.Sauerbrei
add exception when trying to access an ini section which we don't cache
Change 2937839 on 2016/04/08 by Lee.Clark
PS4 - BC6H and BC7 support
#jira OR-14804
Change 2937841 on 2016/04/08 by Lee.Clark
Fix media player not opening the same file that has just been closed.
Change 2937843 on 2016/04/08 by Lee.Clark
PS4 - Fix Media player seek and duration
Change 2938272 on 2016/04/08 by Mark.Satterthwaite
Change the Metal texture lock/unlock code to use the immediate getBytes API to read from the texture unless it is stored in Private memory and requires we use the blit-encoder. This means iOS texture locking won't generally need to use the blit encoder with its row alignment restrictions as all textures will be Shared. On Mac most textures will still be accessed via blit operations since Private memory is much more common than Managed.
Change 2938471 on 2016/04/08 by Nick.Shin
load/save with "negative char size value" fixed
two 'U''s were missing-- causing base64encoder and decoder to not return original data (or expected data for that matter)...
C++ function shows these signatures:
\Engine\Source\Runtime\Engine\Public\SaveGameSystem.h
FGenericSaveGameSystem::SaveGame(..., ..., ..., ...<uint8>);
FGenericSaveGameSystem::LoadGame(..., ..., ..., ...<uint8>);
javascript version was using signed operators...
answerhub 386719 - broken load/save
Change 2938546 on 2016/04/08 by Nick.Shin
upgrading zlib, openssl, libcurl & libwebsockets
(part 1, for libwebsockets -- engine changes will be in part 2)
and writting down all of the build instructions into a single script file
future tasks may have the script broken to smaller sized files and placed in the respective library folders for simplicity -- for now, it's bundled together to ensure build is all-in-one...
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1223 - Arrange testing for 'update websocket library'
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2939402 on 2016/04/11 by Mark.Satterthwaite
No need to call synchroniseTexture on iOS when locking a texture for read - that function call is only available and required on OS X.
Change 2939526 on 2016/04/11 by Daniel.Lamb
Don't mark content as modified when garbage collecting.
#PR2249
#2249
Change 2940094 on 2016/04/11 by Michael.Trepka
Temporarily rollback //UE4/Dev-Platform/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalContext.cpp to revision 47 to unblock UE-29312
#codereview Mark.Satterthwaite
Change 2940540 on 2016/04/12 by Jeff.Campeau
Hardware decompress support for Xbox One.
Change 2940793 on 2016/04/12 by Lee.Clark
PS4 - Fix file handle leaks
#codereview Marcus.Wassmer
Change 2940903 on 2016/04/12 by Keith.Judge
Xbox One - Fix validated driver warning when using async compute with dynamic buffers (remove dynamic buffers).
Also resurrected the old deferred deletion queue (though simplified the code a lot as TQueue was horrible), as the platform agnostic one can't deal with placement created resources with a separate buffer/resource.
Moved associated deferred deletion logic out of FD3D11DynamicBuffer.
Attempted fix for UE-28758, but doesn't actually fix it. :(
Change 2940959 on 2016/04/12 by Michael.Trepka
Moved RadioEffectUnit CoreAudio plugin to Engine/Build/Mac
#codereview Ben.Marsh
Change 2940961 on 2016/04/12 by Michael.Trepka
Updated GitHub readme for Mac with instructions for building ShaderCompileWorker
#codereview Ben.Marsh
Change 2941010 on 2016/04/12 by Daniel.Lamb
Added xboxone.projectsettings to the ini processer in UAT.
#codereview Peter.Sauerbrei
#jira UE-29344
Change 2941671 on 2016/04/12 by Jeff.Campeau
March 2016 XDK update
Change 2941998 on 2016/04/13 by Mark.Satterthwaite
In MetalCommandList retain/release when waiting on a command-buffer commit to ensure command-buffer lifetime.
Change 2942008 on 2016/04/13 by Keith.Judge
Fix black reflections when async compute is enabled. Shader resource tables are now properly bound on the context, and fixed a bug where the buffer offset and number of constants wasn't being properly set when using the ring buffer.
#jira UE-28758
Change 2942046 on 2016/04/13 by Lee.Clark
Fix SN-DBS launch failure with VS2015 - (path env seems to be null in 2015)
Change 2942095 on 2016/04/13 by Mark.Satterthwaite
MIssed a change to use AlignedStride rather than Stride in FMetalDynamicRHI::RHIReadSurfaceFloatData to fix iOS blit-encoder read-back.
Change 2942383 on 2016/04/13 by Mark.Satterthwaite
When locking a Metal texture on Mac you have to submit the command buffer & wait in a different location for Private vs. Managed access.
Change 2942419 on 2016/04/13 by Michael.Trepka
Enabled IPv6 on iOS and Mac
#jira UEPLAT-1168
Change 2942472 on 2016/04/13 by Daniel.Lamb
Fixed missing OnlineSubsystemGooglePlay section from UAT ini processing.
#codereview Peter.Sauerbrei
Change 2942829 on 2016/04/13 by Nick.Shin
removing unused emscripten - ThirdParty folder
the ThirdParty folder contained a lot of GPL (and sometimes missing) licensing projects - removing to keep legal happy
tested with full rebuild, full cook, packaging and running QAGame
Change 2943110 on 2016/04/13 by Chris.Babcock
Fix Oculus mobile binaries filtered (include the jars)
#jira ue-29080
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943111 on 2016/04/13 by Chris.Babcock
Fix GearVR plugin jar copy logic
#jira UE-29108
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943579 on 2016/04/14 by Peter.Sauerbrei
enable tvOS in the binary build
Change 2943587 on 2016/04/14 by Peter.Sauerbrei
creation of xcode archives when using the archive command with iOS
Change 2943619 on 2016/04/14 by Mark.Satterthwaite
Make Metal SM4 the default on Mac again for the 4.12 release. As expected there are many bugs to resolve.
Change 2943869 on 2016/04/14 by Daniel.Lamb
Turned duplicate stage of files into warning.
#codereview Peter.Sauerbrei
#lockdown Josh.Adams
#jira UE-29487
Change 2943901 on 2016/04/14 by Keith.Judge
Xbox One - Fix start up crash.
#lockdown Josh.Adams
Change 2943981 on 2016/04/14 by Mark.Satterthwaite
Allow RWBuffers in Metal, which should work, but not RWTextures which aren't yet supported.
#jira UE-29492
#lockdown josh.adams
Change 2944080 on 2016/04/14 by Peter.Sauerbrei
temporarily remove code which removes passwords in ini files which reside in the pak file
multiple defaultengine.ini files were being copied over one another
#lockdown josh.adams
Change 2944249 on 2016/04/14 by Peter.Sauerbrei
fix for writing out DefaulEngine.ini when deprecated items are not changed
#codereview zabir.hoque
#lockdown josh.adams
Change 2944454 on 2016/04/14 by Peter.Sauerbrei
fix for incorrect archive directory and missing IPA
#jira UE-29509
#lockdown josh.adams
Change 2944834 on 2016/04/15 by Peter.Sauerbrei
fix for crash on some iOS device due to resources being freed while still in use by the GPU
#jira UE-29517
#lockdown josh.adams
Change 2944915 on 2016/04/15 by Peter.Sauerbrei
fix for including Facebook SDK in tvOS since we don't have the Facebook libraries for tvOS yet
#lockdown josh.adams
Change 2945164 on 2016/04/15 by Josh.Adams
- Removing XboxOnePDBFile from junkmanifest, causes too much trouble when staging using AutoSDKs
#lockdown nick.penwarden
#codereview jeff.campeau
#lockdown nick.penwarden
[CL 2945174 by Josh Adams in Main branch]
2016-04-15 10:04:09 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 | | HostPlatform = = UnrealTargetPlatform . Mac )
{
TargetPlatforms . Add ( UnrealTargetPlatform . TVOS ) ;
}
if ( HostPlatform = = UnrealTargetPlatform . Win64 )
2015-03-27 08:02:21 -04:00
{
TargetPlatforms . Add ( UnrealTargetPlatform . Linux ) ;
}
2015-04-21 15:42:57 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 | | HostPlatform = = UnrealTargetPlatform . Mac )
2015-03-27 08:02:21 -04:00
{
TargetPlatforms . Add ( UnrealTargetPlatform . HTML5 ) ;
}
2015-03-27 11:34:27 -04:00
2015-04-16 11:49:34 -04:00
// Remove any platforms that aren't enabled on the command line
2015-05-01 15:01:10 -04:00
string TargetPlatformFilter = Command . ParseParamValue ( "TargetPlatforms" , null ) ;
2015-04-16 11:49:34 -04:00
if ( TargetPlatformFilter ! = null )
{
List < UnrealTargetPlatform > NewTargetPlatforms = new List < UnrealTargetPlatform > ( ) ;
foreach ( string TargetPlatformName in TargetPlatformFilter . Split ( new char [ ] { '+' } , StringSplitOptions . RemoveEmptyEntries ) )
{
UnrealTargetPlatform TargetPlatform ;
if ( ! Enum . TryParse ( TargetPlatformName , out TargetPlatform ) )
{
throw new AutomationException ( "Unknown target platform '{0}' specified on command line" ) ;
}
else if ( TargetPlatforms . Contains ( TargetPlatform ) )
{
NewTargetPlatforms . Add ( TargetPlatform ) ;
}
}
TargetPlatforms = NewTargetPlatforms ;
}
2015-03-27 08:02:21 -04:00
}
return TargetPlatforms ;
}
public static string GetCookPlatforms ( UnrealTargetPlatform HostPlatform , IEnumerable < UnrealTargetPlatform > TargetPlatforms )
{
// Always include the editor platform for cooking
List < string > CookPlatforms = new List < string > ( ) ;
CookPlatforms . Add ( Platform . Platforms [ HostPlatform ] . GetEditorCookPlatform ( ) ) ;
// Add all the target platforms
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
{
if ( TargetPlatform = = UnrealTargetPlatform . Android )
{
CookPlatforms . Add ( Platform . Platforms [ TargetPlatform ] . GetCookPlatform ( false , false , "ATC" ) ) ;
}
else
{
CookPlatforms . Add ( Platform . Platforms [ TargetPlatform ] . GetCookPlatform ( false , false , "" ) ) ;
}
}
return CommandUtils . CombineCommandletParams ( CookPlatforms . Distinct ( ) . ToArray ( ) ) ;
}
2015-07-08 08:05:50 -04:00
public static bool ShouldDoSeriousThingsLikeP4CheckinAndPostToMCP ( GUBP . GUBPBranchConfig BranchConfig )
2015-03-27 08:02:21 -04:00
{
2015-08-05 10:22:11 -04:00
return CommandUtils . P4Enabled & & CommandUtils . AllowSubmit & & ! BranchConfig . JobInfo . IsPreflight ; // we don't do serious things in a preflight
2015-03-27 08:02:21 -04:00
}
2015-07-08 08:05:50 -04:00
public static UnrealTargetPlatform GetSourceHostPlatform ( List < UnrealTargetPlatform > HostPlatforms , UnrealTargetPlatform HostPlatform , UnrealTargetPlatform TargetPlatform )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
if ( TargetPlatform = = UnrealTargetPlatform . HTML5 & & HostPlatform = = UnrealTargetPlatform . Mac & & HostPlatforms . Contains ( UnrealTargetPlatform . Win64 ) )
2015-04-21 15:42:57 -04:00
{
return UnrealTargetPlatform . Win64 ;
}
2015-07-08 08:05:50 -04:00
if ( TargetPlatform = = UnrealTargetPlatform . Android & & HostPlatform = = UnrealTargetPlatform . Mac & & HostPlatforms . Contains ( UnrealTargetPlatform . Win64 ) )
2015-03-27 08:02:21 -04:00
{
return UnrealTargetPlatform . Win64 ;
}
2015-07-08 08:05:50 -04:00
if ( TargetPlatform = = UnrealTargetPlatform . IOS & & HostPlatform = = UnrealTargetPlatform . Win64 & & HostPlatforms . Contains ( UnrealTargetPlatform . Mac ) )
2015-03-27 08:02:21 -04:00
{
return UnrealTargetPlatform . Mac ;
}
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2945165)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2731596 on 2015/10/16 by Keith.Judge
Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step.
Change 2764244 on 2015/11/12 by Keith.Judge
Stop creating/deleting SRVs for dynamic buffers all the time. Instead add a new view when a new buffer is cycled and keep them around until the buffer is dead.
Change 2936695 on 2016/04/07 by Mark.Satterthwaite
Disable Metal on Mac OS X versions prior to 10.11.4 because their drivers are too buggy and lots of issues users will encounter were fixed in 10.11.4.
Change 2936701 on 2016/04/07 by Mark.Satterthwaite
Re-enable DistanceFieldAO on Mac Metal, but disable the support for Heightfield composition into the DistanceFieldAO as that currently requires Read+Write texture support which isn't present in Metal yet.
Change 2936702 on 2016/04/07 by Mark.Satterthwaite
Enable capsule shadows on Metal SM5 for Mac Paragon.
Change 2936704 on 2016/04/07 by Mark.Satterthwaite
Re-add Metal_MacES3_1 entries in RHIDefinition functions - not quite sure how they disappeared...
Change 2936706 on 2016/04/07 by Mark.Satterthwaite
Fix implementation of BeginRenderingPrePass to only clear the depth+stencil buffers when it is asked to - this fixes LOD fading in Paragon on Mac when parallel execution is enabled. The parallel contexts were being instructed to clear the pre-pass data which was then fouling up all the subsequent rendering.
Change 2936708 on 2016/04/07 by Mark.Satterthwaite
Extend workaround from 2905206 for UE-27818 to Metal as well as OpenGL - it isn't permissable to have an unbound resource on these APIs as you aren't allowed to make the assumption than an if-branch will protect against null dereference on the GPU.
Change 2936737 on 2016/04/07 by Mark.Satterthwaite
Changes to reduce Metal's peak memory usage when streaming texture data in when loading levels:
- When uploading data to Shared memory Metal textures dispose of the source buffer immediately as it won't be required after the call to replaceRegion.
- Add an optional CVar ("rhi.Metal.MaxOutstandingAsyncTexUploads") and keep a count of outstanding async. texture uploads - really this might be better as a memory count - if teh current outstanding count is greater than the specified CVar wait for all operations to complete before purging the used buffers. By default the CVar is set to 0 which disables the tracking and the game will use all available memory.
Change 2936741 on 2016/04/07 by Mark.Satterthwaite
For Metal don't use a texture-view unless the mip-range or texture format is different - we only create a texture-view if we absolutely have to in order to avoid performance reductions on some vendors. When this happens we'll have to update the SRV to point to the new source texture but that can be handled on bind.
Change 2936753 on 2016/04/07 by Mark.Satterthwaite
Mutex the pipeline cache inside each Metal bound-shader-state - with parallel execution this can be modified from multiple threads.
Change 2936758 on 2016/04/07 by Mark.Satterthwaite
Don't eliminate redundant Metal command-encoders on Intel either - this only seems to work correctly on AMD...
Change 2936762 on 2016/04/07 by Mark.Satterthwaite
Validate that parallel contexts aren't asked to clear render-targets (incl depth/stencil) as this won't work as desired - each context will end up clearing the contents meaning none of the rendering will propagate which is probably not what you intend.
Change 2936765 on 2016/04/07 by Mark.Satterthwaite
Fix alignment of blit-commands between textures & buffers in Metal. Mac Metal has no minimum alignment and allows tightly packed rows, but mobile H/W has a fixed row alignment of 64-bytes for linear texture data.
Change 2936767 on 2016/04/07 by Mark.Satterthwaite
Remove the workaround for old Mac OS X AMD cards not supporting frame-buffer sRGB - I have a feeling it causes more problems than it solves.
Change 2936773 on 2016/04/07 by Mark.Satterthwaite
Warn the user when trying to run on OpenGL 3.2 GPUs that they are running unsupported and there may be rendering errors and performance problems.
Change 2936777 on 2016/04/07 by Mark.Satterthwaite
In MetalRHI move the calls that reset the state-cache and command-encoder to EndFrame and fix the fallout. Hopefully this will eliminate the problem where a draw call fails because a call to SetRenderTargets hasn't been made since the last time the command-buffer was submitted.
Change 2936788 on 2016/04/07 by Daniel.Lamb
PR #2193: Commandlet tweaks: Fixup Redirects and Cook-on-the-fly Server (Contributed by FineRedMist)
Change 2936799 on 2016/04/07 by Mark.Satterthwaite
Automatically enable RHI thread support in Metal if parallel execution is compiled in unless running the Editor which doesn't support it. The RHI thread is only enabled in Metal when parallel execution is available because there's little to no advantages to the RHI thread with Metal unless parallel execution is enabled. Also only enable async compute support when parallel execution is available and running on an AMD GPU as only AMD support it and again its only really useful when running things in parallel. Disable the async. compute fencing code when async. compute is disabled.
Change 2936923 on 2016/04/07 by Peter.Sauerbrei
add exception when trying to access an ini section which we don't cache
Change 2937839 on 2016/04/08 by Lee.Clark
PS4 - BC6H and BC7 support
#jira OR-14804
Change 2937841 on 2016/04/08 by Lee.Clark
Fix media player not opening the same file that has just been closed.
Change 2937843 on 2016/04/08 by Lee.Clark
PS4 - Fix Media player seek and duration
Change 2938272 on 2016/04/08 by Mark.Satterthwaite
Change the Metal texture lock/unlock code to use the immediate getBytes API to read from the texture unless it is stored in Private memory and requires we use the blit-encoder. This means iOS texture locking won't generally need to use the blit encoder with its row alignment restrictions as all textures will be Shared. On Mac most textures will still be accessed via blit operations since Private memory is much more common than Managed.
Change 2938471 on 2016/04/08 by Nick.Shin
load/save with "negative char size value" fixed
two 'U''s were missing-- causing base64encoder and decoder to not return original data (or expected data for that matter)...
C++ function shows these signatures:
\Engine\Source\Runtime\Engine\Public\SaveGameSystem.h
FGenericSaveGameSystem::SaveGame(..., ..., ..., ...<uint8>);
FGenericSaveGameSystem::LoadGame(..., ..., ..., ...<uint8>);
javascript version was using signed operators...
answerhub 386719 - broken load/save
Change 2938546 on 2016/04/08 by Nick.Shin
upgrading zlib, openssl, libcurl & libwebsockets
(part 1, for libwebsockets -- engine changes will be in part 2)
and writting down all of the build instructions into a single script file
future tasks may have the script broken to smaller sized files and placed in the respective library folders for simplicity -- for now, it's bundled together to ensure build is all-in-one...
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1223 - Arrange testing for 'update websocket library'
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2939402 on 2016/04/11 by Mark.Satterthwaite
No need to call synchroniseTexture on iOS when locking a texture for read - that function call is only available and required on OS X.
Change 2939526 on 2016/04/11 by Daniel.Lamb
Don't mark content as modified when garbage collecting.
#PR2249
#2249
Change 2940094 on 2016/04/11 by Michael.Trepka
Temporarily rollback //UE4/Dev-Platform/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalContext.cpp to revision 47 to unblock UE-29312
#codereview Mark.Satterthwaite
Change 2940540 on 2016/04/12 by Jeff.Campeau
Hardware decompress support for Xbox One.
Change 2940793 on 2016/04/12 by Lee.Clark
PS4 - Fix file handle leaks
#codereview Marcus.Wassmer
Change 2940903 on 2016/04/12 by Keith.Judge
Xbox One - Fix validated driver warning when using async compute with dynamic buffers (remove dynamic buffers).
Also resurrected the old deferred deletion queue (though simplified the code a lot as TQueue was horrible), as the platform agnostic one can't deal with placement created resources with a separate buffer/resource.
Moved associated deferred deletion logic out of FD3D11DynamicBuffer.
Attempted fix for UE-28758, but doesn't actually fix it. :(
Change 2940959 on 2016/04/12 by Michael.Trepka
Moved RadioEffectUnit CoreAudio plugin to Engine/Build/Mac
#codereview Ben.Marsh
Change 2940961 on 2016/04/12 by Michael.Trepka
Updated GitHub readme for Mac with instructions for building ShaderCompileWorker
#codereview Ben.Marsh
Change 2941010 on 2016/04/12 by Daniel.Lamb
Added xboxone.projectsettings to the ini processer in UAT.
#codereview Peter.Sauerbrei
#jira UE-29344
Change 2941671 on 2016/04/12 by Jeff.Campeau
March 2016 XDK update
Change 2941998 on 2016/04/13 by Mark.Satterthwaite
In MetalCommandList retain/release when waiting on a command-buffer commit to ensure command-buffer lifetime.
Change 2942008 on 2016/04/13 by Keith.Judge
Fix black reflections when async compute is enabled. Shader resource tables are now properly bound on the context, and fixed a bug where the buffer offset and number of constants wasn't being properly set when using the ring buffer.
#jira UE-28758
Change 2942046 on 2016/04/13 by Lee.Clark
Fix SN-DBS launch failure with VS2015 - (path env seems to be null in 2015)
Change 2942095 on 2016/04/13 by Mark.Satterthwaite
MIssed a change to use AlignedStride rather than Stride in FMetalDynamicRHI::RHIReadSurfaceFloatData to fix iOS blit-encoder read-back.
Change 2942383 on 2016/04/13 by Mark.Satterthwaite
When locking a Metal texture on Mac you have to submit the command buffer & wait in a different location for Private vs. Managed access.
Change 2942419 on 2016/04/13 by Michael.Trepka
Enabled IPv6 on iOS and Mac
#jira UEPLAT-1168
Change 2942472 on 2016/04/13 by Daniel.Lamb
Fixed missing OnlineSubsystemGooglePlay section from UAT ini processing.
#codereview Peter.Sauerbrei
Change 2942829 on 2016/04/13 by Nick.Shin
removing unused emscripten - ThirdParty folder
the ThirdParty folder contained a lot of GPL (and sometimes missing) licensing projects - removing to keep legal happy
tested with full rebuild, full cook, packaging and running QAGame
Change 2943110 on 2016/04/13 by Chris.Babcock
Fix Oculus mobile binaries filtered (include the jars)
#jira ue-29080
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943111 on 2016/04/13 by Chris.Babcock
Fix GearVR plugin jar copy logic
#jira UE-29108
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943579 on 2016/04/14 by Peter.Sauerbrei
enable tvOS in the binary build
Change 2943587 on 2016/04/14 by Peter.Sauerbrei
creation of xcode archives when using the archive command with iOS
Change 2943619 on 2016/04/14 by Mark.Satterthwaite
Make Metal SM4 the default on Mac again for the 4.12 release. As expected there are many bugs to resolve.
Change 2943869 on 2016/04/14 by Daniel.Lamb
Turned duplicate stage of files into warning.
#codereview Peter.Sauerbrei
#lockdown Josh.Adams
#jira UE-29487
Change 2943901 on 2016/04/14 by Keith.Judge
Xbox One - Fix start up crash.
#lockdown Josh.Adams
Change 2943981 on 2016/04/14 by Mark.Satterthwaite
Allow RWBuffers in Metal, which should work, but not RWTextures which aren't yet supported.
#jira UE-29492
#lockdown josh.adams
Change 2944080 on 2016/04/14 by Peter.Sauerbrei
temporarily remove code which removes passwords in ini files which reside in the pak file
multiple defaultengine.ini files were being copied over one another
#lockdown josh.adams
Change 2944249 on 2016/04/14 by Peter.Sauerbrei
fix for writing out DefaulEngine.ini when deprecated items are not changed
#codereview zabir.hoque
#lockdown josh.adams
Change 2944454 on 2016/04/14 by Peter.Sauerbrei
fix for incorrect archive directory and missing IPA
#jira UE-29509
#lockdown josh.adams
Change 2944834 on 2016/04/15 by Peter.Sauerbrei
fix for crash on some iOS device due to resources being freed while still in use by the GPU
#jira UE-29517
#lockdown josh.adams
Change 2944915 on 2016/04/15 by Peter.Sauerbrei
fix for including Facebook SDK in tvOS since we don't have the Facebook libraries for tvOS yet
#lockdown josh.adams
Change 2945164 on 2016/04/15 by Josh.Adams
- Removing XboxOnePDBFile from junkmanifest, causes too much trouble when staging using AutoSDKs
#lockdown nick.penwarden
#codereview jeff.campeau
#lockdown nick.penwarden
[CL 2945174 by Josh Adams in Main branch]
2016-04-15 10:04:09 -04:00
if ( TargetPlatform = = UnrealTargetPlatform . TVOS & & HostPlatform = = UnrealTargetPlatform . Win64 & & HostPlatforms . Contains ( UnrealTargetPlatform . Mac ) )
{
return UnrealTargetPlatform . Mac ;
}
2015-03-27 08:02:21 -04:00
return HostPlatform ;
}
public static bool IsCodeTargetPlatform ( UnrealTargetPlatform HostPlatform , UnrealTargetPlatform TargetPlatform )
{
if ( TargetPlatform = = UnrealTargetPlatform . Linux )
{
return false ;
}
if ( HostPlatform = = UnrealTargetPlatform . Win64 & & TargetPlatform = = UnrealTargetPlatform . IOS )
{
return false ;
}
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2945165)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2731596 on 2015/10/16 by Keith.Judge
Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step.
Change 2764244 on 2015/11/12 by Keith.Judge
Stop creating/deleting SRVs for dynamic buffers all the time. Instead add a new view when a new buffer is cycled and keep them around until the buffer is dead.
Change 2936695 on 2016/04/07 by Mark.Satterthwaite
Disable Metal on Mac OS X versions prior to 10.11.4 because their drivers are too buggy and lots of issues users will encounter were fixed in 10.11.4.
Change 2936701 on 2016/04/07 by Mark.Satterthwaite
Re-enable DistanceFieldAO on Mac Metal, but disable the support for Heightfield composition into the DistanceFieldAO as that currently requires Read+Write texture support which isn't present in Metal yet.
Change 2936702 on 2016/04/07 by Mark.Satterthwaite
Enable capsule shadows on Metal SM5 for Mac Paragon.
Change 2936704 on 2016/04/07 by Mark.Satterthwaite
Re-add Metal_MacES3_1 entries in RHIDefinition functions - not quite sure how they disappeared...
Change 2936706 on 2016/04/07 by Mark.Satterthwaite
Fix implementation of BeginRenderingPrePass to only clear the depth+stencil buffers when it is asked to - this fixes LOD fading in Paragon on Mac when parallel execution is enabled. The parallel contexts were being instructed to clear the pre-pass data which was then fouling up all the subsequent rendering.
Change 2936708 on 2016/04/07 by Mark.Satterthwaite
Extend workaround from 2905206 for UE-27818 to Metal as well as OpenGL - it isn't permissable to have an unbound resource on these APIs as you aren't allowed to make the assumption than an if-branch will protect against null dereference on the GPU.
Change 2936737 on 2016/04/07 by Mark.Satterthwaite
Changes to reduce Metal's peak memory usage when streaming texture data in when loading levels:
- When uploading data to Shared memory Metal textures dispose of the source buffer immediately as it won't be required after the call to replaceRegion.
- Add an optional CVar ("rhi.Metal.MaxOutstandingAsyncTexUploads") and keep a count of outstanding async. texture uploads - really this might be better as a memory count - if teh current outstanding count is greater than the specified CVar wait for all operations to complete before purging the used buffers. By default the CVar is set to 0 which disables the tracking and the game will use all available memory.
Change 2936741 on 2016/04/07 by Mark.Satterthwaite
For Metal don't use a texture-view unless the mip-range or texture format is different - we only create a texture-view if we absolutely have to in order to avoid performance reductions on some vendors. When this happens we'll have to update the SRV to point to the new source texture but that can be handled on bind.
Change 2936753 on 2016/04/07 by Mark.Satterthwaite
Mutex the pipeline cache inside each Metal bound-shader-state - with parallel execution this can be modified from multiple threads.
Change 2936758 on 2016/04/07 by Mark.Satterthwaite
Don't eliminate redundant Metal command-encoders on Intel either - this only seems to work correctly on AMD...
Change 2936762 on 2016/04/07 by Mark.Satterthwaite
Validate that parallel contexts aren't asked to clear render-targets (incl depth/stencil) as this won't work as desired - each context will end up clearing the contents meaning none of the rendering will propagate which is probably not what you intend.
Change 2936765 on 2016/04/07 by Mark.Satterthwaite
Fix alignment of blit-commands between textures & buffers in Metal. Mac Metal has no minimum alignment and allows tightly packed rows, but mobile H/W has a fixed row alignment of 64-bytes for linear texture data.
Change 2936767 on 2016/04/07 by Mark.Satterthwaite
Remove the workaround for old Mac OS X AMD cards not supporting frame-buffer sRGB - I have a feeling it causes more problems than it solves.
Change 2936773 on 2016/04/07 by Mark.Satterthwaite
Warn the user when trying to run on OpenGL 3.2 GPUs that they are running unsupported and there may be rendering errors and performance problems.
Change 2936777 on 2016/04/07 by Mark.Satterthwaite
In MetalRHI move the calls that reset the state-cache and command-encoder to EndFrame and fix the fallout. Hopefully this will eliminate the problem where a draw call fails because a call to SetRenderTargets hasn't been made since the last time the command-buffer was submitted.
Change 2936788 on 2016/04/07 by Daniel.Lamb
PR #2193: Commandlet tweaks: Fixup Redirects and Cook-on-the-fly Server (Contributed by FineRedMist)
Change 2936799 on 2016/04/07 by Mark.Satterthwaite
Automatically enable RHI thread support in Metal if parallel execution is compiled in unless running the Editor which doesn't support it. The RHI thread is only enabled in Metal when parallel execution is available because there's little to no advantages to the RHI thread with Metal unless parallel execution is enabled. Also only enable async compute support when parallel execution is available and running on an AMD GPU as only AMD support it and again its only really useful when running things in parallel. Disable the async. compute fencing code when async. compute is disabled.
Change 2936923 on 2016/04/07 by Peter.Sauerbrei
add exception when trying to access an ini section which we don't cache
Change 2937839 on 2016/04/08 by Lee.Clark
PS4 - BC6H and BC7 support
#jira OR-14804
Change 2937841 on 2016/04/08 by Lee.Clark
Fix media player not opening the same file that has just been closed.
Change 2937843 on 2016/04/08 by Lee.Clark
PS4 - Fix Media player seek and duration
Change 2938272 on 2016/04/08 by Mark.Satterthwaite
Change the Metal texture lock/unlock code to use the immediate getBytes API to read from the texture unless it is stored in Private memory and requires we use the blit-encoder. This means iOS texture locking won't generally need to use the blit encoder with its row alignment restrictions as all textures will be Shared. On Mac most textures will still be accessed via blit operations since Private memory is much more common than Managed.
Change 2938471 on 2016/04/08 by Nick.Shin
load/save with "negative char size value" fixed
two 'U''s were missing-- causing base64encoder and decoder to not return original data (or expected data for that matter)...
C++ function shows these signatures:
\Engine\Source\Runtime\Engine\Public\SaveGameSystem.h
FGenericSaveGameSystem::SaveGame(..., ..., ..., ...<uint8>);
FGenericSaveGameSystem::LoadGame(..., ..., ..., ...<uint8>);
javascript version was using signed operators...
answerhub 386719 - broken load/save
Change 2938546 on 2016/04/08 by Nick.Shin
upgrading zlib, openssl, libcurl & libwebsockets
(part 1, for libwebsockets -- engine changes will be in part 2)
and writting down all of the build instructions into a single script file
future tasks may have the script broken to smaller sized files and placed in the respective library folders for simplicity -- for now, it's bundled together to ensure build is all-in-one...
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1223 - Arrange testing for 'update websocket library'
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2939402 on 2016/04/11 by Mark.Satterthwaite
No need to call synchroniseTexture on iOS when locking a texture for read - that function call is only available and required on OS X.
Change 2939526 on 2016/04/11 by Daniel.Lamb
Don't mark content as modified when garbage collecting.
#PR2249
#2249
Change 2940094 on 2016/04/11 by Michael.Trepka
Temporarily rollback //UE4/Dev-Platform/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalContext.cpp to revision 47 to unblock UE-29312
#codereview Mark.Satterthwaite
Change 2940540 on 2016/04/12 by Jeff.Campeau
Hardware decompress support for Xbox One.
Change 2940793 on 2016/04/12 by Lee.Clark
PS4 - Fix file handle leaks
#codereview Marcus.Wassmer
Change 2940903 on 2016/04/12 by Keith.Judge
Xbox One - Fix validated driver warning when using async compute with dynamic buffers (remove dynamic buffers).
Also resurrected the old deferred deletion queue (though simplified the code a lot as TQueue was horrible), as the platform agnostic one can't deal with placement created resources with a separate buffer/resource.
Moved associated deferred deletion logic out of FD3D11DynamicBuffer.
Attempted fix for UE-28758, but doesn't actually fix it. :(
Change 2940959 on 2016/04/12 by Michael.Trepka
Moved RadioEffectUnit CoreAudio plugin to Engine/Build/Mac
#codereview Ben.Marsh
Change 2940961 on 2016/04/12 by Michael.Trepka
Updated GitHub readme for Mac with instructions for building ShaderCompileWorker
#codereview Ben.Marsh
Change 2941010 on 2016/04/12 by Daniel.Lamb
Added xboxone.projectsettings to the ini processer in UAT.
#codereview Peter.Sauerbrei
#jira UE-29344
Change 2941671 on 2016/04/12 by Jeff.Campeau
March 2016 XDK update
Change 2941998 on 2016/04/13 by Mark.Satterthwaite
In MetalCommandList retain/release when waiting on a command-buffer commit to ensure command-buffer lifetime.
Change 2942008 on 2016/04/13 by Keith.Judge
Fix black reflections when async compute is enabled. Shader resource tables are now properly bound on the context, and fixed a bug where the buffer offset and number of constants wasn't being properly set when using the ring buffer.
#jira UE-28758
Change 2942046 on 2016/04/13 by Lee.Clark
Fix SN-DBS launch failure with VS2015 - (path env seems to be null in 2015)
Change 2942095 on 2016/04/13 by Mark.Satterthwaite
MIssed a change to use AlignedStride rather than Stride in FMetalDynamicRHI::RHIReadSurfaceFloatData to fix iOS blit-encoder read-back.
Change 2942383 on 2016/04/13 by Mark.Satterthwaite
When locking a Metal texture on Mac you have to submit the command buffer & wait in a different location for Private vs. Managed access.
Change 2942419 on 2016/04/13 by Michael.Trepka
Enabled IPv6 on iOS and Mac
#jira UEPLAT-1168
Change 2942472 on 2016/04/13 by Daniel.Lamb
Fixed missing OnlineSubsystemGooglePlay section from UAT ini processing.
#codereview Peter.Sauerbrei
Change 2942829 on 2016/04/13 by Nick.Shin
removing unused emscripten - ThirdParty folder
the ThirdParty folder contained a lot of GPL (and sometimes missing) licensing projects - removing to keep legal happy
tested with full rebuild, full cook, packaging and running QAGame
Change 2943110 on 2016/04/13 by Chris.Babcock
Fix Oculus mobile binaries filtered (include the jars)
#jira ue-29080
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943111 on 2016/04/13 by Chris.Babcock
Fix GearVR plugin jar copy logic
#jira UE-29108
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943579 on 2016/04/14 by Peter.Sauerbrei
enable tvOS in the binary build
Change 2943587 on 2016/04/14 by Peter.Sauerbrei
creation of xcode archives when using the archive command with iOS
Change 2943619 on 2016/04/14 by Mark.Satterthwaite
Make Metal SM4 the default on Mac again for the 4.12 release. As expected there are many bugs to resolve.
Change 2943869 on 2016/04/14 by Daniel.Lamb
Turned duplicate stage of files into warning.
#codereview Peter.Sauerbrei
#lockdown Josh.Adams
#jira UE-29487
Change 2943901 on 2016/04/14 by Keith.Judge
Xbox One - Fix start up crash.
#lockdown Josh.Adams
Change 2943981 on 2016/04/14 by Mark.Satterthwaite
Allow RWBuffers in Metal, which should work, but not RWTextures which aren't yet supported.
#jira UE-29492
#lockdown josh.adams
Change 2944080 on 2016/04/14 by Peter.Sauerbrei
temporarily remove code which removes passwords in ini files which reside in the pak file
multiple defaultengine.ini files were being copied over one another
#lockdown josh.adams
Change 2944249 on 2016/04/14 by Peter.Sauerbrei
fix for writing out DefaulEngine.ini when deprecated items are not changed
#codereview zabir.hoque
#lockdown josh.adams
Change 2944454 on 2016/04/14 by Peter.Sauerbrei
fix for incorrect archive directory and missing IPA
#jira UE-29509
#lockdown josh.adams
Change 2944834 on 2016/04/15 by Peter.Sauerbrei
fix for crash on some iOS device due to resources being freed while still in use by the GPU
#jira UE-29517
#lockdown josh.adams
Change 2944915 on 2016/04/15 by Peter.Sauerbrei
fix for including Facebook SDK in tvOS since we don't have the Facebook libraries for tvOS yet
#lockdown josh.adams
Change 2945164 on 2016/04/15 by Josh.Adams
- Removing XboxOnePDBFile from junkmanifest, causes too much trouble when staging using AutoSDKs
#lockdown nick.penwarden
#codereview jeff.campeau
#lockdown nick.penwarden
[CL 2945174 by Josh Adams in Main branch]
2016-04-15 10:04:09 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Win64 & & TargetPlatform = = UnrealTargetPlatform . TVOS )
{
return false ;
}
2015-03-27 08:02:21 -04:00
return true ;
}
}
2015-08-11 08:14:46 -04:00
public class WaitToMakeRocketBuild : GUBP . WaitForUserInput
{
2015-08-12 13:58:01 -04:00
public WaitToMakeRocketBuild ( GUBP . GUBPBranchConfig BranchConfig )
2015-08-11 08:14:46 -04:00
{
2015-08-12 13:58:01 -04:00
foreach ( UnrealTargetPlatform HostPlatform in BranchConfig . HostPlatforms )
2015-08-11 08:14:46 -04:00
{
2016-01-11 10:12:46 -05:00
AddPseudodependency ( FilterRocketNode . StaticGetFullName ( HostPlatform ) ) ;
AddPseudodependency ( BuildDerivedDataCacheNode . StaticGetFullName ( HostPlatform ) ) ;
2015-08-12 13:58:01 -04:00
SingleTargetProperties BuildPatchTool = BranchConfig . Branch . FindProgram ( "BuildPatchTool" ) ;
if ( BuildPatchTool . Rules ! = null )
{
2016-01-11 10:12:46 -05:00
AddPseudodependency ( GUBP . SingleInternalToolsNode . StaticGetFullName ( HostPlatform , BuildPatchTool ) ) ;
2015-08-12 13:58:01 -04:00
}
2015-08-11 08:14:46 -04:00
}
}
2016-01-22 08:13:18 -05:00
public static bool ShouldAddTrigger ( GUBP . GUBPBranchConfig BranchConfig )
{
return ! BranchConfig . BranchName . StartsWith ( "//UE4/Release-" ) ;
}
2015-08-11 08:14:46 -04:00
public static string StaticGetFullName ( )
{
return "WaitToMakeRocketBuild" ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( ) ;
}
public override string GetTriggerDescText ( )
{
return "Ready to make Rocket build" ;
}
public override string GetTriggerActionText ( )
{
return "Make Rocket build" ;
}
}
2016-04-14 20:35:31 -04:00
public class RunGithubPromotion : GUBP . HostPlatformNode
2015-03-30 14:29:36 -04:00
{
2016-04-14 20:35:31 -04:00
string BranchName ;
int Changelist ;
public RunGithubPromotion ( UnrealTargetPlatform HostPlatform , List < UnrealTargetPlatform > ForHostPlatforms , string InBranchName , int InChangelist ) : base ( HostPlatform )
2015-03-30 14:29:36 -04:00
{
2016-04-14 20:35:31 -04:00
BranchName = InBranchName ;
Changelist = InChangelist ;
2015-07-08 08:05:50 -04:00
foreach ( UnrealTargetPlatform ForHostPlatform in ForHostPlatforms )
2015-03-30 14:29:36 -04:00
{
2015-09-14 11:07:07 -04:00
AddPseudodependency ( GUBP . RootEditorNode . StaticGetFullName ( ForHostPlatform ) ) ;
AddPseudodependency ( GUBP . ToolsNode . StaticGetFullName ( ForHostPlatform ) ) ;
AddPseudodependency ( GUBP . InternalToolsNode . StaticGetFullName ( ForHostPlatform ) ) ;
2015-03-30 14:29:36 -04:00
}
}
public static string StaticGetFullName ( UnrealTargetPlatform HostPlatform )
{
2016-04-14 20:35:31 -04:00
return "RunGithubPromotion" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
2015-03-30 14:29:36 -04:00
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
2015-09-14 11:07:07 -04:00
public override int CISFrequencyQuantumShift ( GUBP . GUBPBranchConfig BranchConfig )
{
return 6 ;
}
2015-03-30 14:29:36 -04:00
public override void DoBuild ( GUBP bp )
{
2015-09-14 11:07:07 -04:00
// Label everything in the branch at this changelist
2016-04-14 20:35:31 -04:00
if ( CommandUtils . IsBuildMachine )
2015-09-14 11:07:07 -04:00
{
2016-04-14 20:35:31 -04:00
CommandUtils . Run ( "ectool.exe" , String . Format ( "runProcedure GitHub --procedureName \"Run Promotion\" --actualParameter \"Branch={0}\" --actualParameter \"CL={1}\"" , BranchName , Changelist ) , Options : CommandUtils . ERunOptions . None ) ;
2015-09-14 11:07:07 -04:00
}
2015-09-11 12:49:41 -04:00
// Create a dummy build product
BuildProducts = new List < string > ( ) ;
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
2015-03-30 14:29:36 -04:00
}
}
2015-04-23 18:13:08 -04:00
public abstract class StripRocketNode : GUBP . HostPlatformNode
2015-03-27 08:02:21 -04:00
{
2015-07-07 16:34:24 -04:00
public GUBP . GUBPBranchConfig BranchConfig ;
2015-04-23 18:13:08 -04:00
public UnrealTargetPlatform TargetPlatform ;
public string StrippedDir ;
2015-04-24 20:29:44 -04:00
public List < string > NodesToStrip = new List < string > ( ) ;
2015-03-27 08:02:21 -04:00
2015-07-07 16:34:24 -04:00
public StripRocketNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , UnrealTargetPlatform InTargetPlatform , string InStrippedDir ) : base ( InHostPlatform )
2015-03-27 08:02:21 -04:00
{
2015-07-07 16:34:24 -04:00
BranchConfig = InBranchConfig ;
2015-04-23 18:13:08 -04:00
TargetPlatform = InTargetPlatform ;
StrippedDir = InStrippedDir ;
2015-03-27 08:02:21 -04:00
}
2016-02-03 15:40:40 -05:00
public override string [ ] GetAgentTypes ( )
{
return new string [ ] { "Compile" + HostPlatform . ToString ( ) , HostPlatform . ToString ( ) } ;
}
2015-04-23 18:13:08 -04:00
public override abstract string GetFullName ( ) ;
2015-03-27 08:02:21 -04:00
2015-04-24 20:29:44 -04:00
public void AddNodeToStrip ( string NodeName )
{
NodesToStrip . Add ( NodeName ) ;
AddDependency ( NodeName ) ;
}
2015-04-23 18:13:08 -04:00
public static bool IsRequiredForPlatform ( UnrealTargetPlatform Platform )
2015-03-27 08:02:21 -04:00
{
2015-04-28 15:47:56 -04:00
return Platform ! = UnrealTargetPlatform . HTML5 ;
2015-03-27 08:02:21 -04:00
}
2015-04-10 13:56:50 -04:00
public override void DoBuild ( GUBP bp )
2015-03-27 08:02:21 -04:00
{
2015-04-10 13:56:50 -04:00
BuildProducts = new List < string > ( ) ;
2015-03-27 08:02:21 -04:00
2015-04-10 13:56:50 -04:00
string InputDir = Path . GetFullPath ( CommandUtils . CmdEnv . LocalRoot ) ;
string RulesFileName = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Build" , "InstalledEngineFilters.ini" ) ;
2015-04-23 18:13:08 -04:00
// Read the filter for files on this platform
FileFilter StripFilter = new FileFilter ( ) ;
StripFilter . ReadRulesFromFile ( RulesFileName , "StripSymbols." + TargetPlatform . ToString ( ) , HostPlatform . ToString ( ) ) ;
// Apply the filter to the build products
List < string > SourcePaths = new List < string > ( ) ;
List < string > TargetPaths = new List < string > ( ) ;
2015-04-24 20:29:44 -04:00
foreach ( string NodeToStrip in NodesToStrip )
2015-03-27 08:02:21 -04:00
{
2015-07-07 16:34:24 -04:00
GUBP . GUBPNode Node = BranchConfig . FindNode ( NodeToStrip ) ;
2015-04-24 20:29:44 -04:00
foreach ( string DependencyBuildProduct in Node . BuildProducts )
2015-03-30 09:19:45 -04:00
{
2015-04-24 20:29:44 -04:00
string RelativePath = CommandUtils . StripBaseDirectory ( Path . GetFullPath ( DependencyBuildProduct ) , InputDir ) ;
if ( StripFilter . Matches ( RelativePath ) )
{
SourcePaths . Add ( CommandUtils . CombinePaths ( InputDir , RelativePath ) ) ;
TargetPaths . Add ( CommandUtils . CombinePaths ( StrippedDir , RelativePath ) ) ;
}
2015-03-30 09:19:45 -04:00
}
2015-03-27 08:02:21 -04:00
}
2015-04-23 18:13:08 -04:00
// Strip the files and add them to the build products
StripSymbols ( TargetPlatform , SourcePaths . ToArray ( ) , TargetPaths . ToArray ( ) ) ;
BuildProducts . AddRange ( TargetPaths ) ;
2015-04-10 13:56:50 -04:00
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
2015-03-27 08:02:21 -04:00
}
2015-03-27 11:34:27 -04:00
2015-04-10 13:56:50 -04:00
public static void StripSymbols ( UnrealTargetPlatform TargetPlatform , string [ ] SourceFileNames , string [ ] TargetFileNames )
2015-03-27 11:34:27 -04:00
{
2015-09-27 13:32:44 -04:00
UEBuildPlatform Platform = UEBuildPlatform . GetBuildPlatform ( TargetPlatform ) ;
2015-09-30 16:40:04 -04:00
UEToolChain ToolChain = Platform . CreateContext ( null ) . CreateToolChainForDefaultCppPlatform ( ) ;
2015-04-27 12:53:24 -04:00
for ( int Idx = 0 ; Idx < SourceFileNames . Length ; Idx + + )
2015-03-27 11:34:27 -04:00
{
2015-04-27 12:53:24 -04:00
CommandUtils . CreateDirectory ( Path . GetDirectoryName ( TargetFileNames [ Idx ] ) ) ;
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Stripping symbols: {0} -> {1}" , SourceFileNames [ Idx ] , TargetFileNames [ Idx ] ) ;
2015-04-27 12:53:24 -04:00
ToolChain . StripSymbols ( SourceFileNames [ Idx ] , TargetFileNames [ Idx ] ) ;
2015-03-27 11:34:27 -04:00
}
}
2015-03-27 08:02:21 -04:00
}
2015-04-23 18:13:08 -04:00
public class StripRocketToolsNode : StripRocketNode
{
2015-07-07 16:34:24 -04:00
public StripRocketToolsNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , string InStrippedDir )
: base ( InBranchConfig , InHostPlatform , InHostPlatform , InStrippedDir )
2015-04-23 18:13:08 -04:00
{
2015-04-24 20:29:44 -04:00
AddNodeToStrip ( GUBP . ToolsForCompileNode . StaticGetFullName ( HostPlatform ) ) ;
AddNodeToStrip ( GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2016-01-11 10:12:46 -05:00
SingleTargetProperties BuildPatchTool = BranchConfig . Branch . FindProgram ( "BuildPatchTool" ) ;
if ( BuildPatchTool . Rules = = null )
{
throw new AutomationException ( "Could not find program BuildPatchTool." ) ;
}
AddNodeToStrip ( GUBP . SingleInternalToolsNode . StaticGetFullName ( HostPlatform , BuildPatchTool ) ) ;
2015-04-23 18:13:08 -04:00
AgentSharingGroup = "ToolsGroup" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
return "Strip" + GUBP . ToolsNode . StaticGetFullName ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
}
public class StripRocketEditorNode : StripRocketNode
{
2015-07-07 16:34:24 -04:00
public StripRocketEditorNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , string InStrippedDir )
: base ( InBranchConfig , InHostPlatform , InHostPlatform , InStrippedDir )
2015-04-23 18:13:08 -04:00
{
2015-04-24 20:29:44 -04:00
AddNodeToStrip ( GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-23 18:13:08 -04:00
AgentSharingGroup = "Editor" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
}
2015-06-03 08:16:59 -04:00
public override float Priority ( )
{
return 1000000.0f ;
}
2015-04-23 18:13:08 -04:00
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
return "Strip" + GUBP . RootEditorNode . StaticGetFullName ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
}
public class StripRocketMonolithicsNode : StripRocketNode
{
BranchInfo . BranchUProject Project ;
bool bIsCodeTargetPlatform ;
2015-07-08 08:05:50 -04:00
public StripRocketMonolithicsNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , UnrealTargetPlatform InTargetPlatform , string InStrippedDir ) : base ( InBranchConfig , InHostPlatform , InTargetPlatform , InStrippedDir )
2015-04-23 18:13:08 -04:00
{
2015-07-08 08:05:50 -04:00
Project = InBranchConfig . Branch . BaseEngineProject ;
2015-04-28 15:47:56 -04:00
bIsCodeTargetPlatform = RocketBuild . IsCodeTargetPlatform ( InHostPlatform , InTargetPlatform ) ;
2015-04-23 18:13:08 -04:00
2015-07-07 16:34:24 -04:00
GUBP . GUBPNode Node = InBranchConfig . FindNode ( GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( HostPlatform , Project , InTargetPlatform , Precompiled : bIsCodeTargetPlatform ) ) ;
2015-04-24 20:25:23 -04:00
if ( String . IsNullOrEmpty ( Node . AgentSharingGroup ) )
{
2015-07-08 08:05:50 -04:00
Node . AgentSharingGroup = BranchConfig . Branch . BaseEngineProject . GameName + "_MonolithicsGroup_" + InTargetPlatform + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
2015-04-24 20:25:23 -04:00
}
2015-04-24 20:29:44 -04:00
AddNodeToStrip ( Node . GetFullName ( ) ) ;
2015-04-23 18:13:08 -04:00
2015-04-24 20:25:23 -04:00
AgentSharingGroup = Node . AgentSharingGroup ;
2015-04-23 18:13:08 -04:00
}
2016-02-07 17:49:14 -05:00
public override float Priority ( )
{
return 1000000.0f ;
}
2015-04-24 12:36:57 -04:00
public override string GetDisplayGroupName ( )
{
return Project . GameName + "_Monolithics" + ( bIsCodeTargetPlatform ? "_Precompiled" : "" ) ;
}
2015-04-23 18:13:08 -04:00
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform , BranchInfo . BranchUProject InProject , UnrealTargetPlatform InTargetPlatform , bool bIsCodeTargetPlatform )
{
string Name = InProject . GameName + "_" + InTargetPlatform + "_Mono" ;
if ( bIsCodeTargetPlatform )
{
Name + = "_Precompiled" ;
}
return Name + "_Strip" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform , Project , TargetPlatform , bIsCodeTargetPlatform ) ;
}
}
2015-07-17 13:13:26 -04:00
public abstract class SignRocketNode : GUBP . HostPlatformNode
{
public GUBP . GUBPBranchConfig BranchConfig ;
public UnrealTargetPlatform TargetPlatform ;
public string SignedDir ;
public List < string > NodesToSign = new List < string > ( ) ;
public SignRocketNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , UnrealTargetPlatform InTargetPlatform , string InSignedDir )
: base ( InHostPlatform )
{
BranchConfig = InBranchConfig ;
TargetPlatform = InTargetPlatform ;
SignedDir = InSignedDir ;
}
2016-02-03 15:40:40 -05:00
public override string [ ] GetAgentTypes ( )
{
return new string [ ] { "Compile" + HostPlatform . ToString ( ) , HostPlatform . ToString ( ) } ;
}
2015-07-17 13:13:26 -04:00
public override abstract string GetFullName ( ) ;
public void AddNodeToSign ( string NodeName )
{
NodesToSign . Add ( NodeName ) ;
AddDependency ( NodeName ) ;
}
public static bool IsRequiredForPlatform ( UnrealTargetPlatform Platform )
{
return Platform = = UnrealTargetPlatform . Mac | | Platform = = UnrealTargetPlatform . Win64 | | Platform = = UnrealTargetPlatform . Win32 ;
}
public override void DoBuild ( GUBP bp )
{
BuildProducts = new List < string > ( ) ;
string InputDir = Path . GetFullPath ( CommandUtils . CmdEnv . LocalRoot ) ;
// Read the filter for files on this platform
FileFilter SignFilter = new FileFilter ( ) ;
if ( HostPlatform = = UnrealTargetPlatform . Mac )
{
SignFilter . AddRule ( "*.dylib" ) ;
SignFilter . AddRule ( "*.app" ) ;
}
else
{
SignFilter . AddRule ( "*.exe" ) ;
SignFilter . AddRule ( "*.dll" ) ;
}
// Apply the filter to the build products
List < string > SourcePaths = new List < string > ( ) ;
List < string > TargetPaths = new List < string > ( ) ;
foreach ( string NodeToSign in NodesToSign )
{
GUBP . GUBPNode Node = BranchConfig . FindNode ( NodeToSign ) ;
foreach ( string DependencyBuildProduct in Node . BuildProducts )
{
string RelativePath = CommandUtils . StripBaseDirectory ( Path . GetFullPath ( DependencyBuildProduct ) , InputDir ) ;
if ( SignFilter . Matches ( RelativePath ) )
{
SourcePaths . Add ( CommandUtils . CombinePaths ( InputDir , RelativePath ) ) ;
TargetPaths . Add ( CommandUtils . CombinePaths ( SignedDir , RelativePath ) ) ;
}
}
}
// Strip the files and add them to the build products
SignFiles ( bp , SourcePaths . ToArray ( ) , TargetPaths . ToArray ( ) ) ;
BuildProducts . AddRange ( TargetPaths ) ;
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
}
public void SignFiles ( GUBP bp , string [ ] SourceFileNames , string [ ] TargetFileNames )
{
// copy the files from source to target
for ( int Idx = 0 ; Idx < SourceFileNames . Length ; Idx + + )
{
CommandUtils . CreateDirectory ( Path . GetDirectoryName ( TargetFileNames [ Idx ] ) ) ;
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Signing code: {0} -> {1}" , SourceFileNames [ Idx ] , TargetFileNames [ Idx ] ) ;
2015-07-17 13:13:26 -04:00
CommandUtils . CopyFile ( SourceFileNames [ Idx ] , TargetFileNames [ Idx ] ) ;
}
// Sign everything we built
CodeSign . SignMultipleIfEXEOrDLL ( bp , TargetFileNames . ToList ( ) ) ;
}
}
public class SignRocketToolsNode : SignRocketNode
{
public SignRocketToolsNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , string InSignedDir )
: base ( InBranchConfig , InHostPlatform , InHostPlatform , InSignedDir )
{
AddNodeToSign ( GUBP . ToolsForCompileNode . StaticGetFullName ( HostPlatform ) ) ;
AddNodeToSign ( GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2016-01-11 10:12:46 -05:00
SingleTargetProperties BuildPatchTool = BranchConfig . Branch . FindProgram ( "BuildPatchTool" ) ;
if ( BuildPatchTool . Rules = = null )
{
throw new AutomationException ( "Could not find program BuildPatchTool." ) ;
}
AddNodeToSign ( GUBP . SingleInternalToolsNode . StaticGetFullName ( HostPlatform , BuildPatchTool ) ) ;
2015-07-17 13:13:26 -04:00
AddDependency ( StripRocketToolsNode . StaticGetFullName ( HostPlatform ) ) ;
AgentSharingGroup = "ToolsGroup" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
return "Sign" + GUBP . ToolsNode . StaticGetFullName ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
}
public class SignRocketEditorNode : SignRocketNode
{
public SignRocketEditorNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , string InSignedDir )
: base ( InBranchConfig , InHostPlatform , InHostPlatform , InSignedDir )
{
AddNodeToSign ( GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( StripRocketEditorNode . StaticGetFullName ( HostPlatform ) ) ;
AgentSharingGroup = "Editor" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
}
public override float Priority ( )
{
return 1000000.0f ;
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
return "Sign" + GUBP . RootEditorNode . StaticGetFullName ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
}
public class SignRocketMonolithicsNode : SignRocketNode
{
BranchInfo . BranchUProject Project ;
bool bIsCodeTargetPlatform ;
public SignRocketMonolithicsNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , UnrealTargetPlatform InTargetPlatform , string InSignedDir )
: base ( InBranchConfig , InHostPlatform , InTargetPlatform , InSignedDir )
{
Project = InBranchConfig . Branch . BaseEngineProject ;
bIsCodeTargetPlatform = RocketBuild . IsCodeTargetPlatform ( InHostPlatform , InTargetPlatform ) ;
GUBP . GUBPNode Node = InBranchConfig . FindNode ( GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( HostPlatform , Project , InTargetPlatform , Precompiled : bIsCodeTargetPlatform ) ) ;
if ( String . IsNullOrEmpty ( Node . AgentSharingGroup ) )
{
Node . AgentSharingGroup = BranchConfig . Branch . BaseEngineProject . GameName + "_MonolithicsGroup_" + InTargetPlatform + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
}
AddNodeToSign ( Node . GetFullName ( ) ) ;
string StripNode = StripRocketMonolithicsNode . StaticGetFullName ( HostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , RocketBuild . IsCodeTargetPlatform ( HostPlatform , TargetPlatform ) ) ;
AddDependency ( StripNode ) ;
AgentSharingGroup = Node . AgentSharingGroup ;
}
2016-02-07 17:49:14 -05:00
public override float Priority ( )
{
return 1000000.0f ;
}
2015-07-17 13:13:26 -04:00
public override string GetDisplayGroupName ( )
{
return Project . GameName + "_Monolithics" + ( bIsCodeTargetPlatform ? "_Precompiled" : "" ) ;
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform , BranchInfo . BranchUProject InProject , UnrealTargetPlatform InTargetPlatform , bool bIsCodeTargetPlatform )
{
string Name = InProject . GameName + "_" + InTargetPlatform + "_Mono" ;
if ( bIsCodeTargetPlatform )
{
Name + = "_Precompiled" ;
}
return Name + "_Sign" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform , Project , TargetPlatform , bIsCodeTargetPlatform ) ;
}
}
2015-04-10 13:56:50 -04:00
public class FilterRocketNode : GUBP . HostPlatformNode
2015-03-27 08:02:21 -04:00
{
2015-07-07 16:34:24 -04:00
GUBP . GUBPBranchConfig BranchConfig ;
2015-04-10 13:56:50 -04:00
List < UnrealTargetPlatform > SourceHostPlatforms ;
List < UnrealTargetPlatform > TargetPlatforms ;
string [ ] CurrentFeaturePacks ;
string [ ] CurrentTemplates ;
public readonly string DepotManifestPath ;
2015-04-26 18:28:11 -04:00
public Dictionary < string , string > StrippedNodeManifestPaths = new Dictionary < string , string > ( ) ;
2015-07-17 13:13:26 -04:00
public Dictionary < string , string > SignedNodeManifestPaths = new Dictionary < string , string > ( ) ;
2015-03-27 08:02:21 -04:00
2015-07-08 08:05:50 -04:00
public FilterRocketNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , List < UnrealTargetPlatform > InTargetPlatforms , string [ ] InCurrentFeaturePacks , string [ ] InCurrentTemplates )
2015-03-27 08:02:21 -04:00
: base ( InHostPlatform )
{
2015-07-07 16:34:24 -04:00
BranchConfig = InBranchConfig ;
2015-04-10 13:56:50 -04:00
TargetPlatforms = new List < UnrealTargetPlatform > ( InTargetPlatforms ) ;
CurrentFeaturePacks = InCurrentFeaturePacks ;
CurrentTemplates = InCurrentTemplates ;
2015-04-26 18:28:11 -04:00
DepotManifestPath = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Saved" , "Rocket" , HostPlatform . ToString ( ) , "Filter.txt" ) ;
2015-03-27 08:02:21 -04:00
2015-04-10 13:56:50 -04:00
// Add the editor
2015-03-27 08:02:21 -04:00
AddDependency ( GUBP . VersionFilesNode . StaticGetFullName ( ) ) ;
AddDependency ( GUBP . ToolsForCompileNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2016-01-11 10:12:46 -05:00
SingleTargetProperties BuildPatchTool = BranchConfig . Branch . FindProgram ( "BuildPatchTool" ) ;
if ( BuildPatchTool . Rules = = null )
{
throw new AutomationException ( "Could not find program BuildPatchTool." ) ;
}
AddDependency ( GUBP . SingleInternalToolsNode . StaticGetFullName ( HostPlatform , BuildPatchTool ) ) ;
2015-04-28 15:47:56 -04:00
// Add all the monolithic builds from their appropriate source host platform
2015-04-23 18:13:08 -04:00
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
2015-04-10 13:56:50 -04:00
{
2015-07-08 08:05:50 -04:00
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
2015-04-28 15:47:56 -04:00
bool bIsCodeTargetPlatform = RocketBuild . IsCodeTargetPlatform ( SourceHostPlatform , TargetPlatform ) ;
2015-07-08 08:05:50 -04:00
AddDependency ( GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , Precompiled : bIsCodeTargetPlatform ) ) ;
2015-04-28 15:47:56 -04:00
}
2015-04-23 18:13:08 -04:00
2015-04-28 15:47:56 -04:00
// Also add stripped symbols for all the target platforms that require it
List < string > StrippedNodeNames = new List < string > ( ) ;
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
{
2015-04-23 18:13:08 -04:00
if ( StripRocketNode . IsRequiredForPlatform ( TargetPlatform ) )
{
2015-07-08 08:05:50 -04:00
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
string StripNode = StripRocketMonolithicsNode . StaticGetFullName ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , RocketBuild . IsCodeTargetPlatform ( SourceHostPlatform , TargetPlatform ) ) ;
2015-04-23 18:13:08 -04:00
AddDependency ( StripNode ) ;
2015-04-26 18:28:11 -04:00
StrippedNodeNames . Add ( StripNode ) ;
2015-04-23 18:13:08 -04:00
}
2015-04-10 13:56:50 -04:00
}
2015-07-17 13:13:26 -04:00
// Also add signed node for all the target platforms that require it
List < string > SignedNodeNames = new List < string > ( ) ;
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
{
if ( SignRocketNode . IsRequiredForPlatform ( TargetPlatform ) )
{
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
string SignNode = SignRocketMonolithicsNode . StaticGetFullName ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , RocketBuild . IsCodeTargetPlatform ( SourceHostPlatform , TargetPlatform ) ) ;
AddDependency ( SignNode ) ;
SignedNodeNames . Add ( SignNode ) ;
}
}
2015-04-10 13:56:50 -04:00
// Add win64 tools on Mac, to get the win64 build of UBT, UAT and IPP
2015-07-08 08:05:50 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Mac & & BranchConfig . HostPlatforms . Contains ( UnrealTargetPlatform . Win64 ) )
2015-03-27 08:02:21 -04:00
{
2015-04-10 13:56:50 -04:00
AddDependency ( GUBP . ToolsNode . StaticGetFullName ( UnrealTargetPlatform . Win64 ) ) ;
2015-03-27 08:02:21 -04:00
AddDependency ( GUBP . ToolsForCompileNode . StaticGetFullName ( UnrealTargetPlatform . Win64 ) ) ;
}
2015-04-10 13:56:50 -04:00
// Add all the feature packs
2015-07-08 08:05:50 -04:00
AddDependency ( GUBP . MakeFeaturePacksNode . StaticGetFullName ( GUBP . MakeFeaturePacksNode . GetDefaultBuildPlatform ( BranchConfig . HostPlatforms ) ) ) ;
2015-04-10 13:56:50 -04:00
// Find all the host platforms we need
2015-07-08 08:05:50 -04:00
SourceHostPlatforms = TargetPlatforms . Select ( x = > RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , x ) ) . Distinct ( ) . ToList ( ) ;
2015-04-10 13:56:50 -04:00
if ( ! SourceHostPlatforms . Contains ( HostPlatform ) )
{
SourceHostPlatforms . Add ( HostPlatform ) ;
}
2015-04-23 18:13:08 -04:00
// Add the stripped host platforms
if ( StripRocketNode . IsRequiredForPlatform ( HostPlatform ) )
2015-04-10 13:56:50 -04:00
{
2015-04-23 18:13:08 -04:00
AddDependency ( StripRocketToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-26 18:28:11 -04:00
StrippedNodeNames . Add ( StripRocketToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-23 18:13:08 -04:00
AddDependency ( StripRocketEditorNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-26 18:28:11 -04:00
StrippedNodeNames . Add ( StripRocketEditorNode . StaticGetFullName ( HostPlatform ) ) ;
}
2015-07-17 13:13:26 -04:00
// Add the signed host platforms
if ( SignRocketNode . IsRequiredForPlatform ( HostPlatform ) )
{
AddDependency ( SignRocketToolsNode . StaticGetFullName ( HostPlatform ) ) ;
SignedNodeNames . Add ( SignRocketToolsNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( SignRocketEditorNode . StaticGetFullName ( HostPlatform ) ) ;
SignedNodeNames . Add ( SignRocketEditorNode . StaticGetFullName ( HostPlatform ) ) ;
}
2015-04-26 18:28:11 -04:00
// Set all the stripped manifest paths
foreach ( string StrippedNodeName in StrippedNodeNames )
{
StrippedNodeManifestPaths . Add ( StrippedNodeName , Path . Combine ( Path . GetDirectoryName ( DepotManifestPath ) , "Filter_" + StrippedNodeName + ".txt" ) ) ;
2015-04-10 13:56:50 -04:00
}
2015-07-17 13:13:26 -04:00
// Set all the signed manifest paths
foreach ( string SignedNodeName in SignedNodeNames )
{
SignedNodeManifestPaths . Add ( SignedNodeName , Path . Combine ( Path . GetDirectoryName ( DepotManifestPath ) , "Filter_" + SignedNodeName + ".txt" ) ) ;
}
2015-03-27 08:02:21 -04:00
}
2015-07-08 08:05:50 -04:00
public override int CISFrequencyQuantumShift ( GUBP . GUBPBranchConfig BranchConfig )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
return base . CISFrequencyQuantumShift ( BranchConfig ) + 2 ;
2015-03-27 08:02:21 -04:00
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
2015-04-10 13:56:50 -04:00
return "FilterRocket" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
2015-03-27 08:02:21 -04:00
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
public override void DoBuild ( GUBP bp )
{
2015-04-26 18:28:11 -04:00
BuildProducts = new List < string > ( ) ;
2015-03-27 08:02:21 -04:00
FileFilter Filter = new FileFilter ( ) ;
// Include all the editor products
2015-07-07 16:34:24 -04:00
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . ToolsForCompileNode . StaticGetFullName ( HostPlatform ) , FileFilterType . Include ) ;
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) , FileFilterType . Include ) ;
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) , FileFilterType . Include ) ;
2015-03-27 08:02:21 -04:00
2016-01-11 10:12:46 -05:00
SingleTargetProperties BuildPatchTool = BranchConfig . Branch . FindProgram ( "BuildPatchTool" ) ;
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . SingleInternalToolsNode . StaticGetFullName ( HostPlatform , BuildPatchTool ) , FileFilterType . Include ) ;
2015-04-27 12:57:52 -04:00
// Include win64 tools on Mac, to get the win64 build of UBT, UAT and IPP
2015-07-08 08:05:50 -04:00
if ( HostPlatform = = UnrealTargetPlatform . Mac & & BranchConfig . HostPlatforms . Contains ( UnrealTargetPlatform . Win64 ) )
2015-04-27 12:57:52 -04:00
{
2015-07-07 16:34:24 -04:00
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . ToolsNode . StaticGetFullName ( UnrealTargetPlatform . Win64 ) , FileFilterType . Include ) ;
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . ToolsForCompileNode . StaticGetFullName ( UnrealTargetPlatform . Win64 ) , FileFilterType . Include ) ;
2015-04-27 12:57:52 -04:00
}
2015-04-20 13:43:49 -04:00
// Include the editor headers
2015-04-27 12:57:52 -04:00
UnzipAndAddRuleForHeaders ( GUBP . RootEditorNode . StaticGetArchivedHeadersPath ( HostPlatform ) , Filter , FileFilterType . Include ) ;
2015-04-20 13:43:49 -04:00
2015-03-27 08:02:21 -04:00
// Include the build dependencies for every code platform
2015-04-28 15:47:56 -04:00
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
2015-03-27 08:02:21 -04:00
{
2015-04-28 15:47:56 -04:00
if ( RocketBuild . IsCodeTargetPlatform ( HostPlatform , TargetPlatform ) )
{
2015-07-08 08:05:50 -04:00
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
string FileListPath = GUBP . GamePlatformMonolithicsNode . StaticGetBuildDependenciesPath ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform ) ;
2015-04-28 15:47:56 -04:00
Filter . AddRuleForFiles ( UnrealBuildTool . Utils . ReadClass < UnrealBuildTool . ExternalFileList > ( FileListPath ) . FileNames , CommandUtils . CmdEnv . LocalRoot , FileFilterType . Include ) ;
2015-07-08 08:05:50 -04:00
UnzipAndAddRuleForHeaders ( GUBP . GamePlatformMonolithicsNode . StaticGetArchivedHeadersPath ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform ) , Filter , FileFilterType . Include ) ;
2015-04-28 15:47:56 -04:00
}
2015-03-27 08:02:21 -04:00
}
// Add the monolithic binaries
2015-04-28 15:47:56 -04:00
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) ;
2015-04-28 15:47:56 -04:00
bool bIsCodeTargetPlatform = RocketBuild . IsCodeTargetPlatform ( SourceHostPlatform , TargetPlatform ) ;
2015-07-08 08:05:50 -04:00
AddRuleForBuildProducts ( Filter , BranchConfig , GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , Precompiled : bIsCodeTargetPlatform ) , FileFilterType . Include ) ;
2015-03-27 08:02:21 -04:00
}
// Include the feature packs
foreach ( string CurrentFeaturePack in CurrentFeaturePacks )
{
2015-07-08 08:05:50 -04:00
BranchInfo . BranchUProject Project = BranchConfig . Branch . FindGameChecked ( CurrentFeaturePack ) ;
2015-04-10 13:56:50 -04:00
Filter . AddRuleForFile ( GUBP . MakeFeaturePacksNode . GetOutputFile ( Project ) , CommandUtils . CmdEnv . LocalRoot , FileFilterType . Include ) ;
2015-03-27 08:02:21 -04:00
}
// Include all the templates
foreach ( string Template in CurrentTemplates )
{
2015-07-08 08:05:50 -04:00
BranchInfo . BranchUProject Project = BranchConfig . Branch . FindGameChecked ( Template ) ;
2015-09-26 14:41:15 -04:00
Filter . Include ( "/" + Utils . StripBaseDirectory ( Path . GetDirectoryName ( Project . FilePath . FullName ) , CommandUtils . CmdEnv . LocalRoot ) . Replace ( '\\' , '/' ) + "/..." ) ;
2015-03-27 08:02:21 -04:00
}
2015-04-10 13:56:50 -04:00
// Include all the standard rules
2015-03-27 08:02:21 -04:00
string RulesFileName = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Build" , "InstalledEngineFilters.ini" ) ;
2015-04-10 13:56:50 -04:00
Filter . ReadRulesFromFile ( RulesFileName , "CopyEditor" , HostPlatform . ToString ( ) ) ;
Filter . ReadRulesFromFile ( RulesFileName , "CopyTargetPlatforms" , HostPlatform . ToString ( ) ) ;
2015-03-27 08:02:21 -04:00
// Custom rules for each target platform
foreach ( UnrealTargetPlatform TargetPlaform in TargetPlatforms )
{
2015-03-27 11:34:27 -04:00
string SectionName = String . Format ( "CopyTargetPlatform.{0}" , TargetPlaform . ToString ( ) ) ;
2015-04-10 13:56:50 -04:00
Filter . ReadRulesFromFile ( RulesFileName , SectionName , HostPlatform . ToString ( ) ) ;
2015-03-27 08:02:21 -04:00
}
// Add the final exclusions for legal reasons.
2015-04-10 13:56:50 -04:00
Filter . ExcludeConfidentialPlatforms ( ) ;
Filter . ExcludeConfidentialFolders ( ) ;
2015-03-27 08:02:21 -04:00
2015-04-10 13:56:50 -04:00
// Run the filter on the stripped symbols, and remove those files from the copy filter
2015-04-26 18:28:11 -04:00
List < string > AllStrippedFiles = new List < string > ( ) ;
foreach ( KeyValuePair < string , string > StrippedNodeManifestPath in StrippedNodeManifestPaths )
2015-03-27 11:34:27 -04:00
{
2015-04-26 18:28:11 -04:00
List < string > StrippedFiles = new List < string > ( ) ;
2015-07-07 16:34:24 -04:00
StripRocketNode StripNode = ( StripRocketNode ) BranchConfig . FindNode ( StrippedNodeManifestPath . Key ) ;
2015-04-10 13:56:50 -04:00
foreach ( string BuildProduct in StripNode . BuildProducts )
{
if ( Utils . IsFileUnderDirectory ( BuildProduct , StripNode . StrippedDir ) )
{
string RelativePath = CommandUtils . StripBaseDirectory ( Path . GetFullPath ( BuildProduct ) , StripNode . StrippedDir ) ;
if ( Filter . Matches ( RelativePath ) )
{
StrippedFiles . Add ( RelativePath ) ;
2015-04-26 18:28:11 -04:00
AllStrippedFiles . Add ( RelativePath ) ;
2015-04-10 13:56:50 -04:00
Filter . Exclude ( "/" + RelativePath ) ;
}
}
}
2015-04-26 18:28:11 -04:00
WriteManifest ( StrippedNodeManifestPath . Value , StrippedFiles ) ;
BuildProducts . Add ( StrippedNodeManifestPath . Value ) ;
2015-03-27 11:34:27 -04:00
}
2015-04-10 13:56:50 -04:00
2015-07-17 13:13:26 -04:00
// Run the filter on the signed code, and remove those files from the copy filter
List < string > AllSignedFiles = new List < string > ( ) ;
foreach ( KeyValuePair < string , string > SignedNodeManifestPath in SignedNodeManifestPaths )
{
List < string > SignedFiles = new List < string > ( ) ;
SignRocketNode SignNode = ( SignRocketNode ) BranchConfig . FindNode ( SignedNodeManifestPath . Key ) ;
foreach ( string BuildProduct in SignNode . BuildProducts )
{
if ( Utils . IsFileUnderDirectory ( BuildProduct , SignNode . SignedDir ) )
{
string RelativePath = CommandUtils . StripBaseDirectory ( Path . GetFullPath ( BuildProduct ) , SignNode . SignedDir ) ;
if ( Filter . Matches ( RelativePath ) )
{
SignedFiles . Add ( RelativePath ) ;
AllSignedFiles . Add ( RelativePath ) ;
Filter . Exclude ( "/" + RelativePath ) ;
}
}
}
WriteManifest ( SignedNodeManifestPath . Value , SignedFiles ) ;
BuildProducts . Add ( SignedNodeManifestPath . Value ) ;
}
2015-04-10 13:56:50 -04:00
// Write the filtered list of depot files to disk, removing any symlinks
2015-08-05 10:22:11 -04:00
List < string > DepotFiles = Filter . ApplyToDirectory ( CommandUtils . CmdEnv . LocalRoot , true ) ;
2015-04-10 13:56:50 -04:00
WriteManifest ( DepotManifestPath , DepotFiles ) ;
2015-04-26 18:28:11 -04:00
BuildProducts . Add ( DepotManifestPath ) ;
2015-04-10 13:56:50 -04:00
// Sort the list of output files
SortedDictionary < string , bool > SortedFiles = new SortedDictionary < string , bool > ( StringComparer . InvariantCultureIgnoreCase ) ;
foreach ( string DepotFile in DepotFiles )
{
SortedFiles . Add ( DepotFile , false ) ;
}
2015-04-26 18:28:11 -04:00
foreach ( string StrippedFile in AllStrippedFiles )
2015-04-10 13:56:50 -04:00
{
SortedFiles . Add ( StrippedFile , true ) ;
}
// Write the list to the log
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Files to be included in Rocket build:" ) ;
2015-04-10 13:56:50 -04:00
foreach ( KeyValuePair < string , bool > SortedFile in SortedFiles )
{
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( " {0}{1}" , SortedFile . Key , SortedFile . Value ? " (stripped)" : "" ) ;
2015-04-10 13:56:50 -04:00
}
2015-03-27 08:02:21 -04:00
}
2015-07-07 16:34:24 -04:00
static void AddRuleForBuildProducts ( FileFilter Filter , GUBP . GUBPBranchConfig BranchConfig , string NodeName , FileFilterType Type )
2015-03-27 08:02:21 -04:00
{
2015-07-07 16:34:24 -04:00
GUBP . GUBPNode Node = BranchConfig . FindNode ( NodeName ) ;
2015-04-10 13:56:50 -04:00
if ( Node = = null )
{
throw new AutomationException ( "Couldn't find node '{0}'" , NodeName ) ;
}
Filter . AddRuleForFiles ( Node . BuildProducts , CommandUtils . CmdEnv . LocalRoot , Type ) ;
2015-08-28 06:22:07 -04:00
AddRuleForRuntimeDependencies ( Filter , Node . BuildProducts , Type ) ;
}
2015-09-01 04:48:32 -04:00
/ * *
* Searches for receipts in a list of build products so that any Runtime Dependencies can be added from them
* /
public static void AddRuleForRuntimeDependencies ( FileFilter Filter , List < string > BuildProducts , FileFilterType Type )
2015-08-28 06:22:07 -04:00
{
HashSet < string > RuntimeDependencyPaths = new HashSet < string > ( ) ;
string EnginePath = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" ) ;
// Search for receipts in the Build Products
foreach ( string BuildProduct in BuildProducts )
{
if ( BuildProduct . EndsWith ( ".target" ) )
{
// Read the receipt
TargetReceipt Receipt ;
if ( ! TargetReceipt . TryRead ( BuildProduct , out Receipt ) )
{
//throw new AutomationException("Missing or invalid target receipt ({0})", BuildProduct);
continue ;
}
// Convert the paths to absolute
2015-09-03 08:47:24 -04:00
Receipt . ExpandPathVariables ( new DirectoryReference ( EnginePath ) , new DirectoryReference ( EnginePath ) ) ;
2015-08-28 06:22:07 -04:00
foreach ( var RuntimeDependency in Receipt . RuntimeDependencies )
{
RuntimeDependencyPaths . Add ( RuntimeDependency . Path ) ;
}
}
}
// Add rules for runtime dependencies if we found any
if ( RuntimeDependencyPaths . Count > 0 )
{
Filter . AddRuleForFiles ( RuntimeDependencyPaths , CommandUtils . CmdEnv . LocalRoot , Type ) ;
}
2015-03-27 08:02:21 -04:00
}
2015-04-20 13:43:49 -04:00
static void UnzipAndAddRuleForHeaders ( string ZipFileName , FileFilter Filter , FileFilterType Type )
{
IEnumerable < string > FileNames = CommandUtils . UnzipFiles ( ZipFileName , CommandUtils . CmdEnv . LocalRoot ) ;
Filter . AddRuleForFiles ( FileNames , CommandUtils . CmdEnv . LocalRoot , FileFilterType . Include ) ;
}
2015-04-10 13:56:50 -04:00
public static void WriteManifest ( string FileName , IEnumerable < string > Files )
2015-03-27 08:02:21 -04:00
{
2015-04-10 13:56:50 -04:00
CommandUtils . CreateDirectory ( Path . GetDirectoryName ( FileName ) ) ;
CommandUtils . WriteAllLines ( FileName , Files . ToArray ( ) ) ;
}
}
2015-04-25 10:33:07 -04:00
public class GatherRocketNode : GUBP . HostPlatformNode
2015-04-10 13:56:50 -04:00
{
2015-07-07 16:34:24 -04:00
GUBP . GUBPBranchConfig BranchConfig ;
2015-04-10 13:56:50 -04:00
public readonly string OutputDir ;
2015-04-20 13:43:49 -04:00
public List < UnrealTargetPlatform > CodeTargetPlatforms ;
2015-04-10 13:56:50 -04:00
2015-07-07 16:34:24 -04:00
public GatherRocketNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform HostPlatform , List < UnrealTargetPlatform > InCodeTargetPlatforms , string InOutputDir ) : base ( HostPlatform )
2015-04-10 13:56:50 -04:00
{
2015-07-07 16:34:24 -04:00
BranchConfig = InBranchConfig ;
2015-04-10 13:56:50 -04:00
OutputDir = InOutputDir ;
2015-04-20 13:43:49 -04:00
CodeTargetPlatforms = new List < UnrealTargetPlatform > ( InCodeTargetPlatforms ) ;
2015-04-10 13:56:50 -04:00
AddDependency ( FilterRocketNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-20 11:08:45 -04:00
AddDependency ( BuildDerivedDataCacheNode . StaticGetFullName ( HostPlatform ) ) ;
2016-01-22 08:13:18 -05:00
if ( WaitToMakeRocketBuild . ShouldAddTrigger ( InBranchConfig ) )
{
AddPseudodependency ( WaitToMakeRocketBuild . StaticGetFullName ( ) ) ;
}
2015-04-25 10:33:07 -04:00
AgentSharingGroup = "RocketGroup" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
2015-04-10 13:56:50 -04:00
}
public static string StaticGetFullName ( UnrealTargetPlatform HostPlatform )
{
2015-04-25 10:33:07 -04:00
return "GatherRocket" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
2015-03-27 08:02:21 -04:00
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
2015-04-10 13:56:50 -04:00
public override void DoBuild ( GUBP bp )
{
CommandUtils . DeleteDirectoryContents ( OutputDir ) ;
2015-04-20 13:43:49 -04:00
// Extract the editor headers
2015-04-27 22:28:19 -04:00
CommandUtils . UnzipFiles ( GUBP . RootEditorNode . StaticGetArchivedHeadersPath ( HostPlatform ) , CommandUtils . CmdEnv . LocalRoot ) ;
2015-04-20 13:43:49 -04:00
// Extract all the headers for code target platforms
foreach ( UnrealTargetPlatform CodeTargetPlatform in CodeTargetPlatforms )
{
2015-07-08 08:05:50 -04:00
UnrealTargetPlatform SourceHostPlatform = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , CodeTargetPlatform ) ;
string ZipFileName = GUBP . GamePlatformMonolithicsNode . StaticGetArchivedHeadersPath ( SourceHostPlatform , BranchConfig . Branch . BaseEngineProject , CodeTargetPlatform ) ;
2015-04-20 13:43:49 -04:00
CommandUtils . UnzipFiles ( ZipFileName , CommandUtils . CmdEnv . LocalRoot ) ;
}
2015-04-10 13:56:50 -04:00
// Copy the depot files to the output directory
2015-07-07 16:34:24 -04:00
FilterRocketNode FilterNode = ( FilterRocketNode ) BranchConfig . FindNode ( FilterRocketNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-10 13:56:50 -04:00
CopyManifestFilesToOutput ( FilterNode . DepotManifestPath , CommandUtils . CmdEnv . LocalRoot , OutputDir ) ;
2015-04-26 18:28:11 -04:00
// Copy the stripped files to the output directory
foreach ( KeyValuePair < string , string > StrippedManifestPath in FilterNode . StrippedNodeManifestPaths )
{
2015-07-07 16:34:24 -04:00
StripRocketNode StripNode = ( StripRocketNode ) BranchConfig . FindNode ( StrippedManifestPath . Key ) ;
2015-04-26 18:28:11 -04:00
CopyManifestFilesToOutput ( StrippedManifestPath . Value , StripNode . StrippedDir , OutputDir ) ;
}
2015-04-10 13:56:50 -04:00
2015-07-17 13:13:26 -04:00
// Copy the signed files to the output directory
foreach ( KeyValuePair < string , string > SignedManifestPath in FilterNode . SignedNodeManifestPaths )
{
SignRocketNode SignNode = ( SignRocketNode ) BranchConfig . FindNode ( SignedManifestPath . Key ) ;
CopyManifestFilesToOutput ( SignedManifestPath . Value , SignNode . SignedDir , OutputDir ) ;
}
2015-04-20 11:08:45 -04:00
// Copy the DDC to the output directory
2015-07-07 16:34:24 -04:00
BuildDerivedDataCacheNode DerivedDataCacheNode = ( BuildDerivedDataCacheNode ) BranchConfig . FindNode ( BuildDerivedDataCacheNode . StaticGetFullName ( HostPlatform ) ) ;
2015-04-20 11:08:45 -04:00
CopyManifestFilesToOutput ( DerivedDataCacheNode . SavedManifestPath , DerivedDataCacheNode . SavedDir , OutputDir ) ;
2015-12-04 09:32:58 -05:00
// Write InstalledBuild.txt to indicate Engine is installed
string InstalledBuildFile = CommandUtils . CombinePaths ( OutputDir , "Engine/Build/InstalledBuild.txt" ) ;
CommandUtils . WriteAllText ( InstalledBuildFile , "" ) ;
WriteRocketSpecificConfigSettings ( ) ;
2015-04-15 15:00:33 -04:00
2015-04-10 13:56:50 -04:00
// Create a dummy build product
BuildProducts = new List < string > ( ) ;
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
}
static void CopyManifestFilesToOutput ( string ManifestPath , string InputDir , string OutputDir )
{
// Read the files from the manifest
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Reading manifest: '{0}'" , ManifestPath ) ;
2015-04-10 13:56:50 -04:00
string [ ] Files = CommandUtils . ReadAllLines ( ManifestPath ) . Select ( x = > x . Trim ( ) ) . Where ( x = > x . Length > 0 ) . ToArray ( ) ;
// Create lists of source and target files
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Preparing file lists..." ) ;
2015-08-05 10:22:11 -04:00
var SourceFiles = Files . Select ( x = > CommandUtils . CombinePaths ( InputDir , x ) ) . ToList ( ) ;
var TargetFiles = Files . Select ( x = > CommandUtils . CombinePaths ( OutputDir , x ) ) . ToList ( ) ;
2015-04-10 13:56:50 -04:00
// Copy everything
CommandUtils . ThreadedCopyFiles ( SourceFiles , TargetFiles ) ;
}
2015-12-04 09:32:58 -05:00
public void WriteRocketSpecificConfigSettings ( )
{
string OutputEnginePath = Path . Combine ( OutputDir , "Engine" ) ;
string OutputBaseEnginePath = Path . Combine ( OutputEnginePath , "Config" , "BaseEngine.ini" ) ;
FileAttributes OutputAttributes = FileAttributes . ReadOnly ;
List < String > IniLines = new List < String > ( ) ;
// Should always exist but if not, we don't need extra line
if ( File . Exists ( OutputBaseEnginePath ) )
{
OutputAttributes = File . GetAttributes ( OutputBaseEnginePath ) ;
IniLines . Add ( "" ) ;
}
2016-04-14 20:35:31 -04:00
// Create list of platform configurations installed in a Rocket build
List < InstalledPlatformInfo . InstalledPlatformConfiguration > InstalledConfigs = new List < InstalledPlatformInfo . InstalledPlatformConfiguration > ( ) ;
2015-12-04 09:32:58 -05:00
foreach ( UnrealTargetPlatform CodeTargetPlatform in CodeTargetPlatforms )
{
Copying //UE4/Release-Staging-4.12 to //UE4/Dev-Main (Source: //UE4/Release-4.12 @ 2962397)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2962397 on 2016/05/02 by Dmitriy.Dyomin
Fixed: Crash generating LOD for a Landscape
#jira UE-30144
Change 2962367 on 2016/05/01 by Zachary.Wilson
Building lighting on QA-Effects
#jira UE-29618
Change 2962363 on 2016/05/01 by Zachary.Wilson
Updating Reflection Capture Test Content
#jira UE-29618
Change 2962362 on 2016/05/01 by Benjamin.Hyder
Built Lighting in QA-PostProcessing level
#jira UE-29618
Change 2962361 on 2016/05/01 by Zachary.Wilson
Adding testing content for Custom Resolutions and Cubemaps for Sky Cubemaps and Reflection Probes.
#jira UE-29618
Change 2962357 on 2016/05/01 by Benjamin.Hyder
Built Lighting for Tm_SceneTexture
#jira UE-29618
Change 2962356 on 2016/05/01 by Benjamin.Hyder
Adding PlayerStart to TM-TranslucencyLghtingMode map
#jira UE-29618
Change 2962351 on 2016/05/01 by Benjamin.Hyder
Adding high Precision GBuffer Normal Encoding example to TM-Shadermodels
#jira UE-29618
Change 2962349 on 2016/05/01 by Benjamin.Hyder
Correcting Planar Reflection in TM-Shadermodels
#Jira UE-29618
Change 2962348 on 2016/05/01 by Benjamin.Hyder
Adding Planar Reflection Test Case content to TM-Shadermodels
#jira UE-29618
Change 2962347 on 2016/05/01 by Zachary.Wilson
Adding testing content for Dual Normal Clfar Coat Material Expression
#jira UE-29618
Change 2962340 on 2016/05/01 by Zachary.Wilson
Adding testing content for engine scalability (WIP)
#jira UE-29618
Change 2962173 on 2016/04/30 by Ben.Marsh
Fix typo.
Change 2962172 on 2016/04/30 by Ben.Marsh
Disable Vulkan in installed UE4 buids. Build machines don't have the Vulkan SDK installed so they can't generate static libraries for VulkanRHI, so if we try to link against it on user's machines they'll fail due to the missing LIB.
#jira UE-30156
Change 2961782 on 2016/04/29 by Mike.Beach
Guarding against an invalid (null) target for the Blueprint debugger (watch viewer) panel.
#jira UE-30110
Change 2961780 on 2016/04/29 by Mike.Beach
Guarding against interface arrays with null entries (null checking in property editor processing code).
#jira UE-30015
Change 2961580 on 2016/04/29 by Owen.Stupka
#jira UE-29796 Rollback //UE4/Release-4.12/Samples/NotForLicensees/ProtoStar/Content/Blueprints/NickD/StarCoreSliceNick.uasset to revision 2
Change 2961531 on 2016/04/29 by Ryan.Gerleve
Fix for an assert that could occur in monolithic builds when seamless traveling while recording a replay.
#jira UE-22047
Change 2961499 on 2016/04/29 by Marc.Audy
Use accessor instead of variable directly.
#jira UE-00000
Change 2961492 on 2016/04/29 by Chris.Babcock
Android Vulkan dynamic loader with fallback to ES2
- works with either NDK r11c+ or VulkanSDK (does not require .so)
#jira UEPLAT-1249
#jira UEMOB-103
#ue4
#android
Change 2961462 on 2016/04/29 by Chris.Babcock
Fix issue with stripping symbols for non-armv7 architectures
#jira UE-30138
#android
#ue4
Change 2961442 on 2016/04/29 by Marc.Audy
Fix undo/redo of attachment between an IWCE and blueprint constructed component not working
#jira UE-28948
Change 2961400 on 2016/04/29 by Samuel.Proctor
Test assets for FiB test cases.
#jira UE-29618
Change 2961382 on 2016/04/29 by Daniel.Lamb
Fix for shadowed variables.
#jira UE-29470
Change 2961319 on 2016/04/29 by mitchell.wilson
#jira UE-29618 - Adding TM-LandscapeFoliage map
Change 2961278 on 2016/04/29 by Chris.Babcock
Fix 64-bit cast
#jira UE-30132
#ue4
#android
Change 2961263 on 2016/04/29 by Daniel.Lamb
Fixed issue with iterative cooking missing dependent sublevels when checking for dependent timestamps.
#jira UE-29470
Change 2961227 on 2016/04/29 by Taizyd.Korambayil
#jira UE-30068 Resaved Some assets and Updated TexturePool in DefaultEninge.ini
Change 2961208 on 2016/04/29 by Nick.Darnell
UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping.
#jira UE-29919
Change 2961190 on 2016/04/29 by Nick.Darnell
UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping.
#jira UE-29919
Change 2961161 on 2016/04/29 by Gareth.Martin
Added warnings when trying to use the Landscape Visibility Tool without the landscape material having a "Landscape Visibility Mask" node.
#jira UE-30032
Change 2961109 on 2016/04/29 by Keith.Judge
Xbox One - Enable USE_NEW_LOCK_FREE_LISTS, and refactor code to allow VS2015 to compile it (was using a non-standard GCC/Clang behaviour). Lots of duplicated code, but there already was...
#jira UEPLAT-1288
Change 2961055 on 2016/04/29 by Mike.Beach
Mirroring CL 2961019:
Temporarily disabling InitProperties() spawning optimization, as it was causing GC issues.
#jira UE-29940
Change 2961018 on 2016/04/29 by Rolando.Caloca
UE4.12 - Compile fix for shipping
#jira UE-30096
Change 2960921 on 2016/04/29 by Matthew.Griffin
Updated AutoSDK used by Android so that arm64 will build
Change 2960920 on 2016/04/29 by Martin.Wilson
Missing files from 2960847
#jira ue-25715
Change 2960906 on 2016/04/29 by Peter.Sauerbrei
added more explicit message when the deployment fails due to device not on provision
#jira UE-19875
Change 2960869 on 2016/04/29 by Chris.Bunner
Allow custom material nodes to be used with tessellation outputs.
#jira UE-29586
Change 2960847 on 2016/04/29 by Martin.Wilson
Fix setting incorrect animation assets on anim player nodes.
#jira ue-25715
Change 2960842 on 2016/04/29 by Keith.Judge
Xbox One - Remove SetGpuMemoryPriority() call as it turns out most actual game titles are CPU bound, and this is just hurting them.
#jira UEPLAT-1288
Change 2960841 on 2016/04/29 by Keith.Judge
Xbox One - Make temporary buffers last for three frames.
#jira UEPLAT-1288
Change 2960838 on 2016/04/29 by Keith.Judge
Xbox One - Change the MemoryBarrier function to be FORCENOINLINE so that the compiler doesn't reorder writes around it.
#jira UEPLAT-1288
Change 2960834 on 2016/04/29 by Keith.Judge
Xbox One - Change GPUMalloc memory type to write combined, as cached non-coherent caused major UMG flickering issues, and would appear to be unsafe, according to the latest XDK docs.
#jira UEPLAT-1288
Change 2960829 on 2016/04/29 by Keith.Judge
Xbox One - Fix RHIUpdateTexture2D not actually updating the texture. It was silently failing because the GPU_READONLY flag was set on the memory. Grrrrrr!
#jira UEPLAT-1288
Change 2960826 on 2016/04/29 by Keith.Judge
Xbox One - Turn on GSupportsEfficientAsyncCompute and GSupportsParallelOcclusionQueries. Duplcated from Dev-Platform.
#jira UEPLAT-1288
Change 2960820 on 2016/04/29 by Keith.Judge
Xbox One - Replicate Windows critical section changes. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960819 on 2016/04/29 by Marc.Audy
Owned components are once again referenced by their Owning actor for GC purposes
#jira UE-29131
Change 2960817 on 2016/04/29 by Keith.Judge
Xbox One - Further fix for flickering HUD. Also seems to fix weird bloom when Fast Semantics are enabled. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960814 on 2016/04/29 by Keith.Judge
Xbox One - Fix crash when creating odd sized textures with initial data. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960805 on 2016/04/29 by Keith.Judge
Fix .ini.ini filename issue (duplicated fix from Dev-Platform).
#jira UES-2270
Change 2960797 on 2016/04/29 by Mason.Seay
Deleting asset associated with crashing map, just to be safe (neither are needed anymore)
#jira UE-25215
Change 2960793 on 2016/04/29 by Mason.Seay
Deleting map that's causing a crash
#jira UE-25215
Change 2960774 on 2016/04/29 by Robert.Manuszewski
(temp) Fix for missing packages after cooking.
#jira UE-29876
Change 2960747 on 2016/04/29 by Jurre.deBaare
Mac build fixes
#jira abc-123
Change 2960739 on 2016/04/29 by Benn.Gallagher
Use mesh update mode to update cloth rather than whether or not it was rendered.
#jira UE-25934
Change 2960707 on 2016/04/29 by Jurre.deBaare
HLOD cluster dirtying from changes in static mesh component and spline mesh component, required making the HierarchicalLODUtilities Module to have an abstract interface (for dynamic loading in the Engine module)
#jira UE-24378
Change 2960704 on 2016/04/29 by Matthew.Griffin
Added Architectures and GPUArchitectures to UEBuildConfiguration that can be passed through on the UBT command line
Changed Android Tool Chain so that it checks the command line architectures as an additional way to setup which ones to build
Added option to pass architectures on command line when precompiling monolithic targets via UAT (with armv7, arm64 & es2 set for Android for now)
Added code to read precompiled architectures in Rocket build and write out additional Installed Platform Info entries for each one
#jira UEB-560
Change 2960694 on 2016/04/29 by Robert.Manuszewski
Log free disk space when DirectoryWatcher's File Cache fails to move a file.
#jira UE-24660
Change 2960687 on 2016/04/29 by Benn.Gallagher
Demoted eINTERNAL_ERROR (PhysX error code) to warning as we were flagging things too zealously (degenerate poly failing a cook)
#jira UE-30053
Change 2960381 on 2016/04/28 by Chris.Babcock
Handle movie playback not covering full surface
#jira UE-28705
#ue4
#android
Change 2960162 on 2016/04/28 by Ryan.Vance
#jira UE-30099
Re-enabling the occlusion area mask for the Rift. Any Rift HMD's newer than the CB prototype will use the CV1 masks. We'll need to revist this in the future.
We need to ensure we always set the InstancedEyeIndex uniform if it's bound. Otherwise passes that aren't using instanced stereo will resolve their views using an uninitialized variable (translucency).
Change 2960100 on 2016/04/28 by Andrew.Porter
Removing old sub sequences.
#jira UE-29618
Change 2959962 on 2016/04/28 by Peter.Sauerbrei
fix for enabling InApp purchasing not enabling Online Subsystem IOS
#jira UE-25512
Change 2959937 on 2016/04/28 by Patrick.Donovan
Screen aligned UVs test material for QAGame for testing if they work in VR.
#jira UE-29618
Change 2959914 on 2016/04/28 by Dan.Oconnor
Fix for copy paste error, likely of no consequence because nothing calls IsExporting(), found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959859 on 2016/04/28 by Ryan.Gerleve
Fix for fatal error crash when loading the default map fails. Now we load a dummy world and request graceful exit in standalone, or shutdown the current play session in PIE.
#jira UE-26634
Change 2959856 on 2016/04/28 by Chris.Babcock
Fix scaling on low-resolution devices in Match3
#jira UE-28706
#ue4
#match3
Change 2959839 on 2016/04/28 by Dan.Oconnor
Fix IsControlCharacter result for 'pop directional isolate' character (u2069), found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959836 on 2016/04/28 by Dan.Oconnor
Remove unused local variable, found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959829 on 2016/04/28 by Dan.Oconnor
Using OverridePredrawBatchTime and OverridePredrawBatchTime correctly, found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959817 on 2016/04/28 by Peter.Sauerbrei
fix for parsing the IOS Device ID
addition of iPhone SE (courtesy davidrpozesky, PR2307)
addition of iPadPro 9.7
#jira UE-21921
Change 2959808 on 2016/04/28 by Nick.Darnell
UBT - Restoring GetModuleFilename to the RulesCompiler but only to deprecate it, and point users at the method they should now be using.
#jira ue-none
Change 2959805 on 2016/04/28 by Chad.Taylor
Merging
//UE4/Dev-VR/Engine/...
to //UE4/Release-4.12/Engine/...
#jira UEBP-188
Change 2959798 on 2016/04/28 by Dan.Oconnor
Manually integrate 2947850, also found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959796 on 2016/04/28 by Aaron.McLeran
Duplicating CL 2959785 from //UE4/Dev-Framework
#jira UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
#tests created new sound cue with concat node with child nodes that don't play sound-instances, concat node continues playing
Change 2959793 on 2016/04/28 by Dan.Oconnor
Fixed setter that did nothing, found with PVS-Studio by Robert Troughton. This code will be removed soon.
#jira UE-30058
Change 2959739 on 2016/04/28 by Ori.Cohen
Remove box2d ensure as it's confusing for legit crashes since it shows up in the end of the log.
#JIRA UE-29932
Change 2959709 on 2016/04/28 by Nick.Darnell
Slate - Menu Stack no longer crashes when forcefully dismissing multiple menus in the stack at once.
#jira UE-30087
Change 2959701 on 2016/04/28 by Nick.Darnell
Slate - The MoviePlayer now has an OnPrepareLoadingScreen callback that modules can hook instead of relying on the PreLoadMap, which depending on when you hook it, you may be before or after the movie player. Therefore to aleviate that ordering problem - if the movie player goes to play a loading screen and one has not yet been configured this callback will be triggered so that hopefully one is supplied.
#jira UE-30085
Change 2959691 on 2016/04/28 by Nick.Darnell
UMG - Fixed Aspect ratios now correctly size the right side of the screen, allowing right anchored content to be fit properly inside the black frame borders.
#jira UE-30084
Change 2959678 on 2016/04/28 by mason.seay
Updated test sound cue asset, as it appeared to be partially filled out. Moved it out of developer folder.
Also rebuilt lighting on associated test map.
#jira UE-29618
Change 2959514 on 2016/04/28 by Aaron.McLeran
Duplicating CL 2959506 from //UE4/Dev-Framework
#jira UE-30000
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
#tests Playing another looping sound on an audio component will stop the previous looping sound.
Change 2959486 on 2016/04/28 by Bob.Tellez
Duplicating CL#2948431 from //Orion/Dev-General
CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE.
#JIRA UE-29625
#tests Ran editor
Change 2959414 on 2016/04/28 by Chad.Taylor
IStereoLayers API and Oculus Rift implementation
#jira UEBP-185
Change 2959395 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29710 Resaved Kite Demo Maps and Audio files to Fix Build Warnings
Change 2959386 on 2016/04/28 by Richard.TalbotWatkin
Replicated from CL 2959360 in //UE4/Dev-Editor/
Fixed potential crash when mesh painting actors whose geometry adapters are no longer registered.
#jira UE-29615 - [CrashReport] UE4Editor_MeshPaint!FEdModeMeshPaint::DoPaint() [meshpaintedmode.cpp:1127]
Change 2959377 on 2016/04/28 by Matthew.Griffin
Added 2015 versions of OpenSSL dlls to list of RuntimeDependencies, so that they will be included in the binary build
#jira UE-30024
Change 2959367 on 2016/04/28 by Alexis.Matte
#jira OR-20622
make sure LOD import Materials get map with LOD 0 material index
Change 2959302 on 2016/04/28 by Jamie.Dale
Removed invalid assert
#jira UE-30042
Change 2959263 on 2016/04/28 by Peter.Sauerbrei
fix for virtual joysticks showing up on tvOS
removed usage of ES2 define for tvOS
#jira UE-26122
Change 2959235 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29744 Resaved Vehicle Game maps to Fix Build Warnings
Change 2959177 on 2016/04/28 by Thomas.Sarkanen
Fixed curve names getting incorrectly duplicated when DuplicateObject was called
Fixes crash when trying to convert curves to metadata after newly importing a sequence.
#jira UE-29988 - Crash when converting custom curve to metadata in persona
Change 2959170 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29683 Resaved Maps to Fix Build Warnings
#jira UE-29685
#jira UE-29679
#jira UE-29684
Change 2959154 on 2016/04/28 by Dan.Bullard
Added Media Player assets and added example to TM-ShaderModels.
#jira UE-29618
Change 2959112 on 2016/04/28 by Jamie.Dale
Fixed a long time IME crash that could happen under certain circumtances
#jira OPP-5607
Change 2959086 on 2016/04/28 by Jamie.Dale
Refreshing the editable text layout now makes sure the layout is up-to-date
This addresses some update issues when the widget is being ticked, but not running a layout pass.
#jira UE-30054
Change 2958927 on 2016/04/28 by Phillip.Kavan
[UE-30040] Fix broken editor UI display of values for int32 properties tagged as bitmask fields when the high bit is set.
#jira UE-30040
Change 2958730 on 2016/04/28 by Phillip.Kavan
[UE-23087] Don't apply near-zero delta values while drag-scaling inside the Blueprint editor's preview viewport.
#jira UE-23087
Change 2958566 on 2016/04/27 by Marcus.Wassmer
Fix material preview and PostProcessAmbient
#jira UE-29994
Change 2958459 on 2016/04/27 by mason.seay
Test assets for Sound Class Override
#jira UE-29618
Change 2958399 on 2016/04/27 by Owen.Stupka
#jira UE-29924 Back out CL 2958355, change was in wrong position.
Change 2958395 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2950482 from //UE4/Dev-Framework
#jira FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
#tests Apply a sound mix using a child sound class with apply-to-children enabled. Sound mix properly interpolates.
Change 2958387 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2954865 from //UE4/Dev-Framework
#jira UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
#tests run editor in PIE with HMD connected, audio only plays on PC, then run in VR-Preview with HMD connected, audio plays on HMD audio device
Change 2958381 on 2016/04/27 by Josh.Adams
- Fixed compile error in IOSDeviceHelperMac.cpp
#lockdown nick.penwarden
#jira UE-30037
Change 2958355 on 2016/04/27 by Owen.Stupka
#jira UE-29924 Fix for UAT issues on Mac.
Change 2958351 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2957953 from //UE4/Dev-Framework
#jira UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
#tests run audio component with auto-activate, call play, setup notification callback in BP, note that only triggered once
Change 2958344 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29720 Resaved Audio Files to fix NodeGUID Warnings
Change 2958342 on 2016/04/27 by mitchell.wilson
#jira UE-29618 updating shot_002 to fix an issue with snapping.
Change 2958315 on 2016/04/27 by Marc.Audy
No longer use component pooling, but instead spawn Actors for thumbnail display
#jira UE-17453
Change 2958289 on 2016/04/27 by Marc.Audy
Don't crash rerunning construction script on a child actor that belongs to a ownerless child actor component
#jira UE-30033
Change 2958280 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29723 Resaved Maps and Audio Files
Change 2958237 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29687 Resaved Some Assets to Fix Build Warnings
Change 2958176 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29701 Resaved Some Assets to Fix Build Warnings
Change 2958172 on 2016/04/27 by Ori.Cohen
Back out changelist 2955134
#JIRA UE-30030
Change 2958121 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29706 Resaved Some Assets to Fix Build Warnings
Change 2958070 on 2016/04/27 by Peter.Sauerbrei
fix for launch on to tvOS from PC
properly filter out tvOS devices when launching to IOS and vice versa
#jira UE-29928
Change 2958029 on 2016/04/27 by Andrew.Rodham
Fixed SMenuAnchor::bIsCollapsedByParent not being respected
#jira UE-30016
Change 2957962 on 2016/04/27 by Alexis.Matte
#jira UE-29984
Pixel inspector crash
Fix the viewport id
Change 2957908 on 2016/04/27 by Andrew.Rodham
Sequencer: Fixed being unable to render out 4K image sequences using matinee or sequencer
#jira UE-29171
Change 2957880 on 2016/04/27 by Peter.Sauerbrei
fix for metal not being enabled in iOS 8
added some checks for bSupportsResourceOptions in Lock/Unlock
#jira UE-29268
Change 2957860 on 2016/04/27 by Gareth.Martin
Fixed landscape grass not updating when using a material instance as the landscape material and changing parameters
#jira UE-29471
Change 2957833 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29707 Replaced Deprecated Nodes and Resaved Audio Files to Fix Build Warnings
Change 2957805 on 2016/04/27 by Max.Chen
Sequencer: Fix crash in UMG when a property changes and there's no movie scene.
#jira UE-30008
Change 2957803 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29718 Resaved Audio Files and Maps to Fix NodeGuid Warnings
Change 2957799 on 2016/04/27 by Max.Chen
Sequencer: Fix visibility track name so that it says "Visibility"
#jira UE-29996
Change 2957777 on 2016/04/27 by Allan.Bentham
Workaround ES31 HQ DoF producing no effect with vulkan rhi.
#jira UE-30006
Change 2957763 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29678 Resaved Maps to Fix Build Errors
Change 2957740 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29628 Resaved Maps to fix Build Warnings
Change 2957713 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29715 Resaved Maps to Fix Build Warnings
Change 2957678 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29677 Fixed up AnimBP and resaved some assets to fix Build Warnings
Change 2957627 on 2016/04/27 by Frank.Fella
UMG - Sequencer - Fix material animation for materials on struct properties e.g. style materials, and fix the naming so that it's [Original Name]_Animated
#Jira UE-29319
#Jira UE-29321
Change 2957625 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29689 Replaced deprecated Nodes and Resaved some assets to Fix Warnings
Change 2957603 on 2016/04/27 by mitchell.wilson
#jira UE-29618 updating Test-Animation for UMG test. Adding M_SequenceUMG material for UMG testing
Change 2957577 on 2016/04/27 by Ben.Marsh
EC: Increase the number of changes queried to display the EC dashboard. Some changes are getting filtered out.
Change 2957569 on 2016/04/27 by Maciej.Mroz
#jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true
merged from Dev-Blueprints 2957564
Change 2957565 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29721 Resaved Some Content to Fix Empty Engine Version Error
Change 2957558 on 2016/04/27 by Matthew.Griffin
Updated Installed Engine Filters now that Linux has dropped the architecture from its .target files
#jira UE-29899
Change 2957504 on 2016/04/27 by Marc.Audy
Persist component instance data cache through blueprint construction that results in "disaster recovery mode"
#jira UE-20385
Change 2957162 on 2016/04/26 by Dmitriy.Dyomin
Fixed: Some Unicode letters are not properly displayed with FCanvasTextItem in Android device
#jira UE-25861
Change 2957117 on 2016/04/26 by Dan.Oconnor
PR #2289: Exposing "IsValidIndex" Array function to Blueprints (Contributed by eXifreXi)
Modifications: typo fix in Array.h, made blueprint description consistent with native function, removed redundant nullptr check, added P_NATIVE timer macros, added custom thunk implementation for cpp backend
#jira UE-29563
Change 2957057 on 2016/04/26 by Dan.Oconnor
Tweak logic used to make variable nodes more accessible
Motivation was PR#2202 by Lucyberad
#jira UE-28802
Change 2956884 on 2016/04/26 by Jamie.Dale
Removed an assert that can be triggered by certain IMEs
#jira UE-19744
Change 2956876 on 2016/04/26 by Dan.Oconnor
PR #2288: Adjustment of RInterpTo and RInterpTo_Constant descriptions to match function. (Contributed by CelPlays)
#jira UE-29495
Change 2956860 on 2016/04/26 by Max.Preussner
Sockets: Fixed incorrect socket timeout when value < 1 ms (UE-29973)
#jira: UE-29973
Change 2956801 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added r.Vulkan.SubmitOnCopyToResolve to help track down submit issues
#jira UE-28140
Change 2956679 on 2016/04/26 by Andrew.Rodham
Editor: Fixed not being able to switch between cinematic/default viewport types
#jira UE-29942
Change 2956674 on 2016/04/26 by James.Fox
Updated Blueprint Bitmask test asset to include Bitwise OR.
#jira UE-29618
Change 2956573 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added TRANSFER_BIT to swapchain images since it's required for clearing
#jira UE-28140
Change 2956572 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added alignment to buffer offsets depending on usage
#jira UE-28140
Change 2956502 on 2016/04/26 by Peter.Sauerbrei
fix for missing particles on iPhone 5 when compiling for size
re-enable compile for size for Match 3
#jira UE-28721
Change 2956445 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29691 Resaved some Animation Assets to Fix Build Warnings
Change 2956382 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29688 Resaved Maps in Infiltrator Demo t oFix Some Build Warnings
Change 2956332 on 2016/04/26 by Patrick.Donovan
Adding physics asset set up for Capsule shadows for easy testing of capsule shadows in VR and with instanced stereo enabled.
#jira UE-29618
Change 2956301 on 2016/04/26 by Ben.Marsh
Disable notification emails for warnings in Rocket sample builds.
Change 2956264 on 2016/04/26 by Peter.Sauerbrei
fix for binary release generation of bp-only project files for IOS on Mac
#jira UE-29934
Change 2956247 on 2016/04/26 by Jurre.deBaare
Fix for Mac compile
#jira UE-123ABC
Change 2956192 on 2016/04/26 by Jurre.deBaare
- Changed signatures for merging static mesh (LOD index now incorporated in merge data structure)
- Proxy mesh and Mesh merging now just merges one specific LOD index per input mesh (instead of looping over all LOD levels)
- Moved SourceStaticMesh and addex ExportLODIndex to FMeshMergeData structure
- LightMap Index for merged static meshes is now set correctly
- Added enum to MaterialProxySettings for distinction between (non-)Simplygon uses of the struct
- Move MergeActor tab spawner out of experimental (removed option from config) and moved into Developer Tools/Misc
#jira UE-28319
Change 2956183 on 2016/04/26 by mitchell.wilson
#jira UE-29618 Adding new sequence for assign actor testing. Updating sequencer levels for assign actor testing
Change 2956152 on 2016/04/26 by Lina.Halper
- removed invalid ensure because it doesn't check recursive, it does have different value with validation
#jira : UE-29945
Change 2956034 on 2016/04/26 by Andrew.Rodham
Sequencer: Skeletal animation tracks now evaluate the nearest section where no animation section is present
- This is more consistent with how other tracks evaluate, and guarantees a deterministic animated state
#jira UE-28073
Change 2956002 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29729 Resaved Blueprints to Fix Build Warnings
Change 2955999 on 2016/04/26 by Max.Chen
Sequencer: Refresh instances when done recording. This fixes a bug where spawned recorded actors aren't visible when done recording.
#jira UE-29841
Change 2955983 on 2016/04/26 by Andrew.Rodham
Removing Saved, Intermediate, and DerivedDataCache folders from SubwaySequencer sample project.
#jira UE-29938
Change 2955979 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29728 Resaved Some assets to Fix Build Warnings
Change 2955941 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29730 Resaved Maps to Fix Build Warnings
Change 2955937 on 2016/04/26 by Andrew.Rodham
Sequencer: When recording actors as spawnables, we no longer duplicate the object, rather create a new instance of the same class
- This fixes issues caused by undersiable state being saved into the spawnable defaults
Merged from //UE4/Dev-Sequencer/...@2952610
#jira UE-29774
Change 2955888 on 2016/04/26 by mitchell.wilson
#jira UE-29618 Updating shots for sequencer testing
Change 2955635 on 2016/04/26 by Max.Chen
Sequencer: Fix filtering so that folders that contain filtered nodes will also appear.
#jira UE-28213
[CL 2969385 by Matthew Griffin in Main branch]
2016-05-06 15:20:28 -04:00
// Build a list of precompiled architecture combinations for this platform if any
string [ ] Arches ;
string [ ] GPUArches ;
List < string > AllArchNames ;
bool bFoundArches = GUBP . GamePlatformMonolithicsNode . PrecompiledArchitectures . TryGetValue ( CodeTargetPlatform , out Arches ) ;
bool bFoundGPUArches = GUBP . GamePlatformMonolithicsNode . PrecompiledGPUArchitectures . TryGetValue ( CodeTargetPlatform , out GPUArches ) ;
if ( bFoundArches & & Arches . Length > 0
& & bFoundGPUArches & & GPUArches . Length > 0 )
{
AllArchNames = ( from Arch in Arches
from GPUArch in GPUArches
select "-" + Arch + "-" + GPUArch ) . ToList ( ) ;
}
else if ( bFoundArches & & Arches . Length > 0 )
{
AllArchNames = new List < string > ( Arches ) ;
}
else
{
AllArchNames = new List < string > ( ) ;
}
2015-12-04 09:32:58 -05:00
// Bit of a hack to mark these platforms as available in any type of project
EProjectType ProjectType = EProjectType . Content ;
if ( HostPlatform = = UnrealTargetPlatform . Mac )
{
if ( CodeTargetPlatform = = UnrealTargetPlatform . Mac
| | CodeTargetPlatform = = UnrealTargetPlatform . IOS
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2945165)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2731596 on 2015/10/16 by Keith.Judge
Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step.
Change 2764244 on 2015/11/12 by Keith.Judge
Stop creating/deleting SRVs for dynamic buffers all the time. Instead add a new view when a new buffer is cycled and keep them around until the buffer is dead.
Change 2936695 on 2016/04/07 by Mark.Satterthwaite
Disable Metal on Mac OS X versions prior to 10.11.4 because their drivers are too buggy and lots of issues users will encounter were fixed in 10.11.4.
Change 2936701 on 2016/04/07 by Mark.Satterthwaite
Re-enable DistanceFieldAO on Mac Metal, but disable the support for Heightfield composition into the DistanceFieldAO as that currently requires Read+Write texture support which isn't present in Metal yet.
Change 2936702 on 2016/04/07 by Mark.Satterthwaite
Enable capsule shadows on Metal SM5 for Mac Paragon.
Change 2936704 on 2016/04/07 by Mark.Satterthwaite
Re-add Metal_MacES3_1 entries in RHIDefinition functions - not quite sure how they disappeared...
Change 2936706 on 2016/04/07 by Mark.Satterthwaite
Fix implementation of BeginRenderingPrePass to only clear the depth+stencil buffers when it is asked to - this fixes LOD fading in Paragon on Mac when parallel execution is enabled. The parallel contexts were being instructed to clear the pre-pass data which was then fouling up all the subsequent rendering.
Change 2936708 on 2016/04/07 by Mark.Satterthwaite
Extend workaround from 2905206 for UE-27818 to Metal as well as OpenGL - it isn't permissable to have an unbound resource on these APIs as you aren't allowed to make the assumption than an if-branch will protect against null dereference on the GPU.
Change 2936737 on 2016/04/07 by Mark.Satterthwaite
Changes to reduce Metal's peak memory usage when streaming texture data in when loading levels:
- When uploading data to Shared memory Metal textures dispose of the source buffer immediately as it won't be required after the call to replaceRegion.
- Add an optional CVar ("rhi.Metal.MaxOutstandingAsyncTexUploads") and keep a count of outstanding async. texture uploads - really this might be better as a memory count - if teh current outstanding count is greater than the specified CVar wait for all operations to complete before purging the used buffers. By default the CVar is set to 0 which disables the tracking and the game will use all available memory.
Change 2936741 on 2016/04/07 by Mark.Satterthwaite
For Metal don't use a texture-view unless the mip-range or texture format is different - we only create a texture-view if we absolutely have to in order to avoid performance reductions on some vendors. When this happens we'll have to update the SRV to point to the new source texture but that can be handled on bind.
Change 2936753 on 2016/04/07 by Mark.Satterthwaite
Mutex the pipeline cache inside each Metal bound-shader-state - with parallel execution this can be modified from multiple threads.
Change 2936758 on 2016/04/07 by Mark.Satterthwaite
Don't eliminate redundant Metal command-encoders on Intel either - this only seems to work correctly on AMD...
Change 2936762 on 2016/04/07 by Mark.Satterthwaite
Validate that parallel contexts aren't asked to clear render-targets (incl depth/stencil) as this won't work as desired - each context will end up clearing the contents meaning none of the rendering will propagate which is probably not what you intend.
Change 2936765 on 2016/04/07 by Mark.Satterthwaite
Fix alignment of blit-commands between textures & buffers in Metal. Mac Metal has no minimum alignment and allows tightly packed rows, but mobile H/W has a fixed row alignment of 64-bytes for linear texture data.
Change 2936767 on 2016/04/07 by Mark.Satterthwaite
Remove the workaround for old Mac OS X AMD cards not supporting frame-buffer sRGB - I have a feeling it causes more problems than it solves.
Change 2936773 on 2016/04/07 by Mark.Satterthwaite
Warn the user when trying to run on OpenGL 3.2 GPUs that they are running unsupported and there may be rendering errors and performance problems.
Change 2936777 on 2016/04/07 by Mark.Satterthwaite
In MetalRHI move the calls that reset the state-cache and command-encoder to EndFrame and fix the fallout. Hopefully this will eliminate the problem where a draw call fails because a call to SetRenderTargets hasn't been made since the last time the command-buffer was submitted.
Change 2936788 on 2016/04/07 by Daniel.Lamb
PR #2193: Commandlet tweaks: Fixup Redirects and Cook-on-the-fly Server (Contributed by FineRedMist)
Change 2936799 on 2016/04/07 by Mark.Satterthwaite
Automatically enable RHI thread support in Metal if parallel execution is compiled in unless running the Editor which doesn't support it. The RHI thread is only enabled in Metal when parallel execution is available because there's little to no advantages to the RHI thread with Metal unless parallel execution is enabled. Also only enable async compute support when parallel execution is available and running on an AMD GPU as only AMD support it and again its only really useful when running things in parallel. Disable the async. compute fencing code when async. compute is disabled.
Change 2936923 on 2016/04/07 by Peter.Sauerbrei
add exception when trying to access an ini section which we don't cache
Change 2937839 on 2016/04/08 by Lee.Clark
PS4 - BC6H and BC7 support
#jira OR-14804
Change 2937841 on 2016/04/08 by Lee.Clark
Fix media player not opening the same file that has just been closed.
Change 2937843 on 2016/04/08 by Lee.Clark
PS4 - Fix Media player seek and duration
Change 2938272 on 2016/04/08 by Mark.Satterthwaite
Change the Metal texture lock/unlock code to use the immediate getBytes API to read from the texture unless it is stored in Private memory and requires we use the blit-encoder. This means iOS texture locking won't generally need to use the blit encoder with its row alignment restrictions as all textures will be Shared. On Mac most textures will still be accessed via blit operations since Private memory is much more common than Managed.
Change 2938471 on 2016/04/08 by Nick.Shin
load/save with "negative char size value" fixed
two 'U''s were missing-- causing base64encoder and decoder to not return original data (or expected data for that matter)...
C++ function shows these signatures:
\Engine\Source\Runtime\Engine\Public\SaveGameSystem.h
FGenericSaveGameSystem::SaveGame(..., ..., ..., ...<uint8>);
FGenericSaveGameSystem::LoadGame(..., ..., ..., ...<uint8>);
javascript version was using signed operators...
answerhub 386719 - broken load/save
Change 2938546 on 2016/04/08 by Nick.Shin
upgrading zlib, openssl, libcurl & libwebsockets
(part 1, for libwebsockets -- engine changes will be in part 2)
and writting down all of the build instructions into a single script file
future tasks may have the script broken to smaller sized files and placed in the respective library folders for simplicity -- for now, it's bundled together to ensure build is all-in-one...
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1223 - Arrange testing for 'update websocket library'
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2939402 on 2016/04/11 by Mark.Satterthwaite
No need to call synchroniseTexture on iOS when locking a texture for read - that function call is only available and required on OS X.
Change 2939526 on 2016/04/11 by Daniel.Lamb
Don't mark content as modified when garbage collecting.
#PR2249
#2249
Change 2940094 on 2016/04/11 by Michael.Trepka
Temporarily rollback //UE4/Dev-Platform/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalContext.cpp to revision 47 to unblock UE-29312
#codereview Mark.Satterthwaite
Change 2940540 on 2016/04/12 by Jeff.Campeau
Hardware decompress support for Xbox One.
Change 2940793 on 2016/04/12 by Lee.Clark
PS4 - Fix file handle leaks
#codereview Marcus.Wassmer
Change 2940903 on 2016/04/12 by Keith.Judge
Xbox One - Fix validated driver warning when using async compute with dynamic buffers (remove dynamic buffers).
Also resurrected the old deferred deletion queue (though simplified the code a lot as TQueue was horrible), as the platform agnostic one can't deal with placement created resources with a separate buffer/resource.
Moved associated deferred deletion logic out of FD3D11DynamicBuffer.
Attempted fix for UE-28758, but doesn't actually fix it. :(
Change 2940959 on 2016/04/12 by Michael.Trepka
Moved RadioEffectUnit CoreAudio plugin to Engine/Build/Mac
#codereview Ben.Marsh
Change 2940961 on 2016/04/12 by Michael.Trepka
Updated GitHub readme for Mac with instructions for building ShaderCompileWorker
#codereview Ben.Marsh
Change 2941010 on 2016/04/12 by Daniel.Lamb
Added xboxone.projectsettings to the ini processer in UAT.
#codereview Peter.Sauerbrei
#jira UE-29344
Change 2941671 on 2016/04/12 by Jeff.Campeau
March 2016 XDK update
Change 2941998 on 2016/04/13 by Mark.Satterthwaite
In MetalCommandList retain/release when waiting on a command-buffer commit to ensure command-buffer lifetime.
Change 2942008 on 2016/04/13 by Keith.Judge
Fix black reflections when async compute is enabled. Shader resource tables are now properly bound on the context, and fixed a bug where the buffer offset and number of constants wasn't being properly set when using the ring buffer.
#jira UE-28758
Change 2942046 on 2016/04/13 by Lee.Clark
Fix SN-DBS launch failure with VS2015 - (path env seems to be null in 2015)
Change 2942095 on 2016/04/13 by Mark.Satterthwaite
MIssed a change to use AlignedStride rather than Stride in FMetalDynamicRHI::RHIReadSurfaceFloatData to fix iOS blit-encoder read-back.
Change 2942383 on 2016/04/13 by Mark.Satterthwaite
When locking a Metal texture on Mac you have to submit the command buffer & wait in a different location for Private vs. Managed access.
Change 2942419 on 2016/04/13 by Michael.Trepka
Enabled IPv6 on iOS and Mac
#jira UEPLAT-1168
Change 2942472 on 2016/04/13 by Daniel.Lamb
Fixed missing OnlineSubsystemGooglePlay section from UAT ini processing.
#codereview Peter.Sauerbrei
Change 2942829 on 2016/04/13 by Nick.Shin
removing unused emscripten - ThirdParty folder
the ThirdParty folder contained a lot of GPL (and sometimes missing) licensing projects - removing to keep legal happy
tested with full rebuild, full cook, packaging and running QAGame
Change 2943110 on 2016/04/13 by Chris.Babcock
Fix Oculus mobile binaries filtered (include the jars)
#jira ue-29080
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943111 on 2016/04/13 by Chris.Babcock
Fix GearVR plugin jar copy logic
#jira UE-29108
#ue4
#android
#gearvr
#codereview Nick.Whiting
Change 2943579 on 2016/04/14 by Peter.Sauerbrei
enable tvOS in the binary build
Change 2943587 on 2016/04/14 by Peter.Sauerbrei
creation of xcode archives when using the archive command with iOS
Change 2943619 on 2016/04/14 by Mark.Satterthwaite
Make Metal SM4 the default on Mac again for the 4.12 release. As expected there are many bugs to resolve.
Change 2943869 on 2016/04/14 by Daniel.Lamb
Turned duplicate stage of files into warning.
#codereview Peter.Sauerbrei
#lockdown Josh.Adams
#jira UE-29487
Change 2943901 on 2016/04/14 by Keith.Judge
Xbox One - Fix start up crash.
#lockdown Josh.Adams
Change 2943981 on 2016/04/14 by Mark.Satterthwaite
Allow RWBuffers in Metal, which should work, but not RWTextures which aren't yet supported.
#jira UE-29492
#lockdown josh.adams
Change 2944080 on 2016/04/14 by Peter.Sauerbrei
temporarily remove code which removes passwords in ini files which reside in the pak file
multiple defaultengine.ini files were being copied over one another
#lockdown josh.adams
Change 2944249 on 2016/04/14 by Peter.Sauerbrei
fix for writing out DefaulEngine.ini when deprecated items are not changed
#codereview zabir.hoque
#lockdown josh.adams
Change 2944454 on 2016/04/14 by Peter.Sauerbrei
fix for incorrect archive directory and missing IPA
#jira UE-29509
#lockdown josh.adams
Change 2944834 on 2016/04/15 by Peter.Sauerbrei
fix for crash on some iOS device due to resources being freed while still in use by the GPU
#jira UE-29517
#lockdown josh.adams
Change 2944915 on 2016/04/15 by Peter.Sauerbrei
fix for including Facebook SDK in tvOS since we don't have the Facebook libraries for tvOS yet
#lockdown josh.adams
Change 2945164 on 2016/04/15 by Josh.Adams
- Removing XboxOnePDBFile from junkmanifest, causes too much trouble when staging using AutoSDKs
#lockdown nick.penwarden
#codereview jeff.campeau
#lockdown nick.penwarden
[CL 2945174 by Josh Adams in Main branch]
2016-04-15 10:04:09 -04:00
| | CodeTargetPlatform = = UnrealTargetPlatform . TVOS
2016-01-07 11:21:22 -05:00
| | CodeTargetPlatform = = UnrealTargetPlatform . Linux
| | CodeTargetPlatform = = UnrealTargetPlatform . Android
| | CodeTargetPlatform = = UnrealTargetPlatform . HTML5 )
2015-12-04 09:32:58 -05:00
{
ProjectType = EProjectType . Any ;
}
}
else
{
if ( CodeTargetPlatform = = UnrealTargetPlatform . Win32
| | CodeTargetPlatform = = UnrealTargetPlatform . Win64
2016-01-07 11:21:22 -05:00
| | CodeTargetPlatform = = UnrealTargetPlatform . Android
| | CodeTargetPlatform = = UnrealTargetPlatform . HTML5 )
2015-12-04 09:32:58 -05:00
{
ProjectType = EProjectType . Any ;
}
}
Merging //UE4/Release-4.11 to //UE4/Main (up to CL#2852902)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2835191 on 2016/01/19 by Nick.Whiting
Invert the y-axis on the SteamVR controllers to match the convention of the engine and the rest of the gamepads
#jira UE-22705
Change 2835686 on 2016/01/20 by Gareth.Martin
Fixed landscape material instances not being updated if holes are painted on a landscape that doesn't have the landscape visibility mask node in the material and then the visibility mask node is added to the material later.
#jira UE-18187
Change 2835767 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Added a cursor to TopDown template (C++ version) to match the BP version.
Change 2835772 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Adding the material asset for the C++ TopDown template's cursor.
Change 2835811 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25699 Added Validity Checks in BP logic, unchecked CDO for Pixel Ship, to Fix Log Warnings
#jira UE-25704 Adjusted Matinee to happen at Box Location
#jira UE-25688 Adjusted Player Starts
#jira UE-25693 Adjusted Player Starts
Change 2835863 on 2016/01/20 by Gareth.Martin
Fixed crash in the landscape ramp and mirror tools if the streaming level containing the landscape is hidden (or possibly if the landscape actor is deleted)
#jira UE-24883
Change 2835889 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25698 Enabled V-sync, also fixed up player Respawn Issue
Change 2835995 on 2016/01/20 by Jamie.Dale
The output log now hard-wraps lines to prevent long lines causing performance issues
#jira UE-24187
Change 2836052 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25675 Added Blocking Volume to prevent Player from Falling off map
#jira UE-25676 Added Blocking Volumes so that the Player doesn't get stucl at awkward corners under the Bridge
Change 2836137 on 2016/01/20 by Chad.Taylor
Vehicle and VehicleAdv template content fixes for new VR camera
#jira UE-25507
Change 2836166 on 2016/01/20 by Gareth.Martin
Fixed hiding a streaming level containing a landscape causing the landscape editor to switch to the "New Landscape" tool instead of exiting
#jira UE-25093
Change 2836174 on 2016/01/20 by Chad.Taylor
IHeadMountedDisplay crash fix associated with accessing a dangling pointer.
#jira UE-25272
Change 2836179 on 2016/01/20 by Jamie.Dale
Optimized FShapedGlyphSequence reverse look-up
There's now a reverse look-up map of cluster indices to their glyph data in order to avoid brute force looping
#jira UE-24187
Change 2836286 on 2016/01/20 by Chris.Babcock
Update Qualcomm TextureConverter for OSX
#jira UE-22092
#ue4
#android
Change 2836328 on 2016/01/20 by Nick.Darnell
Fixing a problem with widget components crashing on destruction with the render commands to pre/post render for window render commands needing access to the policy, but it potentially being deleted. Inserting a NoOp command that keeps the shared ptr alive through the RHI render process.
#jira UE-25752
Change 2836342 on 2016/01/20 by Nick.Darnell
Depending on shutdown order, the Slate Renderer may go away, and then render data handles may not be collected correctly because they are trying to reference a pointer that's no longer valid and cause a crash on exit. The correct approach would be to have render handles actually have a pointer back to who owns them, in this case the RHI Resource Manager, which is still alive and well at this point in the pipeline. Then if the resource manager is collected, it forces all handles to get cleaned up correctly, or if the handles are collected first, they can be sure they've got a valid pointer back to the resource manager.
#jira UE-25753
Change 2836358 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25710 Replaced Deprecated Nodes
Change 2836510 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25718 Adjsuted BP to make pointer decal rotate in the direction of surface
Change 2836564 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25716 Added bool to store last Moved Direction
Change 2836697 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25740 Removed unused VR Nodes to remove Log errors on Mac
Change 2836725 on 2016/01/20 by Peter.Sauerbrei
workaround for thread race when trying to release the TargetDeviceService endpoint after an unclaim message is sent
#jira UE-25123
Change 2836782 on 2016/01/20 by Jamie.Dale
Added FTextLayout::AddLines
This is similar to AddLine, however it allows you to add multiple lines in a single call, thus avoiding the re-justification cost associated with each call to AddLine.
AddLine has also been changed to take the same structure type as AddLines (which takes an array of these structures), and the existing version of AddLine has been deprecated.
#jira UE-24187
Change 2836801 on 2016/01/20 by Jeff.Campeau
[CL 2857187 by Matthew Griffin in Main branch]
2016-02-05 11:54:00 -05:00
// Allow Content only platforms to be shown as options in all projects
bool bCanBeDisplayed = ProjectType = = EProjectType . Content ;
2015-12-04 09:32:58 -05:00
foreach ( UnrealTargetConfiguration CodeTargetConfiguration in Enum . GetValues ( typeof ( UnrealTargetConfiguration ) ) )
{
// Need to check for development receipt as we use that for the Engine code in DebugGame
UnrealTargetConfiguration EngineConfiguration = ( CodeTargetConfiguration = = UnrealTargetConfiguration . DebugGame ) ? UnrealTargetConfiguration . Development : CodeTargetConfiguration ;
string Architecture = "" ;
var BuildPlatform = UEBuildPlatform . GetBuildPlatform ( CodeTargetPlatform , true ) ;
if ( BuildPlatform ! = null )
{
Architecture = BuildPlatform . CreateContext ( null ) . GetActiveArchitecture ( ) ;
}
string ReceiptFileName = TargetReceipt . GetDefaultPath ( OutputEnginePath , "UE4Game" , CodeTargetPlatform , EngineConfiguration , Architecture ) ;
if ( File . Exists ( ReceiptFileName ) )
{
// Strip the output folder so that this can be used on any machine
ReceiptFileName = new FileReference ( ReceiptFileName ) . MakeRelativeTo ( new DirectoryReference ( OutputDir ) ) ;
Copying //UE4/Release-Staging-4.12 to //UE4/Dev-Main (Source: //UE4/Release-4.12 @ 2962397)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2962397 on 2016/05/02 by Dmitriy.Dyomin
Fixed: Crash generating LOD for a Landscape
#jira UE-30144
Change 2962367 on 2016/05/01 by Zachary.Wilson
Building lighting on QA-Effects
#jira UE-29618
Change 2962363 on 2016/05/01 by Zachary.Wilson
Updating Reflection Capture Test Content
#jira UE-29618
Change 2962362 on 2016/05/01 by Benjamin.Hyder
Built Lighting in QA-PostProcessing level
#jira UE-29618
Change 2962361 on 2016/05/01 by Zachary.Wilson
Adding testing content for Custom Resolutions and Cubemaps for Sky Cubemaps and Reflection Probes.
#jira UE-29618
Change 2962357 on 2016/05/01 by Benjamin.Hyder
Built Lighting for Tm_SceneTexture
#jira UE-29618
Change 2962356 on 2016/05/01 by Benjamin.Hyder
Adding PlayerStart to TM-TranslucencyLghtingMode map
#jira UE-29618
Change 2962351 on 2016/05/01 by Benjamin.Hyder
Adding high Precision GBuffer Normal Encoding example to TM-Shadermodels
#jira UE-29618
Change 2962349 on 2016/05/01 by Benjamin.Hyder
Correcting Planar Reflection in TM-Shadermodels
#Jira UE-29618
Change 2962348 on 2016/05/01 by Benjamin.Hyder
Adding Planar Reflection Test Case content to TM-Shadermodels
#jira UE-29618
Change 2962347 on 2016/05/01 by Zachary.Wilson
Adding testing content for Dual Normal Clfar Coat Material Expression
#jira UE-29618
Change 2962340 on 2016/05/01 by Zachary.Wilson
Adding testing content for engine scalability (WIP)
#jira UE-29618
Change 2962173 on 2016/04/30 by Ben.Marsh
Fix typo.
Change 2962172 on 2016/04/30 by Ben.Marsh
Disable Vulkan in installed UE4 buids. Build machines don't have the Vulkan SDK installed so they can't generate static libraries for VulkanRHI, so if we try to link against it on user's machines they'll fail due to the missing LIB.
#jira UE-30156
Change 2961782 on 2016/04/29 by Mike.Beach
Guarding against an invalid (null) target for the Blueprint debugger (watch viewer) panel.
#jira UE-30110
Change 2961780 on 2016/04/29 by Mike.Beach
Guarding against interface arrays with null entries (null checking in property editor processing code).
#jira UE-30015
Change 2961580 on 2016/04/29 by Owen.Stupka
#jira UE-29796 Rollback //UE4/Release-4.12/Samples/NotForLicensees/ProtoStar/Content/Blueprints/NickD/StarCoreSliceNick.uasset to revision 2
Change 2961531 on 2016/04/29 by Ryan.Gerleve
Fix for an assert that could occur in monolithic builds when seamless traveling while recording a replay.
#jira UE-22047
Change 2961499 on 2016/04/29 by Marc.Audy
Use accessor instead of variable directly.
#jira UE-00000
Change 2961492 on 2016/04/29 by Chris.Babcock
Android Vulkan dynamic loader with fallback to ES2
- works with either NDK r11c+ or VulkanSDK (does not require .so)
#jira UEPLAT-1249
#jira UEMOB-103
#ue4
#android
Change 2961462 on 2016/04/29 by Chris.Babcock
Fix issue with stripping symbols for non-armv7 architectures
#jira UE-30138
#android
#ue4
Change 2961442 on 2016/04/29 by Marc.Audy
Fix undo/redo of attachment between an IWCE and blueprint constructed component not working
#jira UE-28948
Change 2961400 on 2016/04/29 by Samuel.Proctor
Test assets for FiB test cases.
#jira UE-29618
Change 2961382 on 2016/04/29 by Daniel.Lamb
Fix for shadowed variables.
#jira UE-29470
Change 2961319 on 2016/04/29 by mitchell.wilson
#jira UE-29618 - Adding TM-LandscapeFoliage map
Change 2961278 on 2016/04/29 by Chris.Babcock
Fix 64-bit cast
#jira UE-30132
#ue4
#android
Change 2961263 on 2016/04/29 by Daniel.Lamb
Fixed issue with iterative cooking missing dependent sublevels when checking for dependent timestamps.
#jira UE-29470
Change 2961227 on 2016/04/29 by Taizyd.Korambayil
#jira UE-30068 Resaved Some assets and Updated TexturePool in DefaultEninge.ini
Change 2961208 on 2016/04/29 by Nick.Darnell
UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping.
#jira UE-29919
Change 2961190 on 2016/04/29 by Nick.Darnell
UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping.
#jira UE-29919
Change 2961161 on 2016/04/29 by Gareth.Martin
Added warnings when trying to use the Landscape Visibility Tool without the landscape material having a "Landscape Visibility Mask" node.
#jira UE-30032
Change 2961109 on 2016/04/29 by Keith.Judge
Xbox One - Enable USE_NEW_LOCK_FREE_LISTS, and refactor code to allow VS2015 to compile it (was using a non-standard GCC/Clang behaviour). Lots of duplicated code, but there already was...
#jira UEPLAT-1288
Change 2961055 on 2016/04/29 by Mike.Beach
Mirroring CL 2961019:
Temporarily disabling InitProperties() spawning optimization, as it was causing GC issues.
#jira UE-29940
Change 2961018 on 2016/04/29 by Rolando.Caloca
UE4.12 - Compile fix for shipping
#jira UE-30096
Change 2960921 on 2016/04/29 by Matthew.Griffin
Updated AutoSDK used by Android so that arm64 will build
Change 2960920 on 2016/04/29 by Martin.Wilson
Missing files from 2960847
#jira ue-25715
Change 2960906 on 2016/04/29 by Peter.Sauerbrei
added more explicit message when the deployment fails due to device not on provision
#jira UE-19875
Change 2960869 on 2016/04/29 by Chris.Bunner
Allow custom material nodes to be used with tessellation outputs.
#jira UE-29586
Change 2960847 on 2016/04/29 by Martin.Wilson
Fix setting incorrect animation assets on anim player nodes.
#jira ue-25715
Change 2960842 on 2016/04/29 by Keith.Judge
Xbox One - Remove SetGpuMemoryPriority() call as it turns out most actual game titles are CPU bound, and this is just hurting them.
#jira UEPLAT-1288
Change 2960841 on 2016/04/29 by Keith.Judge
Xbox One - Make temporary buffers last for three frames.
#jira UEPLAT-1288
Change 2960838 on 2016/04/29 by Keith.Judge
Xbox One - Change the MemoryBarrier function to be FORCENOINLINE so that the compiler doesn't reorder writes around it.
#jira UEPLAT-1288
Change 2960834 on 2016/04/29 by Keith.Judge
Xbox One - Change GPUMalloc memory type to write combined, as cached non-coherent caused major UMG flickering issues, and would appear to be unsafe, according to the latest XDK docs.
#jira UEPLAT-1288
Change 2960829 on 2016/04/29 by Keith.Judge
Xbox One - Fix RHIUpdateTexture2D not actually updating the texture. It was silently failing because the GPU_READONLY flag was set on the memory. Grrrrrr!
#jira UEPLAT-1288
Change 2960826 on 2016/04/29 by Keith.Judge
Xbox One - Turn on GSupportsEfficientAsyncCompute and GSupportsParallelOcclusionQueries. Duplcated from Dev-Platform.
#jira UEPLAT-1288
Change 2960820 on 2016/04/29 by Keith.Judge
Xbox One - Replicate Windows critical section changes. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960819 on 2016/04/29 by Marc.Audy
Owned components are once again referenced by their Owning actor for GC purposes
#jira UE-29131
Change 2960817 on 2016/04/29 by Keith.Judge
Xbox One - Further fix for flickering HUD. Also seems to fix weird bloom when Fast Semantics are enabled. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960814 on 2016/04/29 by Keith.Judge
Xbox One - Fix crash when creating odd sized textures with initial data. Duplicated from Dev-Platform.
#jira UEPLAT-1288
Change 2960805 on 2016/04/29 by Keith.Judge
Fix .ini.ini filename issue (duplicated fix from Dev-Platform).
#jira UES-2270
Change 2960797 on 2016/04/29 by Mason.Seay
Deleting asset associated with crashing map, just to be safe (neither are needed anymore)
#jira UE-25215
Change 2960793 on 2016/04/29 by Mason.Seay
Deleting map that's causing a crash
#jira UE-25215
Change 2960774 on 2016/04/29 by Robert.Manuszewski
(temp) Fix for missing packages after cooking.
#jira UE-29876
Change 2960747 on 2016/04/29 by Jurre.deBaare
Mac build fixes
#jira abc-123
Change 2960739 on 2016/04/29 by Benn.Gallagher
Use mesh update mode to update cloth rather than whether or not it was rendered.
#jira UE-25934
Change 2960707 on 2016/04/29 by Jurre.deBaare
HLOD cluster dirtying from changes in static mesh component and spline mesh component, required making the HierarchicalLODUtilities Module to have an abstract interface (for dynamic loading in the Engine module)
#jira UE-24378
Change 2960704 on 2016/04/29 by Matthew.Griffin
Added Architectures and GPUArchitectures to UEBuildConfiguration that can be passed through on the UBT command line
Changed Android Tool Chain so that it checks the command line architectures as an additional way to setup which ones to build
Added option to pass architectures on command line when precompiling monolithic targets via UAT (with armv7, arm64 & es2 set for Android for now)
Added code to read precompiled architectures in Rocket build and write out additional Installed Platform Info entries for each one
#jira UEB-560
Change 2960694 on 2016/04/29 by Robert.Manuszewski
Log free disk space when DirectoryWatcher's File Cache fails to move a file.
#jira UE-24660
Change 2960687 on 2016/04/29 by Benn.Gallagher
Demoted eINTERNAL_ERROR (PhysX error code) to warning as we were flagging things too zealously (degenerate poly failing a cook)
#jira UE-30053
Change 2960381 on 2016/04/28 by Chris.Babcock
Handle movie playback not covering full surface
#jira UE-28705
#ue4
#android
Change 2960162 on 2016/04/28 by Ryan.Vance
#jira UE-30099
Re-enabling the occlusion area mask for the Rift. Any Rift HMD's newer than the CB prototype will use the CV1 masks. We'll need to revist this in the future.
We need to ensure we always set the InstancedEyeIndex uniform if it's bound. Otherwise passes that aren't using instanced stereo will resolve their views using an uninitialized variable (translucency).
Change 2960100 on 2016/04/28 by Andrew.Porter
Removing old sub sequences.
#jira UE-29618
Change 2959962 on 2016/04/28 by Peter.Sauerbrei
fix for enabling InApp purchasing not enabling Online Subsystem IOS
#jira UE-25512
Change 2959937 on 2016/04/28 by Patrick.Donovan
Screen aligned UVs test material for QAGame for testing if they work in VR.
#jira UE-29618
Change 2959914 on 2016/04/28 by Dan.Oconnor
Fix for copy paste error, likely of no consequence because nothing calls IsExporting(), found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959859 on 2016/04/28 by Ryan.Gerleve
Fix for fatal error crash when loading the default map fails. Now we load a dummy world and request graceful exit in standalone, or shutdown the current play session in PIE.
#jira UE-26634
Change 2959856 on 2016/04/28 by Chris.Babcock
Fix scaling on low-resolution devices in Match3
#jira UE-28706
#ue4
#match3
Change 2959839 on 2016/04/28 by Dan.Oconnor
Fix IsControlCharacter result for 'pop directional isolate' character (u2069), found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959836 on 2016/04/28 by Dan.Oconnor
Remove unused local variable, found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959829 on 2016/04/28 by Dan.Oconnor
Using OverridePredrawBatchTime and OverridePredrawBatchTime correctly, found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959817 on 2016/04/28 by Peter.Sauerbrei
fix for parsing the IOS Device ID
addition of iPhone SE (courtesy davidrpozesky, PR2307)
addition of iPadPro 9.7
#jira UE-21921
Change 2959808 on 2016/04/28 by Nick.Darnell
UBT - Restoring GetModuleFilename to the RulesCompiler but only to deprecate it, and point users at the method they should now be using.
#jira ue-none
Change 2959805 on 2016/04/28 by Chad.Taylor
Merging
//UE4/Dev-VR/Engine/...
to //UE4/Release-4.12/Engine/...
#jira UEBP-188
Change 2959798 on 2016/04/28 by Dan.Oconnor
Manually integrate 2947850, also found with PVS-Studio by Robert Troughton
#jira UE-30058
Change 2959796 on 2016/04/28 by Aaron.McLeran
Duplicating CL 2959785 from //UE4/Dev-Framework
#jira UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances
#tests created new sound cue with concat node with child nodes that don't play sound-instances, concat node continues playing
Change 2959793 on 2016/04/28 by Dan.Oconnor
Fixed setter that did nothing, found with PVS-Studio by Robert Troughton. This code will be removed soon.
#jira UE-30058
Change 2959739 on 2016/04/28 by Ori.Cohen
Remove box2d ensure as it's confusing for legit crashes since it shows up in the end of the log.
#JIRA UE-29932
Change 2959709 on 2016/04/28 by Nick.Darnell
Slate - Menu Stack no longer crashes when forcefully dismissing multiple menus in the stack at once.
#jira UE-30087
Change 2959701 on 2016/04/28 by Nick.Darnell
Slate - The MoviePlayer now has an OnPrepareLoadingScreen callback that modules can hook instead of relying on the PreLoadMap, which depending on when you hook it, you may be before or after the movie player. Therefore to aleviate that ordering problem - if the movie player goes to play a loading screen and one has not yet been configured this callback will be triggered so that hopefully one is supplied.
#jira UE-30085
Change 2959691 on 2016/04/28 by Nick.Darnell
UMG - Fixed Aspect ratios now correctly size the right side of the screen, allowing right anchored content to be fit properly inside the black frame borders.
#jira UE-30084
Change 2959678 on 2016/04/28 by mason.seay
Updated test sound cue asset, as it appeared to be partially filled out. Moved it out of developer folder.
Also rebuilt lighting on associated test map.
#jira UE-29618
Change 2959514 on 2016/04/28 by Aaron.McLeran
Duplicating CL 2959506 from //UE4/Dev-Framework
#jira UE-30000
PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel)
#tests Playing another looping sound on an audio component will stop the previous looping sound.
Change 2959486 on 2016/04/28 by Bob.Tellez
Duplicating CL#2948431 from //Orion/Dev-General
CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE.
#JIRA UE-29625
#tests Ran editor
Change 2959414 on 2016/04/28 by Chad.Taylor
IStereoLayers API and Oculus Rift implementation
#jira UEBP-185
Change 2959395 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29710 Resaved Kite Demo Maps and Audio files to Fix Build Warnings
Change 2959386 on 2016/04/28 by Richard.TalbotWatkin
Replicated from CL 2959360 in //UE4/Dev-Editor/
Fixed potential crash when mesh painting actors whose geometry adapters are no longer registered.
#jira UE-29615 - [CrashReport] UE4Editor_MeshPaint!FEdModeMeshPaint::DoPaint() [meshpaintedmode.cpp:1127]
Change 2959377 on 2016/04/28 by Matthew.Griffin
Added 2015 versions of OpenSSL dlls to list of RuntimeDependencies, so that they will be included in the binary build
#jira UE-30024
Change 2959367 on 2016/04/28 by Alexis.Matte
#jira OR-20622
make sure LOD import Materials get map with LOD 0 material index
Change 2959302 on 2016/04/28 by Jamie.Dale
Removed invalid assert
#jira UE-30042
Change 2959263 on 2016/04/28 by Peter.Sauerbrei
fix for virtual joysticks showing up on tvOS
removed usage of ES2 define for tvOS
#jira UE-26122
Change 2959235 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29744 Resaved Vehicle Game maps to Fix Build Warnings
Change 2959177 on 2016/04/28 by Thomas.Sarkanen
Fixed curve names getting incorrectly duplicated when DuplicateObject was called
Fixes crash when trying to convert curves to metadata after newly importing a sequence.
#jira UE-29988 - Crash when converting custom curve to metadata in persona
Change 2959170 on 2016/04/28 by Taizyd.Korambayil
#jira UE-29683 Resaved Maps to Fix Build Warnings
#jira UE-29685
#jira UE-29679
#jira UE-29684
Change 2959154 on 2016/04/28 by Dan.Bullard
Added Media Player assets and added example to TM-ShaderModels.
#jira UE-29618
Change 2959112 on 2016/04/28 by Jamie.Dale
Fixed a long time IME crash that could happen under certain circumtances
#jira OPP-5607
Change 2959086 on 2016/04/28 by Jamie.Dale
Refreshing the editable text layout now makes sure the layout is up-to-date
This addresses some update issues when the widget is being ticked, but not running a layout pass.
#jira UE-30054
Change 2958927 on 2016/04/28 by Phillip.Kavan
[UE-30040] Fix broken editor UI display of values for int32 properties tagged as bitmask fields when the high bit is set.
#jira UE-30040
Change 2958730 on 2016/04/28 by Phillip.Kavan
[UE-23087] Don't apply near-zero delta values while drag-scaling inside the Blueprint editor's preview viewport.
#jira UE-23087
Change 2958566 on 2016/04/27 by Marcus.Wassmer
Fix material preview and PostProcessAmbient
#jira UE-29994
Change 2958459 on 2016/04/27 by mason.seay
Test assets for Sound Class Override
#jira UE-29618
Change 2958399 on 2016/04/27 by Owen.Stupka
#jira UE-29924 Back out CL 2958355, change was in wrong position.
Change 2958395 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2950482 from //UE4/Dev-Framework
#jira FORT-22973 SoundMix Fade Time not fading audio properly
- Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes.
#tests Apply a sound mix using a child sound class with apply-to-children enabled. Sound mix properly interpolates.
Change 2958387 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2954865 from //UE4/Dev-Framework
#jira UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types.
#tests run editor in PIE with HMD connected, audio only plays on PC, then run in VR-Preview with HMD connected, audio plays on HMD audio device
Change 2958381 on 2016/04/27 by Josh.Adams
- Fixed compile error in IOSDeviceHelperMac.cpp
#lockdown nick.penwarden
#jira UE-30037
Change 2958355 on 2016/04/27 by Owen.Stupka
#jira UE-29924 Fix for UAT issues on Mac.
Change 2958351 on 2016/04/27 by Aaron.McLeran
Duplicating CL#2957953 from //UE4/Dev-Framework
#jira UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing.
#tests run audio component with auto-activate, call play, setup notification callback in BP, note that only triggered once
Change 2958344 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29720 Resaved Audio Files to fix NodeGUID Warnings
Change 2958342 on 2016/04/27 by mitchell.wilson
#jira UE-29618 updating shot_002 to fix an issue with snapping.
Change 2958315 on 2016/04/27 by Marc.Audy
No longer use component pooling, but instead spawn Actors for thumbnail display
#jira UE-17453
Change 2958289 on 2016/04/27 by Marc.Audy
Don't crash rerunning construction script on a child actor that belongs to a ownerless child actor component
#jira UE-30033
Change 2958280 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29723 Resaved Maps and Audio Files
Change 2958237 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29687 Resaved Some Assets to Fix Build Warnings
Change 2958176 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29701 Resaved Some Assets to Fix Build Warnings
Change 2958172 on 2016/04/27 by Ori.Cohen
Back out changelist 2955134
#JIRA UE-30030
Change 2958121 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29706 Resaved Some Assets to Fix Build Warnings
Change 2958070 on 2016/04/27 by Peter.Sauerbrei
fix for launch on to tvOS from PC
properly filter out tvOS devices when launching to IOS and vice versa
#jira UE-29928
Change 2958029 on 2016/04/27 by Andrew.Rodham
Fixed SMenuAnchor::bIsCollapsedByParent not being respected
#jira UE-30016
Change 2957962 on 2016/04/27 by Alexis.Matte
#jira UE-29984
Pixel inspector crash
Fix the viewport id
Change 2957908 on 2016/04/27 by Andrew.Rodham
Sequencer: Fixed being unable to render out 4K image sequences using matinee or sequencer
#jira UE-29171
Change 2957880 on 2016/04/27 by Peter.Sauerbrei
fix for metal not being enabled in iOS 8
added some checks for bSupportsResourceOptions in Lock/Unlock
#jira UE-29268
Change 2957860 on 2016/04/27 by Gareth.Martin
Fixed landscape grass not updating when using a material instance as the landscape material and changing parameters
#jira UE-29471
Change 2957833 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29707 Replaced Deprecated Nodes and Resaved Audio Files to Fix Build Warnings
Change 2957805 on 2016/04/27 by Max.Chen
Sequencer: Fix crash in UMG when a property changes and there's no movie scene.
#jira UE-30008
Change 2957803 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29718 Resaved Audio Files and Maps to Fix NodeGuid Warnings
Change 2957799 on 2016/04/27 by Max.Chen
Sequencer: Fix visibility track name so that it says "Visibility"
#jira UE-29996
Change 2957777 on 2016/04/27 by Allan.Bentham
Workaround ES31 HQ DoF producing no effect with vulkan rhi.
#jira UE-30006
Change 2957763 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29678 Resaved Maps to Fix Build Errors
Change 2957740 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29628 Resaved Maps to fix Build Warnings
Change 2957713 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29715 Resaved Maps to Fix Build Warnings
Change 2957678 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29677 Fixed up AnimBP and resaved some assets to fix Build Warnings
Change 2957627 on 2016/04/27 by Frank.Fella
UMG - Sequencer - Fix material animation for materials on struct properties e.g. style materials, and fix the naming so that it's [Original Name]_Animated
#Jira UE-29319
#Jira UE-29321
Change 2957625 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29689 Replaced deprecated Nodes and Resaved some assets to Fix Warnings
Change 2957603 on 2016/04/27 by mitchell.wilson
#jira UE-29618 updating Test-Animation for UMG test. Adding M_SequenceUMG material for UMG testing
Change 2957577 on 2016/04/27 by Ben.Marsh
EC: Increase the number of changes queried to display the EC dashboard. Some changes are getting filtered out.
Change 2957569 on 2016/04/27 by Maciej.Mroz
#jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true
merged from Dev-Blueprints 2957564
Change 2957565 on 2016/04/27 by Taizyd.Korambayil
#jira UE-29721 Resaved Some Content to Fix Empty Engine Version Error
Change 2957558 on 2016/04/27 by Matthew.Griffin
Updated Installed Engine Filters now that Linux has dropped the architecture from its .target files
#jira UE-29899
Change 2957504 on 2016/04/27 by Marc.Audy
Persist component instance data cache through blueprint construction that results in "disaster recovery mode"
#jira UE-20385
Change 2957162 on 2016/04/26 by Dmitriy.Dyomin
Fixed: Some Unicode letters are not properly displayed with FCanvasTextItem in Android device
#jira UE-25861
Change 2957117 on 2016/04/26 by Dan.Oconnor
PR #2289: Exposing "IsValidIndex" Array function to Blueprints (Contributed by eXifreXi)
Modifications: typo fix in Array.h, made blueprint description consistent with native function, removed redundant nullptr check, added P_NATIVE timer macros, added custom thunk implementation for cpp backend
#jira UE-29563
Change 2957057 on 2016/04/26 by Dan.Oconnor
Tweak logic used to make variable nodes more accessible
Motivation was PR#2202 by Lucyberad
#jira UE-28802
Change 2956884 on 2016/04/26 by Jamie.Dale
Removed an assert that can be triggered by certain IMEs
#jira UE-19744
Change 2956876 on 2016/04/26 by Dan.Oconnor
PR #2288: Adjustment of RInterpTo and RInterpTo_Constant descriptions to match function. (Contributed by CelPlays)
#jira UE-29495
Change 2956860 on 2016/04/26 by Max.Preussner
Sockets: Fixed incorrect socket timeout when value < 1 ms (UE-29973)
#jira: UE-29973
Change 2956801 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added r.Vulkan.SubmitOnCopyToResolve to help track down submit issues
#jira UE-28140
Change 2956679 on 2016/04/26 by Andrew.Rodham
Editor: Fixed not being able to switch between cinematic/default viewport types
#jira UE-29942
Change 2956674 on 2016/04/26 by James.Fox
Updated Blueprint Bitmask test asset to include Bitwise OR.
#jira UE-29618
Change 2956573 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added TRANSFER_BIT to swapchain images since it's required for clearing
#jira UE-28140
Change 2956572 on 2016/04/26 by Rolando.Caloca
UE4.12 - vk - Added alignment to buffer offsets depending on usage
#jira UE-28140
Change 2956502 on 2016/04/26 by Peter.Sauerbrei
fix for missing particles on iPhone 5 when compiling for size
re-enable compile for size for Match 3
#jira UE-28721
Change 2956445 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29691 Resaved some Animation Assets to Fix Build Warnings
Change 2956382 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29688 Resaved Maps in Infiltrator Demo t oFix Some Build Warnings
Change 2956332 on 2016/04/26 by Patrick.Donovan
Adding physics asset set up for Capsule shadows for easy testing of capsule shadows in VR and with instanced stereo enabled.
#jira UE-29618
Change 2956301 on 2016/04/26 by Ben.Marsh
Disable notification emails for warnings in Rocket sample builds.
Change 2956264 on 2016/04/26 by Peter.Sauerbrei
fix for binary release generation of bp-only project files for IOS on Mac
#jira UE-29934
Change 2956247 on 2016/04/26 by Jurre.deBaare
Fix for Mac compile
#jira UE-123ABC
Change 2956192 on 2016/04/26 by Jurre.deBaare
- Changed signatures for merging static mesh (LOD index now incorporated in merge data structure)
- Proxy mesh and Mesh merging now just merges one specific LOD index per input mesh (instead of looping over all LOD levels)
- Moved SourceStaticMesh and addex ExportLODIndex to FMeshMergeData structure
- LightMap Index for merged static meshes is now set correctly
- Added enum to MaterialProxySettings for distinction between (non-)Simplygon uses of the struct
- Move MergeActor tab spawner out of experimental (removed option from config) and moved into Developer Tools/Misc
#jira UE-28319
Change 2956183 on 2016/04/26 by mitchell.wilson
#jira UE-29618 Adding new sequence for assign actor testing. Updating sequencer levels for assign actor testing
Change 2956152 on 2016/04/26 by Lina.Halper
- removed invalid ensure because it doesn't check recursive, it does have different value with validation
#jira : UE-29945
Change 2956034 on 2016/04/26 by Andrew.Rodham
Sequencer: Skeletal animation tracks now evaluate the nearest section where no animation section is present
- This is more consistent with how other tracks evaluate, and guarantees a deterministic animated state
#jira UE-28073
Change 2956002 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29729 Resaved Blueprints to Fix Build Warnings
Change 2955999 on 2016/04/26 by Max.Chen
Sequencer: Refresh instances when done recording. This fixes a bug where spawned recorded actors aren't visible when done recording.
#jira UE-29841
Change 2955983 on 2016/04/26 by Andrew.Rodham
Removing Saved, Intermediate, and DerivedDataCache folders from SubwaySequencer sample project.
#jira UE-29938
Change 2955979 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29728 Resaved Some assets to Fix Build Warnings
Change 2955941 on 2016/04/26 by Taizyd.Korambayil
#jira UE-29730 Resaved Maps to Fix Build Warnings
Change 2955937 on 2016/04/26 by Andrew.Rodham
Sequencer: When recording actors as spawnables, we no longer duplicate the object, rather create a new instance of the same class
- This fixes issues caused by undersiable state being saved into the spawnable defaults
Merged from //UE4/Dev-Sequencer/...@2952610
#jira UE-29774
Change 2955888 on 2016/04/26 by mitchell.wilson
#jira UE-29618 Updating shots for sequencer testing
Change 2955635 on 2016/04/26 by Max.Chen
Sequencer: Fix filtering so that folders that contain filtered nodes will also appear.
#jira UE-28213
[CL 2969385 by Matthew Griffin in Main branch]
2016-05-06 15:20:28 -04:00
// If we have precompiled architectures for this platform then add an entry for each of these -
// there isn't a receipt for each architecture like some other platforms
if ( AllArchNames . Count > 0 )
{
foreach ( string Arch in AllArchNames )
{
InstalledConfigs . Add ( new InstalledPlatformInfo . InstalledPlatformConfiguration ( CodeTargetConfiguration , CodeTargetPlatform , TargetRules . TargetType . Game , Arch , ReceiptFileName , ProjectType , bCanBeDisplayed ) ) ;
}
}
else
{
InstalledConfigs . Add ( new InstalledPlatformInfo . InstalledPlatformConfiguration ( CodeTargetConfiguration , CodeTargetPlatform , TargetRules . TargetType . Game , Architecture , ReceiptFileName , ProjectType , bCanBeDisplayed ) ) ;
}
2015-12-04 09:32:58 -05:00
}
}
}
2016-04-14 20:35:31 -04:00
UnrealBuildTool . InstalledPlatformInfo . WriteConfigFileEntries ( InstalledConfigs , ref IniLines ) ;
2015-12-04 09:32:58 -05:00
// Write Rocket specific Analytics settings
IniLines . Add ( "" ) ;
IniLines . Add ( "[Analytics]" ) ;
IniLines . Add ( "UE4TypeOverride=Rocket" ) ;
// Make sure we can write to the the config file
File . SetAttributes ( OutputBaseEnginePath , OutputAttributes & ~ FileAttributes . ReadOnly ) ;
File . AppendAllLines ( OutputBaseEnginePath , IniLines ) ;
File . SetAttributes ( OutputBaseEnginePath , OutputAttributes ) ;
}
2015-03-27 08:02:21 -04:00
}
2015-04-25 10:33:07 -04:00
public class PublishRocketNode : GUBP . HostPlatformNode
{
string LocalDir ;
string PublishDir ;
public PublishRocketNode ( UnrealTargetPlatform HostPlatform , string InLocalDir , string InPublishDir ) : base ( HostPlatform )
{
LocalDir = InLocalDir ;
PublishDir = InPublishDir ;
AddDependency ( GatherRocketNode . StaticGetFullName ( HostPlatform ) ) ;
AgentSharingGroup = "RocketGroup" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
}
public static string StaticGetFullName ( UnrealTargetPlatform HostPlatform )
{
return "PublishRocket" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
public override void DoBuild ( GUBP bp )
{
2015-05-01 19:53:59 -04:00
// Create a zip file containing the install
string FullZipFileName = Path . Combine ( CommandUtils . CmdEnv . LocalRoot , "FullInstall" + StaticGetHostPlatformSuffix ( HostPlatform ) + ".zip" ) ;
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Creating {0}..." , FullZipFileName ) ;
2015-05-01 19:53:59 -04:00
CommandUtils . ZipFiles ( FullZipFileName , LocalDir , new FileFilter ( FileFilterType . Include ) ) ;
2015-04-25 10:33:07 -04:00
2015-05-01 19:53:59 -04:00
// Create a filter for the files we need just to run the editor
FileFilter EditorFilter = new FileFilter ( FileFilterType . Include ) ;
EditorFilter . Exclude ( "/Engine/Binaries/..." ) ;
EditorFilter . Include ( "/Engine/Binaries/DotNET/..." ) ;
EditorFilter . Include ( "/Engine/Binaries/ThirdParty/..." ) ;
EditorFilter . Include ( "/Engine/Binaries/" + HostPlatform . ToString ( ) + "/..." ) ;
EditorFilter . Exclude ( "/Engine/Binaries/.../*.lib" ) ;
EditorFilter . Exclude ( "/Engine/Binaries/.../*.a" ) ;
EditorFilter . Exclude ( "/Engine/Extras/..." ) ;
EditorFilter . Exclude ( "/Engine/Source/.../Private/..." ) ;
EditorFilter . Exclude ( "/FeaturePacks/..." ) ;
EditorFilter . Exclude ( "/Samples/..." ) ;
EditorFilter . Exclude ( "/Templates/..." ) ;
EditorFilter . Exclude ( "*.pdb" ) ;
// Create a zip file containing the editor install
string EditorZipFileName = Path . Combine ( CommandUtils . CmdEnv . LocalRoot , "EditorInstall" + StaticGetHostPlatformSuffix ( HostPlatform ) + ".zip" ) ;
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Creating {0}..." , EditorZipFileName ) ;
2015-05-01 19:53:59 -04:00
CommandUtils . ZipFiles ( EditorZipFileName , LocalDir , EditorFilter ) ;
// Copy the files to their final location
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Copying files to {0}" , PublishDir ) ;
2015-07-22 15:21:40 -04:00
InternalUtils . Robust_CopyFile ( FullZipFileName , Path . Combine ( PublishDir , Path . GetFileName ( FullZipFileName ) ) ) ;
InternalUtils . Robust_CopyFile ( EditorZipFileName , Path . Combine ( PublishDir , Path . GetFileName ( EditorZipFileName ) ) ) ;
2015-05-01 19:53:59 -04:00
CommandUtils . DeleteFile ( FullZipFileName ) ;
CommandUtils . DeleteFile ( EditorZipFileName ) ;
// Save a record of success
2015-04-25 10:33:07 -04:00
BuildProducts = new List < string > ( ) ;
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
}
}
public class PublishRocketSymbolsNode : GUBP . HostPlatformNode
2015-04-10 13:56:50 -04:00
{
2015-07-08 08:05:50 -04:00
GUBP . GUBPBranchConfig BranchConfig ;
2015-04-10 13:56:50 -04:00
string SymbolsOutputDir ;
2015-07-08 08:05:50 -04:00
public PublishRocketSymbolsNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform HostPlatform , IEnumerable < UnrealTargetPlatform > TargetPlatforms , string InSymbolsOutputDir ) : base ( HostPlatform )
2015-04-10 13:56:50 -04:00
{
2015-07-08 08:05:50 -04:00
BranchConfig = InBranchConfig ;
2015-04-10 13:56:50 -04:00
SymbolsOutputDir = InSymbolsOutputDir ;
AddDependency ( GUBP . ToolsForCompileNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) ) ;
AddDependency ( GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2016-01-22 08:13:18 -05:00
if ( WaitToMakeRocketBuild . ShouldAddTrigger ( InBranchConfig ) )
{
AddPseudodependency ( WaitToMakeRocketBuild . StaticGetFullName ( ) ) ;
}
2015-04-10 13:56:50 -04:00
foreach ( UnrealTargetPlatform TargetPlatform in TargetPlatforms )
{
2015-07-08 08:05:50 -04:00
if ( HostPlatform = = RocketBuild . GetSourceHostPlatform ( BranchConfig . HostPlatforms , HostPlatform , TargetPlatform ) )
2015-04-28 15:47:56 -04:00
{
bool bIsCodeTargetPlatform = RocketBuild . IsCodeTargetPlatform ( HostPlatform , TargetPlatform ) ;
2015-07-08 08:05:50 -04:00
AddDependency ( GUBP . GamePlatformMonolithicsNode . StaticGetFullName ( HostPlatform , BranchConfig . Branch . BaseEngineProject , TargetPlatform , Precompiled : bIsCodeTargetPlatform ) ) ;
2015-04-28 15:47:56 -04:00
}
2015-04-10 13:56:50 -04:00
}
2015-04-25 10:33:07 -04:00
AgentSharingGroup = "RocketGroup" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
2015-04-10 13:56:50 -04:00
}
public static string StaticGetFullName ( UnrealTargetPlatform HostPlatform )
{
2015-04-25 10:33:07 -04:00
return "PublishRocketSymbols" + StaticGetHostPlatformSuffix ( HostPlatform ) ;
2015-04-10 13:56:50 -04:00
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
public override void DoBuild ( GUBP bp )
{
2015-07-08 08:05:50 -04:00
if ( RocketBuild . ShouldDoSeriousThingsLikeP4CheckinAndPostToMCP ( BranchConfig ) )
2015-04-10 13:56:50 -04:00
{
2015-04-25 10:33:07 -04:00
// Make a lookup for all the known debug extensions, and filter all the dependency build products against that
HashSet < string > DebugExtensions = new HashSet < string > ( Platform . Platforms . Values . SelectMany ( x = > x . GetDebugFileExtentions ( ) ) . Distinct ( ) . ToArray ( ) , StringComparer . InvariantCultureIgnoreCase ) ;
foreach ( string InputFileName in AllDependencyBuildProducts )
2015-04-10 13:56:50 -04:00
{
2015-04-25 10:33:07 -04:00
string Extension = Path . GetExtension ( InputFileName ) ;
2015-05-18 10:03:36 -04:00
if ( DebugExtensions . Contains ( Extension ) | | Extension = = ".exe" | | Extension = = ".dll" ) // Need all windows build products for crash reporter
2015-04-25 10:33:07 -04:00
{
string OutputFileName = CommandUtils . MakeRerootedFilePath ( InputFileName , CommandUtils . CmdEnv . LocalRoot , SymbolsOutputDir ) ;
2015-07-22 15:21:40 -04:00
InternalUtils . Robust_CopyFile ( InputFileName , OutputFileName ) ;
2015-04-25 10:33:07 -04:00
}
2015-04-10 13:56:50 -04:00
}
}
// Add a dummy build product
BuildProducts = new List < string > ( ) ;
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
}
}
public class BuildDerivedDataCacheNode : GUBP . HostPlatformNode
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
GUBP . GUBPBranchConfig BranchConfig ;
2015-03-27 08:02:21 -04:00
string TargetPlatforms ;
string [ ] ProjectNames ;
2015-04-20 11:08:45 -04:00
public readonly string SavedDir ;
public readonly string SavedManifestPath ;
2015-03-27 08:02:21 -04:00
2015-07-08 08:05:50 -04:00
public BuildDerivedDataCacheNode ( GUBP . GUBPBranchConfig InBranchConfig , UnrealTargetPlatform InHostPlatform , string InTargetPlatforms , string [ ] InProjectNames )
2015-03-27 08:02:21 -04:00
: base ( InHostPlatform )
{
2015-07-08 08:05:50 -04:00
BranchConfig = InBranchConfig ;
2015-03-27 08:02:21 -04:00
TargetPlatforms = InTargetPlatforms ;
ProjectNames = InProjectNames ;
2015-04-20 11:08:45 -04:00
SavedDir = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Saved" , "Rocket" , HostPlatform . ToString ( ) ) ;
SavedManifestPath = CommandUtils . CombinePaths ( SavedDir , "DerivedDataCacheManifest.txt" ) ;
2015-03-27 08:02:21 -04:00
2015-04-10 13:56:50 -04:00
AddDependency ( GUBP . RootEditorNode . StaticGetFullName ( HostPlatform ) ) ;
2015-05-12 19:21:10 -04:00
AddDependency ( GUBP . ToolsNode . StaticGetFullName ( HostPlatform ) ) ;
2015-03-27 08:02:21 -04:00
}
public static string StaticGetFullName ( UnrealTargetPlatform InHostPlatform )
{
2015-04-10 13:56:50 -04:00
return "BuildDerivedDataCache" + StaticGetHostPlatformSuffix ( InHostPlatform ) ;
2015-03-27 08:02:21 -04:00
}
2015-07-08 08:05:50 -04:00
public override int CISFrequencyQuantumShift ( GUBP . GUBPBranchConfig BranchConfig )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
return base . CISFrequencyQuantumShift ( BranchConfig ) + 2 ;
2015-03-27 08:02:21 -04:00
}
public override string GetFullName ( )
{
return StaticGetFullName ( HostPlatform ) ;
}
public override void DoBuild ( GUBP bp )
{
2015-04-20 11:08:45 -04:00
CommandUtils . CreateDirectory ( SavedDir ) ;
2015-03-27 08:02:21 -04:00
BuildProducts = new List < string > ( ) ;
2015-04-20 11:08:45 -04:00
List < string > ManifestFiles = new List < string > ( ) ;
2015-04-16 11:59:12 -04:00
if ( ! bp . ParseParam ( "NoDDC" ) )
2015-03-27 08:02:21 -04:00
{
2015-05-12 19:21:10 -04:00
// Find all the projects we're interested in
List < BranchInfo . BranchUProject > Projects = new List < BranchInfo . BranchUProject > ( ) ;
2015-04-10 13:56:50 -04:00
foreach ( string ProjectName in ProjectNames )
2015-03-27 08:02:21 -04:00
{
2015-07-08 08:05:50 -04:00
BranchInfo . BranchUProject Project = BranchConfig . Branch . FindGameChecked ( ProjectName ) ;
2015-04-10 13:56:50 -04:00
if ( ! Project . Properties . bIsCodeBasedProject )
{
2015-05-12 19:21:10 -04:00
Projects . Add ( Project ) ;
2015-04-10 13:56:50 -04:00
}
2015-03-27 08:02:21 -04:00
}
2015-04-16 11:54:50 -04:00
2015-05-12 19:21:10 -04:00
// Filter out the files we need to build DDC. Removing confidential folders can affect DDC keys, so we want to be sure that we're making DDC with a build that can use it.
FileFilter Filter = new FileFilter ( FileFilterType . Exclude ) ;
Filter . AddRuleForFiles ( AllDependencyBuildProducts , CommandUtils . CmdEnv . LocalRoot , FileFilterType . Include ) ;
2015-09-01 04:48:32 -04:00
FilterRocketNode . AddRuleForRuntimeDependencies ( Filter , AllDependencyBuildProducts , FileFilterType . Include ) ;
2015-05-12 19:21:10 -04:00
Filter . ReadRulesFromFile ( CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "Engine" , "Build" , "InstalledEngineFilters.ini" ) , "CopyEditor" , HostPlatform . ToString ( ) ) ;
Filter . Exclude ( "/Engine/Build/..." ) ;
Filter . Exclude ( "/Engine/Extras/..." ) ;
Filter . Exclude ( "/Engine/DerivedDataCache/..." ) ;
Filter . Exclude ( "/Samples/..." ) ;
Filter . Exclude ( "/Templates/..." ) ;
2015-08-12 10:05:08 -04:00
Filter . Include ( "/Templates/TemplateResources/..." ) ;
2015-05-12 19:21:10 -04:00
Filter . Exclude ( ".../Source/..." ) ;
Filter . Exclude ( ".../Intermediate/..." ) ;
Filter . ExcludeConfidentialPlatforms ( ) ;
Filter . ExcludeConfidentialFolders ( ) ;
Filter . Include ( "/Engine/Build/NotForLicensees/EpicInternal.txt" ) ;
Filter . Include ( "/Engine/Binaries/.../*DDCUtils*" ) ; // Make sure we can use the shared DDC!
// Copy everything to a temporary directory
string TempDir = CommandUtils . CombinePaths ( CommandUtils . CmdEnv . LocalRoot , "LocalBuilds" , "RocketDDC" , CommandUtils . GetGenericPlatformName ( HostPlatform ) ) ;
CommandUtils . DeleteDirectoryContents ( TempDir ) ;
CommandUtils . ThreadedCopyFiles ( CommandUtils . CmdEnv . LocalRoot , TempDir , Filter , true ) ;
// Get paths to everything within the temporary directory
string EditorExe = CommandUtils . GetEditorCommandletExe ( TempDir , HostPlatform ) ;
string RelativePakPath = "Engine/DerivedDataCache/Compressed.ddp" ;
string OutputPakFile = CommandUtils . CombinePaths ( TempDir , RelativePakPath ) ;
string OutputCsvFile = Path . ChangeExtension ( OutputPakFile , ".csv" ) ;
// Generate DDC for all the non-code projects. We don't necessarily have editor DLLs for the code projects, but they should be the same as their blueprint counterparts.
List < string > ProjectPakFiles = new List < string > ( ) ;
foreach ( BranchInfo . BranchUProject Project in Projects )
{
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Generating DDC data for {0} on {1}" , Project . GameName , TargetPlatforms ) ;
2015-05-12 19:21:10 -04:00
CommandUtils . DDCCommandlet ( Project . FilePath , EditorExe , null , TargetPlatforms , "-fill -DDC=CreateInstalledEnginePak -ProjectOnly" ) ;
string ProjectPakFile = CommandUtils . CombinePaths ( Path . GetDirectoryName ( OutputPakFile ) , String . Format ( "Compressed-{0}.ddp" , Project . GameName ) ) ;
CommandUtils . DeleteFile ( ProjectPakFile ) ;
CommandUtils . RenameFile ( OutputPakFile , ProjectPakFile ) ;
string ProjectCsvFile = Path . ChangeExtension ( ProjectPakFile , ".csv" ) ;
CommandUtils . DeleteFile ( ProjectCsvFile ) ;
CommandUtils . RenameFile ( OutputCsvFile , ProjectCsvFile ) ;
ProjectPakFiles . Add ( Path . GetFileName ( ProjectPakFile ) ) ;
}
2015-04-16 11:54:50 -04:00
// Generate DDC for the editor, and merge all the other PAK files in
2015-08-20 09:37:11 -04:00
CommandUtils . Log ( "Generating DDC data for engine content on {0}" , TargetPlatforms ) ;
2015-04-16 11:54:50 -04:00
CommandUtils . DDCCommandlet ( null , EditorExe , null , TargetPlatforms , "-fill -DDC=CreateInstalledEnginePak " + CommandUtils . MakePathSafeToUseWithCommandLine ( "-MergePaks=" + String . Join ( "+" , ProjectPakFiles ) ) ) ;
2015-04-20 11:08:45 -04:00
// Copy the DDP file to the output path
string SavedPakFile = CommandUtils . CombinePaths ( SavedDir , RelativePakPath ) ;
CommandUtils . CopyFile ( OutputPakFile , SavedPakFile ) ;
BuildProducts . Add ( SavedPakFile ) ;
// Add the pak file to the list of files to copy
ManifestFiles . Add ( RelativePakPath ) ;
2015-03-27 08:02:21 -04:00
}
2015-04-20 11:08:45 -04:00
CommandUtils . WriteAllLines ( SavedManifestPath , ManifestFiles . ToArray ( ) ) ;
BuildProducts . Add ( SavedManifestPath ) ;
2015-04-10 13:56:50 -04:00
SaveRecordOfSuccessAndAddToBuildProducts ( ) ;
2015-03-27 08:02:21 -04:00
}
public override float Priority ( )
{
return base . Priority ( ) + 55.0f ;
}
}
}