Commit Graph

110 Commits

Author SHA1 Message Date
Andrew Grant
a0ef617fd2 Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393)
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2949393 on 2016/04/20 by Graeme.Thornton

	Orion non-pak file security.
	 - Removed security bypass code from platform pak file
	 - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not
	 - Added an orion delegate which whitelists appropriate files

	#rb robert.manuszewski
	#tests win64 client + dedicated server. golden path.

Change 2949232 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: michael.noland
	Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus)
	#jira OR-18017
	#rb marcus.wassmer
	#tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points

	#ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2949032 on 2016/04/19 by Zak.Middleton

	#orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered.

	This should have the following effects:
	1. Reduce server CPU cost (we tick minions at the net frequency).
	2. Reduce server bandwidth
	3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received).

	#rb Bart.Bressler, John.Pollard
	#codereview Dmitry.Rekman
	#tests MultiPIE AI lane, Replays

Change 2948966 on 2016/04/19 by Lina.Halper

	Added log (check) of the asset info for Anim Per Track contains invalid format key

	#rb: Michael.Noland
	#code review: Martin.Wilson, Laurent.Delayen, Michael.Noland
	#tests: editor/ cooked and test with AI_Tests with 10 bots.

Change 2948876 on 2016/04/19 by Michael.Noland

	PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory)
	#rb none
	#codereview marcus.wassmer
	#tests Ran Paragon on PS4

Change 2948765 on 2016/04/19 by Daniel.Lamb

	Removed AssetImportData tag from cooked asset registry builds.
	#rb Andrew.Grant
	#test Cook orion

Change 2948691 on 2016/04/19 by Marcus.Wassmer

	Fix copytoresolvetarget ensure
	#rb none
	#test pc agora

Change 2948633 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	[AUTOMERGE]

	Fix copytoresolve crash and change validation to ensure.
	#test PC editor / PC golden path
	#rb none

	--------
	Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32.

	#ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948507 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: andrew.grant
	Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release
	#rb none
	#tests cooked client, checked game runs

	#ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948431 on 2016/04/19 by Steve.Robb

	CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE.

	#codereview robert.manuszewski,bob.tellez
	#rb bob.tellez
	#tests Ran editor

Change 2948408 on 2016/04/19 by Leslie.Nivison

	Adding .tps
	#rb none
	#test none

Change 2948185 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: chris.bunner
	Fix for HLOD visibility freeze.
	#tests Golden Path, Editor
	#rb rolando.caloca, michael.noland
	#lockdown andrew.grant
	#jira OR-19863

	#ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948149 on 2016/04/19 by Simon.Tovey

	Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do.

	#rb none
	#tests No more crash
	#codereview Marcus.Wassmer

Change 2948129 on 2016/04/19 by Lukasz.Furman

	fixed gameplay debugger getting stuck with outdated data pack on client,
	changed names of AI related debug cvars
	#rb none
	#tests game, PIE
	#codereview Mieszko.Zielinski

Change 2948027 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: graeme.thornton
	Fix for OR-20033 - CRASH:  Client will crash with FRCPassPostProcessCircleDOFSetup

	#rb none
	#tests checked game runs without crashing

	#ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt

	Fix compile error

	#rb none, #tests none

Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt

	Added more logging to track down

	https://jira.ol.epicgames.net/browse/OR-19841

	#rb none, #tests none

Change 2947412 on 2016/04/18 by Ryan.Gerleve

	Fix shadowed variable.

	#rb none
	#tests none

Change 2947377 on 2016/04/18 by Jamie.Dale

	Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes

	#rb Matt.Kuhlenschmidt
	#tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather.

Change 2947351 on 2016/04/18 by Ryan.Gerleve

	Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay.
	Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later.

	#tests golden path, replays
	#rb john.pollard

Change 2947103 on 2016/04/18 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_MAIN - Merge 24.1 @ CL 2947071

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2947007 on 2016/04/18 by Zak.Middleton

	#ue4 - Improve linear smoothing in the presence of low net frequency updates.

	#rb Bart.Bressler
	#tests MultiPIE AI with lanes

Change 2946994 on 2016/04/18 by Mieszko.Zielinski

	Improvements to NavigationSystem's "abstract navigation data" support #UE4

	#rb Lukasz.Furman
	#test golden path

Change 2946760 on 2016/04/18 by Chris.Bunner

	Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all.
	#tests Editor
	#rb None

Change 2946745 on 2016/04/18 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_MAIN - Merge 24.1 @ CL 2946637

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2946645 on 2016/04/18 by Richard.Fawcett

	When promoting a buidl to staged, prevent enumeration of files already in S3

	Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones.

	#rb Leigh.Swift
	#tests This technique has already been used in launcher promotions for several months

Change 2946622 on 2016/04/18 by Richard.Fawcett

	By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time.

	This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check.

	#rb Leigh.Swift
	#tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified.

Change 2945812 on 2016/04/15 by Daniel.Lamb

	Fixed error in diff cooked build commandlet.
	#rb ben.marsh
	#test Compile.

Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt

	Fix crash exporting actors with non-scene components to fbx

	#rb none, #tests full scene exporting on maps that crashed
	#codereview alexis.matte

Change 2945078 on 2016/04/15 by Simon.Tovey

	Fix for OR-19778

	When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially.
	So the component did not think it had to update it's LOD but the emitters were not at the correct LOD.
	Have forced a LOD set on init when the component LOD is non-zero.

	#rb none
	#tests Works in editor and game.

	#codereview Olaf.Piesche

Change 2944664 on 2016/04/14 by Uriel.Doyon

	Fix to SM4 compilation issue
	#jira OR-19706
	#rb marcus.wassmer
	#tests tested editor in SM4 and SM5

Change 2944642 on 2016/04/14 by Lukasz.Furman

	changed waypoint switch conditions in meta nav paths
	#rb none
	#tests PIE
	#codereview Mieszko.Zielinski

Change 2944599 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: andrew.grant
	Added sha1 to UnrealPak list output
	#rb none
	#tests listed content of pakfile

	#ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2944441 on 2016/04/14 by Marcus.Wassmer

	Duplicate change to output shader compiler errors.
	#rb none
	#test run PC and see errors.

Change 2944437 on 2016/04/14 by John.Pollard

	Possible fix for https://jira.ol.epicgames.net/browse/OR-19614

	#rb JoshM
	#codereview Josh.Markiewicz
	#tests Golden path matchmaking

Change 2944430 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: michael.noland
	Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget
	#rb david.ratti
	#tests Tested in the editor

	#ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2944198 on 2016/04/14 by David.Ratti

	Paragon - register for slow/stun/root/silence callbacks on any tag count  change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE.

	Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there.

	#rb dayY
	#tests pie

Change 2944124 on 2016/04/14 by Wes.Hunt

	Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need.
	#codereview:leslie.nivison
	#rb none
	#tests ran UAT ListThirdPartySoftware <for Orion>

Change 2944107 on 2016/04/14 by Wes.Hunt

	MeshUtilities now depends on new module nvTessLib to better track the third party dependency.
	#codereview:daniel.wright
	#rb none
	#tests build OrionClient/Editor for Win64

Change 2944102 on 2016/04/14 by Wes.Hunt

	Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches.
	#tests ran the UBT command
	#rb none

Change 2943851 on 2016/04/14 by Ryan.Gerleve

	Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance.

	#rb john.pollard
	#tests golden path, replays, PIE

Change 2943847 on 2016/04/14 by Ryan.Gerleve

	Fixes to support client replay recording & playback in another world:
	When recording a replay, only swap actor roles if the remote role is ROLE_Authority
	When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache

	#rb john.pollard
	#tests golden path, replays, PIE

Change 2943691 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_24 - Fix for OR-19609, OR-19610, and OR-19611

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2943508 on 2016/04/14 by Richard.Fawcett

	Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads.

	#jira OPPBUILD-44
	#rb Leigh.Swift
	#tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones

Change 2943274 on 2016/04/13 by jason.bestimt

	#ORION_MAIN - Merge 24 @ CL 2943257

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

	#ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human.
	#CodeReview: david.nikdel, jason.bestimt

Change 2943178 on 2016/04/13 by Olaf.Piesche

	Bumping size of the particle curve texture to 512x512

	#rb martin.mittring

	#tests PC Editor, Game

Change 2943174 on 2016/04/13 by Aaron.McLeran

	OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match

	- Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice.
	- Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases.

	#codereview Bob.Tellez
	#rb Bob.Tellez
	#tests ran orion with this change testing problematic sound cue

Change 2943042 on 2016/04/13 by Rob.Cannaday

	Fix crash in HTTP completion delegates on shutdown
	Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called
	#rb josh.markiewicz
	#tests shutting down multiple times

Change 2942913 on 2016/04/13 by Lukasz.Furman

	added meta navmesh paths
	#orion
	#rb Mieszko.Zielinski
	#tests PIE

Change 2942132 on 2016/04/13 by Wes.Hunt

	Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment.
	#codereview:leslie.nivison
	#rb peter.sauerbrei
	#tests running UBT with and without -listbuildfolders

Change 2941651 on 2016/04/12 by Jason.Bestimt

	#ORION_DG - Merge MAIN @ CL 2941645

	#RB:none
	#Tests:none

Change 2941539 on 2016/04/12 by Laurent.Delayen

	FABRIK: Normalize outgoing rotations.
	Fixes Chains Q ability crashing.

	#rb none
	#tests Chains not crashing

Change 2941469 on 2016/04/12 by Wes.Hunt

	Fix UBT -ListBuildFolders to not prep target for deployment.
	#codereview:leslie.nivison
	#rb none
	#tests tested -ListBuildFolders for Android

Change 2941434 on 2016/04/12 by Leslie.Nivison

	Adding/cleaning up .tps files
	#rb none
	#test none

Change 2941241 on 2016/04/12 by Daniel.Lamb

	Removed shadername from the shader code to fix deterministic material cooking issue.
	#jira UE-29320
	#codereview Marcus.Wassmer
	#rb Marcus.Wassmer
	#test Running editor, cooking orion.

Change 2941046 on 2016/04/12 by Laurent.Delayen

	Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset.
	Fixes Twinblast double shot for the left primary attack.

	#rb benn.gallagher
	#codereview lina.halper, ray.arnett, aaron.eady
	#tests twinblast's LMB

Change 2941032 on 2016/04/12 by Jason.Bestimt

	#ORION_24 - Merge MAIN @ CL 2940950

	#RB:none
	#Tests:none

[CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
Peter Sauerbrei
865909dbbb Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599
#lockdown nick.penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin

	Added support for Landscape grass to use the landscape's light/shadow maps
	(original github pull request #1798 by Frugality)

Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM

	DM - glslang

Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Common RHI changes

Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Initial rhi check-in. Tappy & SunTemple working on PC.
	#codereview Jack.Porter, Chris.Babcock, Josh.Adams

Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Split Immediate command list off RHI

Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	changes to exclude LPV shaders from Vulkan
	(reapplied with edit instead of integrate records)

Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	Static shadowing + dynamic-object CSM

Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	Mobile GPU particles

Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	Planar reflections very WIP

Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	Separate Translucency very WIP

Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	ProtoStar engine changes

Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream

	HACK for Max Texture Samplers hardcoded to 8 on ES2
	Should be cleaned up better with UE-24419.
Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Integrate pipeline cache

Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM

	DM - Initial CCT support

Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Empty bound shader states cache
	- Only used currently on Vulkan

Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM

	DM - Added GRHINeedsExtraDeletionLatency from 4.11

Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM

	DM - Remove batched elements quads (was not been used at least since UE3!)

Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Fence mgr (disabled)

Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Resource management (disabled)

Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Expand number of stencil op bits

Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Add support for more MaxSimultaneousRenderTargets

Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Support for 3d staging textures

Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream

	Vulkan RHI stub for new SharedResourceView RHI call

Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - SM4 preq

Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream

	Android Vulkan support initial checkin

Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile

	Reinstate vertex fog, fixes UE-28166

Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Use fence manager

Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM

	DM - Descriptor pool

[CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
Josh Adams
b9b38fe97b Copying //UE4/Dev-Platform to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2816560 on 2016/01/05 by Jeff.Campeau

	Remove duplicate CEF binaries

Change 2835599 on 2016/01/20 by Lee.Clark

	PS4 - Added pragma optimization macros

Change 2841103 on 2016/01/23 by Mark.Satterthwaite

	Integrate Git PR #1958: Fixed typo in EMetalFeatures enum
	#jira UE-25721

Change 2841369 on 2016/01/24 by Mark.Satterthwaite

	Fix for Metal crash due to attempt to set a null uniform & null SRV to a shader which requires both exist.
	#jira UE-25910

Change 2841795 on 2016/01/25 by Lee.Clark

	PS4 - MovieStreamer improvements

	* Use GPU for YUV conversion
	* Use new Software2 Decoder

Change 2842261 on 2016/01/25 by Mark.Satterthwaite

	Fix some memory leaks.

Change 2842831 on 2016/01/25 by Mark.Satterthwaite

	Metal implementation for RHIBlockUntilGPUIdle.

Change 2842838 on 2016/01/25 by Mark.Satterthwaite

	When using parallel command contexts in Metal we must ensure that the FRingBuffer is still valid, which means some smart/weak pointers are in order. We should also ensure that functions that may return auto-released objects are appropriately wrapped with scoped autorelease pools. Texture creation failures should also be fatal as we never expect that to occur.

Change 2842914 on 2016/01/25 by Mark.Satterthwaite

	Change assert in MetalTexture's format-shifting SRV constructor to enforce the Metal textureView limits:
	1. No format shifting for MSAA color buffers.
	2. No access to stencil in MSAA packed depth/stencil surface.

	This will allow Metal MSAA support to work on iOS when using separate depth & stencil textures since there's no format shifting involved there.
	#codereview peter.sauerbrei

Change 2843028 on 2016/01/25 by Mark.Satterthwaite

	In Metal wwitch to blit on the correct context when copying out the stencil data into the stencil SRV copy.

Change 2845531 on 2016/01/27 by Lee.Clark

	PS4 - Fix memory alignment  for back buffers
	* Fix memory alignment for MapLargeBlock
	* Fix available direct memory tracking

Change 2846491 on 2016/01/27 by Jeff.Campeau

	2015 compile fixes for Orion

Change 2847395 on 2016/01/28 by Mark.Satterthwaite

	Clear the stencil-SRV copy to 0 in Metal using a blit when created to avoid artefacts if used prior to the parent texture being rendered.
	#jira UE-25834

Change 2847419 on 2016/01/28 by Mark.Satterthwaite

	Apply the same fix to OpenGL's Stencil SRV logic as CL #2847395 applies to Metal.

Change 2848093 on 2016/01/28 by Mark.Satterthwaite

	Cache parallel encoding Metal contexts & reuse them rather than creating a new one each time in order to massively improve parallel encoding performance. This required adding a reset function to Metal's internal state-cache which calls the CommandEncoder wrapper's reset so we don't accidently retain previous state.

Change 2849469 on 2016/01/29 by Mark.Satterthwaite

	Defer render & compute command encoder construction to draw/dispatch etc to eliminate redundant encoders that then perform unnecessary driver & GPU synchronisation work. Currently Clear loadActions force an encoder even if it would then be empty as otherwise we see incorrect rendering. This needs to be tracked and optimised away too in order to achieve the same performance as D3D11.

Change 2849820 on 2016/01/29 by Daniel.Lamb

	Fixed issue where a single DDC back end would not create a hierarchy.
	#codereview Peter.Sauerbrei

Change 2850762 on 2016/02/01 by Jeff.Campeau

	System-wide critical section support for Xbox One

Change 2850763 on 2016/02/01 by Jeff.Campeau

	Network and product config for Orion

Change 2852459 on 2016/02/02 by Mark.Satterthwaite

	Temporarily disable the lazy render command-encoder construction while investigating why it turns some samples black in Metal SM5 mode.

Change 2853947 on 2016/02/03 by Mark.Satterthwaite

	Fix some lazy encoder construction fallout which also means we don't need to recreate render encoder state when performing profiling - the next draw/clear will do that as required.

Change 2854015 on 2016/02/03 by Mark.Satterthwaite

	Move Stencil SRV blitting into FMetalSurface::UpdateSRV called when binding the texture SRV instead of having it done immediately post-rendering. This should avoid paying for the blit when stencil SRV sampling is never used or multiple blits when render-encoders that write stencil are split up due to query buffer overflow or similar. The cost will be a blit per-bind instead which should be more predictable.

Change 2854142 on 2016/02/03 by Mark.Satterthwaite

	Implemented GetTextureBaseRHI (brought over from Dev-Rendering CL #2853948) for Metal to avoid unnecessary virtual function call chain to resolve the FMetalSurface* from an RHI texture.

Change 2854222 on 2016/02/03 by Mark.Satterthwaite

	Remove the uniform buffer resource caching from Metal to match Dev-Rendering CL #2853948.

Change 2854246 on 2016/02/03 by Mark.Satterthwaite

	Removed the uniform buffer resource caching from OpenGLDrv & implemented GetTextureBaseRHI to avoid unnecessary virtual function calls to match Dev-Rendering CL #2853948.

Change 2854279 on 2016/02/03 by Mark.Satterthwaite

	Remove direct access to the MTLCommandQueue, for parallel rendering to work we're going to need to do a bit of management that means its more sensible to keep it private.

Change 2855524 on 2016/02/04 by Lee.Clark

	PS4 - Fix Grayscale SRGB support

[CL 2898161 by Josh Adams in Main branch]
2016-03-07 20:55:29 -05:00
Matthew Griffin
984342ca17 Merging //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) post CL#2804086 to CL#2817167
CL#2805395 resolved as target to avoid copying 2015 changes
#lockdown Nick.Penwarden

[CL 2819197 by Matthew Griffin in Main branch]
2016-01-07 11:21:22 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Josh Adams
660ab7f0c9 Copying //UE4/Dev-Platform to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2719147 on 2015/10/07 by Mark.Satterthwaite

	Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track.

Change 2719182 on 2015/10/07 by Mark.Satterthwaite

	Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient.

Change 2719185 on 2015/10/07 by Mark.Satterthwaite

	Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw.

Change 2719434 on 2015/10/07 by Mark.Satterthwaite

	Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server.

Change 2724764 on 2015/10/12 by Josh.Adams

	[Initial AppleTV support]
	Merging	//depot/YakBranch/... to //UE4/Dev-Platform/...

Change 2726266 on 2015/10/13 by Lee.Clark

	PS4 - Calc reserve size required for DMA copy when using unsafe command buffers

Change 2726401 on 2015/10/13 by Mark.Satterthwaite

	Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected.
	#jira UE-15228

Change 2726421 on 2015/10/13 by Lee.Clark

	PS4 - Don't try to clear invalid targets

Change 2727040 on 2015/10/13 by Michael.Trepka

	Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72

Change 2729783 on 2015/10/15 by Keith.Judge

	Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty.

Change 2729847 on 2015/10/15 by Mark.Satterthwaite

	Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff.
	#jira UE-21992

Change 2729865 on 2015/10/15 by Keith.Judge

	Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition.

Change 2729897 on 2015/10/15 by Keith.Judge

	Fast Semantics - Make sure all GetData() calls are made safe with GPU fences.

Change 2729972 on 2015/10/15 by Keith.Judge

	Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly.

	This should be marginally quicker as it stops a double call to ClearState().

Change 2731503 on 2015/10/16 by Keith.Judge

	Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict).

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 2731928 on 2015/10/16 by Michael.Trepka

	PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl)

Change 2731934 on 2015/10/16 by Michael.Trepka

	PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura)

Change 2732018 on 2015/10/16 by Mark.Satterthwaite

	Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached.
	- The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders.
	- Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this.
	- Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL.

Change 2732365 on 2015/10/16 by Josh.Adams

	- Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On)

Change 2733170 on 2015/10/18 by Terence.Burns

	Fix for Android IAP query not returning entire inventory.

Change 2733174 on 2015/10/18 by Terence.Burns

	Fix Movie player issue where wait for movie to finish isnt being respected.

	Seems a stray bUserCanceled event flag was causing this not to be observed.

	Added some verbose logging to apple movie player.

Change 2733488 on 2015/10/19 by Mark.Satterthwaite

	Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information.
	- Fixed a bug that would cause invalid shader membership and draw state information to be logged.
	- Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too.

Change 2735226 on 2015/10/20 by Mark.Satterthwaite

	Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently.
	#jira UE-21214
	#jira UE-19913

Change 2736722 on 2015/10/21 by Daniel.Lamb

	Improved performance of cooking stats system.

Change 2737172 on 2015/10/21 by Daniel.Lamb

	Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
Marc Audy
e5bb9b4d0d Integrate all non-branch Engine/Source changes from //depot/UE4-Orion to //depot/UE4
#lockdown Ben.Marsh
#platformnotify Josh.Adams

[CL 2718236 by Marc Audy in Main branch]
2015-10-06 15:59:09 -04:00
Martin Mittring
29f89a390c Integrate from Orion
CL 2704794 2704931 2704948 2704962 2705238 2706353 2700643 2705458

        Uniform Buffer layout name

and

more debug info for this and other bugs: OR-7159 CRASH: Client crashed at start of match in D3D11Commands.cpp

Adding OptionalData (key value pairs) to the shaders (to put shader name into the shader code for better debugging), affects all RHI, invalidate DDC key for all shaders, cleanup existing code (was adding 0/1/5 bytes and had to compensate in many areas)

OptionalData:
key is a char, value is up to 255 bytes, up to 64K in total

#platformnotify Josh.Adams

[CL 2706923 by Martin Mittring in Main branch]
2015-09-25 17:34:00 -04:00
Dmitry Rekman
3e6290e814 Bunch of minor Linux cleanups and improvements.
- Mostly coming from MatthewL with changes.
- UE-19705 (getting MAC) - reworked to use ioctl
- UE-14633: IsFirstInstance is now a function on Linux
- UE-16061:dummy windows shouldn't be visible in the task bar.
- UE-18217 fixed.
- Unnecessary printf() removed.
- Set output to non-cached if running under debugger.

#platformnotify Josh.Adams

[CL 2698549 by Dmitry Rekman in Main branch]
2015-09-20 18:16:58 -04:00
Allan Bentham
e4a5934305 Fix FOpenGLCodeHeader serialisation for android. (where TCHAR == 4 bytes)
#codereview Mark.Satterthwaite

[CL 2669028 by Allan Bentham in Main branch]
2015-08-26 06:02:24 -04:00
Mark Satterthwaite
027c88145a Remove the r.Shaders.AvoidFlowControl CVar introduced in 2662625 - setting this by default was causing problems on various platforms and it isn't sufficiently useful to retain. Instead just force the Mac OpenGL shader platform to retain flow-control statements and let everything else use the default as before 2662625.
[CL 2665840 by Mark Satterthwaite in Main branch]
2015-08-24 06:10:23 -04:00
Mark Satterthwaite
1de828bbb1 Merging changes from ZebraBranch that:
- Append the source shader name to the GLSL when debug info is enabled to make it easier to debug.
- Always preserves GLSL flow control for Mac GLSL to improve performance on 2 of 3 vendors.
- Exposes a CVar to control whether to preserve or avoid GLSL flow-control for other shader platforms. The default remains to avoid flow control in GLSL.
#codereview michael.trepka

[CL 2662625 by Mark Satterthwaite in Main branch]
2015-08-20 10:15:09 -04:00
Rolando Caloca
42b256cb79 UE4 - Fix env var; added COMPILER_HLSLCC to shaders
[CL 2658309 by Rolando Caloca in Main branch]
2015-08-17 16:09:30 -04:00
Dmitry Rekman
db93d26078 Linux: some fixes/improvements for shader debugging.
[CL 2642399 by Dmitry Rekman in Main branch]
2015-08-03 16:07:57 -04:00
Rolando Caloca
0b5c4df5dc UE4 - hlslcc - Fixes for command lines; always pack uniforms; fix uninitialized variables
#codereview Dmitry.Rekman

[CL 2639009 by Rolando Caloca in Main branch]
2015-07-30 13:31:13 -04:00
Rolando Caloca
daef6ebed2 UE4 - hlslcc - Common header reader
[CL 2609224 by Rolando Caloca in Main branch]
2015-07-02 11:52:03 -04:00
Rolando Caloca
8b34bd48af UE4 - Fix Precision output for ES platforms
#codereview Dmitry.Rekman, Michael.Trepka, Chris.Babcock

[CL 2592355 by Rolando Caloca in Main branch]
2015-06-18 14:24:11 -04:00
Rolando Caloca
9a899d66d4 UE4 - Mobile Preview for feature level ES3.1/Metal (experimental)
[CL 2510893 by Rolando Caloca in Main branch]
2015-04-13 18:00:32 -04:00
Allan Bentham
64090df1f4 Ensure correct assignment of emulated (ES2) uniform buffer indices for UB's generated within BuildResourceTableMapping(). Typically arises when only sampler related parameters are encountered.
Fixes UE-9804 and probably more.

#codereview nick.penwarden, Rolando.Caloca

[CL 2482912 by Allan Bentham in Main branch]
2015-03-18 08:03:21 -04:00
Rolando Caloca
6cb53ebc04 UE4 - OpenGL - Allow running emulated (packed/flattened) uniform buffers when running PC ES2; use OpenGL.UseEmulatedUBs=1 on your consolevariables.ini
- Only works with -game, not in-editor!
#codereview Allan.Bentham

[CL 2475392 by Rolando Caloca in Main branch]
2015-03-11 13:45:34 -04:00
Rolando Caloca
6868525794 UE4 - hlslcc - Cleanup parser state & change hlslcc entry point to be a class in prep for moving to the Engine (missing Linux libraries)
odereview Dmitry.Rekman

[CL 2471354 by Rolando Caloca in Main branch]
2015-03-06 13:09:36 -05:00
Saul Abreu
79a26091bf Fixed behavior on FString::ParseIntoArray (muliple delimiters overload) functionality to support optionally culling empty strings. Greatly simplified implementation logic. Output parameter now properly named and taken by reference.
#codereview Steve.Robb, Robert.Manuszewski

[CL 2466824 by Saul Abreu in Main branch]
2015-03-02 15:51:37 -05:00
Allan Bentham
b61636e3df ES2: Remap vertex attributes when max vert attribs < 16
Fixes PVR SGX 540 crashes in UE-5155
[Requires shader compile worker rebuild.]

codereview nick.penwarden, chris.babcock, rolando.caloca

[CL 2460254 by Allan Bentham in Main branch]
2015-02-25 10:25:20 -05:00
Mark Satterthwaite
65e1a105de Shader caching has been updated to include the option to record draw-states used for each shader so that they may be pre-drawn to reduce in-driver hitching.
- This is especially important on OS X OpenGL where these hitches can be equivalent to several frames, so it is enabled by default for this platform.
- The logging of draw calls is turned on/off with r.UseShaderDrawLog and incurs a fixed overhead as all RHI state is tracked & recorded into the shader cache.
- The actual predrawing is turned on/off with r.UseShaderPredraw and requires an existing cache to be useful, the predrawing takes place at frame-end and can be controlled with r.PredrawBatchTime which the time in ms to spend predrawing each frame until complete, or -1 to do it in one go (currently the default).
- The shader cache is now also versioned with the game able to supply a version distinct from the engine, so that old caches may be invalidated if/when required.
- The shader cache is now compatible with OpenGL SM4 & SM5 on Windows & probably Linux too.
- It may not work correctly with desktop ES2 emulation as that is still untested.
- To make it easier to add to other RHIs the API has been made simper to avoid lots of exposed branches.

#codereview michael.trepka, dmitry.rekman

[CL 2460109 by Mark Satterthwaite in Main branch]
2015-02-25 08:13:48 -05:00
Mark Satterthwaite
83ad7e246f Implemented desktop OpenGL support for GL_ARB_separate_shader_objects without requiring any additional shader platforms to reduce shader compile/link hitches.
- Shaders which emit layout location data use INTERFACE_LOCATION & INTERFACE_BLOCK macros to defer to the runtime whether they can be used as separable or non-separable shaders.
- The runtime supplies the correct #define for each so that the shaders still work on platforms where the glLinkProgram implementation fails with separable shader code.
- Shader model 5 platforms (GLSL 430 or ES 3.10) which were already specifying & using layout location data continue to do so, even when using glLinkProgram.
- The 'OpenGL.UseSeparateShaderObjects' console variable allows switching between SSO/Link modes between executions, but not dynamically at runtime.
- Only defaults to on for Mac as that is the only platform which can guarantee that the extension is always available & so far the most tested platform.
- Updated hlslcc binaries are supplied for Mac, Linux & Windows.
- Added an OpenGL RHI stat for shader first draw time so that it is easy to see why hitches occur during runtime due to in-driver shader compilation.

reviewedby michael.trepka, nick.penwarden, dmitry.rekman, rolando.caloca

[CL 2435530 by Mark Satterthwaite in Main branch]
2015-02-06 11:35:30 -05:00