Commit Graph

83 Commits

Author SHA1 Message Date
max chen
fa7cf1f29a Copying //UE4/Dev-Sequencer [at] 4773300 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 4773320 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4782701 by max chen in Dev-Networking branch]
2019-01-23 09:49:24 -05:00
ryan gerleve
b41214417e Resolving conflict from Dev-Enterprise.
/src/ROBOMERGE_ENGINE_Dev_Networking/Engine/Source/Runtime/Sockets/Private/BSDSockets/SocketsBSD.cpp - merging //UE4/Main/Engine/Source/Runtime/Sockets/Private/BSDSockets/SocketsBSD.cpp#20


--------------------------------------
Copying //UE4/Dev-Enterprise[at]4705006 to Dev-Main (//UE4/Dev-Main)

#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 4705151 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4712032 by ryan gerleve in Dev-Networking branch]
2019-01-11 14:26:15 -05:00
ben marsh
2b46ba7b94 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4662404 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4662413 by ben marsh in Dev-Networking branch]
2018-12-14 13:44:01 -05:00
max chen
43fe4d6f9b Copying //UE4/Dev-Sequencer to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown nick.penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 4629913 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4629932 by max chen in Dev-Networking branch]
2018-12-04 17:10:23 -05:00
marcus wassmer
f43eb0e188 Copying //UE4/Dev-Rendering[at]4626416 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown nick.penwarden

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: marcus.wassmer
#ROBOMERGE-SOURCE: CL 4626501 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4626516 by marcus wassmer in Dev-Networking branch]
2018-12-03 22:27:31 -05:00
Ryan Gerleve
9af1fb3463 Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4516466 by Ryan Gerleve in Dev-Networking branch]
2018-10-29 10:01:28 -04:00
Ryan Gerleve
e7612e89b2 Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4341874 by Ryan Gerleve in Dev-Networking branch]
2018-09-04 14:32:41 -04:00
Ryan Gerleve
bcca42e74a Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4284864 by Ryan Gerleve in Dev-Networking branch]
2018-08-14 15:58:25 -04:00
Ryan Gerleve
58b2ff476e Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none

[CL 4227549 by Ryan Gerleve in Dev-Networking branch]
2018-07-23 14:41:30 -04:00
Ryan Gerleve
ac280888a0 Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4175728 by Ryan Gerleve in Dev-Networking branch]
2018-06-29 20:48:58 -04:00
Ryan Gerleve
e88617b37e Merging //UE4/Dev-Main to Dev-Networking (//UE4/Dev-Networking)
#rb none
#rnx

[CL 4119306 by Ryan Gerleve in Dev-Networking branch]
2018-06-07 22:39:07 -04:00
Max Chen
33737e9b00 Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3947021 by Max.Chen

	Sequencer: Don't preserve root component when copying object properties.

	A spawnable empty actor, has a root component that is generated by the empty actor factory. If the object template's root component is preserved when copying from the spawnable empty actor, the root component will not be copied
over. Therefore, we need to NOT preserve the root component when copying object properties.

	#jira UE-55825

Change 3947366 by Max.Preussner

	WmfMedia: Better log output

Change 3947367 by Max.Preussner

	MfMedia: Better detection of compressed format properties on Windows

Change 3949102 by Max.Chen

	Sequencer: Remove SequenceActorTag when converting to possessable.

	#jira UE-56206

Change 3949207 by andrew.porter

	EngineTest: Set the screenshot nodes resolution to 1280x720

Change 3949404 by Max.Chen

	Sequencer: More informative tooltip for "Rerun Construction Scripts" option. It now says "Rerun construction scripts every frame on actors that have 'Rerun Construction Script in Sequencer'  enabled in their class settings".

Change 3950067 by Matt.Hoffman

	Renamed UAutomatedLevelSequenceCapture's StartFrame and EndFrame to CustomStartFrame/CustomEndFrame to reflect that it is user-overriden. This will also resolve upgrade issues due to the variable datatype changing.

	#jira UE-56189

Change 3950193 by JohnHenry.Carawon

	Updating my latest MovieRendering test content.

Change 3950757 by JohnHenry.Carawon

	More updates to MovieRendering test content

Change 3952059 by Max.Chen

	Resave LevelVisibility_SubLevels to fix data loss conversion warning of OpacityMaskConstant

	#jira UE-56086

Change 3952283 by Max.Chen

	Sequencer: Disable dropping level sequence assets as spawnables.

	#jira UE-56120

Change 3952422 by Max.Chen

	Sequence Recorder: Add button to record from the current player.

	#jira UE-55942

Change 3952987 by JohnHenry.Carawon

	MovieRendering Test Content - Fixing camera bindings and changing the override binding actor

Change 3953823 by Mike.Zyracki

	Fix for Bad FBX Import
	Tangents not scaled by frame rate.

	After looking at this again it seems that a set of MovieScene:: overiddes for the channel traits wasn't set correctly, so use the ADL idiom to use MovieScene, which can then call Optimize in the correct namespace.

	With this we can now correctly use the passed in tolerance.
	There was also a redundant set of Optimize calls so that it could happen twice so removed them, and needed an extra check in the float channel Optimize.
	Also since we need to set auto tangents no matter if we optimize we don't set that parameter(though leave it since it's used by context menu key reduction).

	Finally fixed speed issue with trajectories caused by calculating way too many substeps. Reverted back to a time based step size for consistency.
	#jira UE-56193

Change 3954317 by Matt.Hoffman

	Adding a key to the last frame of a section no longer causes a crash. Keys can already be moved to be on the last frame of a section so now you can just add a key there directly.

	#jira UE-56255

Change 3954326 by Matt.Hoffman

	Dilating a section that is only infinite on one side no longer causes a crash.

	#jira UE-56260

Change 3954486 by Max.Chen

	PR #4580: Exposes IsReversed() from UMovieSceneSequencePlayer (Contributed by alanedwardes)


Change 3955238 by Max.Preussner

	Messaging: Enabled delayed message routing

	https://github.com/EpicGames/UnrealEngine/pull/4574

	#jira UE-56247

Change 3955901 by Max.Preussner

	MediaFrameworkTest: Added developer test for overriding desired media player plug-in at runtime.

Change 3955922 by Andrew.Porter

	QAGame: Updating movie rendering content in dev folder

Change 3956004 by andrew.porter

	QAGame: Adding MPC track to movie rendering test content

Change 3956510 by Max.Chen

	Sequencer: Fix fbx camera import of static properties so that they are imported before default tracks are created. Otherwise, the default tracks inherit the default properties of the camera, rather than the values from the fbx.

	#jira UE-56311

Change 3957613 by Max.Preussner

	MediaUtils: Added code documentation to media player facade

Change 3958005 by Max.Preussner

	MediaUtils: Added method to get number of sinks

Change 3958934 by Max.Chen

	Sequencer: Fix keys getting added and sequence getting erroneously re-evaluated when auto key is off.

	Only apply defaults if there are no keys.
	Only modify the movie scene section before creating keys or setting defaults.

	#jira UE-55903

Change 3959687 by Andrew.Rodham

	Sequencer: Fixed visibility track external values being inverted

	#jira UE-56324

Change 3960507 by Max.Preussner

	Core: Fixed incorrect rounding in FMath::DivideAndRoundNearest

Change 3962047 by JohnHenry.Carawon

	MovieRendering Test Content Changes:
	- Add Lightmass Importance Volumes to sublevel to fix warnings
	- Rebuilt Lighting
	- Add a third sequence for Gamut testing
	- Resaved the sound master.uasset to fix warning

Change 3962211 by Mike.Zyracki

	Add Frame Numbers to selected animation sections.

	Added MapTimeToAnimation to MovieSceneSkeletalAnimation so that we could get it from the Skeleton Animation track Editor.

	Since the thickness of the frame line can change based upon frame rate and zoom we need to calculate it similarly to how the time slider controller does it.  Those calculations were private so we had to expose FScrubRangeToScreen
and GetScubberPixelRange from the TimeSliderController.

	Also needed to know if the section itself was selected so added a bIsSelected flag to the section Painter.

	Also fixed a bug where you couldn't add a section if other sections existed at different times in MovieScenePropertyTrack and could crash due to the check().

	#jira UESEQ-395

Change 3962497 by Max.Preussner

	Core: Added new string formatting argument to FTimespan

Change 3963662 by Max.Chen

	CineCamera: Flip VistaVision width and height.

Change 3963731 by Max.Preussner

	MediaCompositing: Implemented sequence recording support for media track

Change 3964195 by Andrew.Rodham

	Sequencer: Set inverted property correctly for newly created visibility track sections

	  - Also clamp evaluation for key editors to the bounds of the section so we're not displaying values outside of the section bounds when the cursor is not on the bounds

	#jira UE-56324
	#coderevew Max.Chen

Change 3964196 by Andrew.Rodham

	Sequencer: Fixed crash when attempting to render sections that resulted in a negative intersection with the view range

Change 3964275 by Andrew.Rodham

	Sequencer: Fixed MovieScene::ClampToDiscreteRange for infinite range bounds

Change 3964364 by Andrew.Rodham

	Curve Editor: Reduce minimum vertical view range when zooming to fit

Change 3965091 by Max.Chen

	Sequencer Recorder: Refresh next sequence if empty when starting a recording, otherwise, use existing name.

	#jira UE-56469

Change 3965148 by Max.Chen

	Sequence Recorder: Move Record to Possessable to "Actor Recording" group

Change 3965162 by Max.Chen

	Sequence Recorder: Always break out of immersive mode when done recording, even when stopping recording during countdown.

	#jira UE-56407

Change 3965214 by Max.Preussner

	QAGame: Enabled ImagePlate plug-in

Change 3965574 by Max.Preussner

	SimpleComposure: Reorganized & upgraded content to work with new Media Track

	#jira UE-56488

Change 3965651 by Max.Preussner

	MediaCompositing: Ignoring seek-on-open if media not seekable

Change 3966075 by Christina.TempelaarL

	Sequencer: Added Final Cut Pro 7 XML Export functionality
	#jira UESEQ-358

Change 3966087 by Matt.Hoffman

	Adding a single key to the Particle Toggle track now makes an infinite range section that is displayed in the UI.

	#jira UE-56295

Change 3966547 by Andrew.Rodham

	Sequencer: Fixed rounding errors when drawing the section background on boolean sections
	  - Logic was using time in sectonds which caused rounding errors on evaluation and flickering red/green stripes when dragging keys around

	#jira UE-56324

Change 3966563 by Andrew.Rodham

	Curve Editor: Key editor interface improvements

	  - SKeyEditInterface has a few problems - it does not update in real time when editing properties, and does not support multi-edit which makes it unsuitable for use with the curve editor
	  - We now take a different approach for editing keys by gathering a set of proxy UObjects for each key that is currently selected. These objects are added as top level objects to the details panel which means they support multi
edit as you'd expect from any other details panel in the editor.
	  - Proxy objects are updated every tick for the curve editor if they implement the ICurveEditorKeyProxy interface, which allows them to refresh their current value.
	  - Ideally, the same mechanisms would be used in the main sequence interface, and we would be generating the proxy classes at runtime based on the key value type, but that work remains a separate task from this initial offering.

	#jira UE-56165

Change 3966564 by Andrew.Rodham

	Curve Editor: Expand to frame when adding or moving keys in the curve editor

Change 3967051 by andrew.porter

	MediaFrameworkTest: Set the CameraPlayer_Video texture to auto clear

Change 3967141 by Andrew.Rodham

	Sequencer: Keep track of spawned objects that have been modified and only re-save such object's default spawnable state on destruction

	  - Now that we're taking this approach, I've remove serveral redundant bits of functionality in the spawn register such as making some spawnables read-only, and the PreSave binding for Sequencer.
	  - We now hook into all object pre-saves to make sure we handle the case where the sequences are saved through the content browser or elsewhere.

	#jira UE-47686

Change 3967170 by Andrew.Rodham

	Sequencer: Added the ability to possess anim instances as object bindings

	  - This allows full and direct animation of properties on UAnimInstance, and animation blueprints
	  - Object Bindings are made by first possessing a skeletal mesh component, then choosing the + Add button where its anim instance will be listed
	  - Added a new function to UMovieSceneSequence to gather previously cached objects that should now be invalidated. Anim instances will be re-resolved if a new UAnimInstance is assigned to USkeletalMeshComponent::GetAnimInstance.
	  - ObjectBindingIDs for anim instances are just represented by an entry in a set of GUIDs. We only ever resolve such bindings through USkeletalMeshComponent::GetAnimInstance.
	  - Only currently supported on LevelSequences

	#jira UE-56132

Change 3967195 by Max.Preussner

	Core: Updated TRangeSet to use TCallTraits

Change 3967345 by JohnHenry.Carawon

	Test Content Changes - first iteration of spacing out the examples in the shots.

Change 3967572 by Max.Chen

	Sequencer: Fix setting PreviousPlayEvalPosition until after we've tested whether it's set.

	#jira UE-56518

Change 3967750 by Max.Chen

	Audio: Set duration based on number of input channels, rather than number of channels to serialize. This fixes an issue where audio split into 2 channels is set to a duration that's twice as long.

	#jira UE-56430

Change 3967836 by Max.Chen

	Sequencer: Allow for animating array elements within ustruct properties

	#jira UE-55887

Change 3968506 by Matt.Hoffman

	Fixed ambiguous conversions for seconds and frames being overriden by ambiguous conversion to Timecode (in frames).

Change 3968748 by Max.Chen

	Sequencer: Make the event properties submenu widget larger.

	#jira UE-55557

Change 3968862 by Max.Chen

	Sequencer: Recursive expansion when shift is down

	#jira UE-52139
	#pr 4194

Change 3968863 by Max.Chen

	Sequencer: Bind rename command to selected track so that F2 shortcut start renaming

	#jira UE-52139
	#pr 4194

Change 3968872 by Max.Chen

	Sequencer: Rekey the selected key at the current time.

	#jira UESEQ-396

Change 3968938 by Max.Chen

	Cine Camera: Add option to toggle the behavior of locking the rail mount to the orientation of the spline. By default, the option is off, no change in behavior.

	#jira UE-55815

Change 3968958 by Andrew.Rodham

	Sequencer: Consider vertical position when hittesting keys

	#jira UE-56256

Change 3969643 by Max.Preussner

	Core: Rounding timespans created from double values towards nearest ticks

Change 3969646 by Max.Preussner

	MediaUtils: Implemented timeout mechanism for block-on-fetch feature

Change 3969776 by Mike.Zyracki

	Added Skip Anim Notifiers Toggle per what was in Matinee.
	Investigated the Enable Root Motion toggle as also discussed but it's implementation is directly contained by the
	animation asset and unlike animation notifies there seems to be no exposure to interactively disable it during a playback tick.

	Note if we are generating thumbnails we still automtically disable notifies in the editor to avoid annoying noise playback.

	Note that if Enable Root Motion/Root locked is specified in the animation asset it does correctly effect the Sequencer.

	#jira UESEQ-399

Change 3969835 by Matt.Hoffman

	Playback Range and Selection Range use unified logic for adding themselves as potential snap locations which properly handles inclusive/exclusive bounds. This resolves an issue where having an unset selection range caused a
potential snap location to be added on frame 0 and 1 (internal resolution) which caused a misalignment when placing objects near frame 0.

	This also removes the one frame offset on setting Selection Range to bring behavior inline with other ranges.

	#jira UE-55420

Change 3969885 by Max.Preussner

	MediaAssets: Don't register media player CDO with media ticker

Change 3971129 by Andrew.Rodham

	Sequencer: Fixed UMovieSceneSequencePlayer::GotToEndAndStop() not taking into account for start time

	This is a remnant from when the times were always specified in 0-duration space, rather than actual sequence times.

Change 3972056 by JohnHenry.Carawon

	More updates to Test Content. I continued spacing out the examples in the sequence so that they have a consistent number of frames between each example and during the start/end of the example. Also removed the Marcie sublevel.

Change 3972066 by Andrew.Porter

	MediaFrameworkTest: Setting Marcie folder to be never cooked in package settings

Change 3972675 by Matt.Hoffman

	Splitting Subsequence Sections no longer sets an incorrect playback range on the subsequence when the subsequence has a different internal resolution than the owning sequence.

	#jira UE-55453

Change 3973376 by Max.Preussner

	ImgMedia: Zero is the only valid video track for image sequences

Change 3973489 by Max.Preussner

	Launch: Build rules cleanup pass

	- don't use Media, MediaUtils on server apps
	- don't link against Media (include-only dependency)
	- don't include from MediaAssets (dynamic load only)

Change 3973760 by Max.Preussner

	MediaUtils: Moved AppMediaTimeSource implementation into its own file; added logging

Change 3973765 by Max.Preussner

	ImgMedia: Disallowing seek beyond media length

Change 3973855 by Max.Preussner

	MediaFrameworkTest: Updated developer test content

Change 3973858 by Max.Preussner

	MediaCompositing: Blocking on media player time instead of media sample time (the former may not be hit in the current frame)

Change 3974988 by Max.Chen

	Sequencer: Fix trim left so that it also sets the start offset for audio and skeletal animation sections.

	#jira UE-57015

Change 3976101 by Matt.Hoffman

	Sequencer will now focus the scroll view on newly created items.

	#jira UE-56492

Change 3976203 by Max.Chen

	Property Editor: Add DetailsViewArgs for ColumnWidth. Defaults to 0.65f, no change in existing behavior.

Change 3976205 by Max.Chen

	Sequencer: Set better column widths for sequencer.

	#jira UE-55557

Change 3976206 by Max.Chen

	Sequencer: Added menu category for import/export

Change 3976265 by Matt.Hoffman

	Tracks within Object Binding Nodes will now sort using the old behavior so that components are added above other track types.

	#jira UE-56473

Change 3976901 by Max.Chen

	Sequencer: Add event names to event track section

	#jira UESEQ-353

Change 3977878 by Max.Preussner

	Media: Moved media framework ticking stats into Media module

Change 3977982 by Max.Chen

	Sequencer: Add Edit->Reset section length to duration of source (ie. audio, skeletal animation, shot length)

	Added MovieSceneSection::GetDefaultDuration and MovieScene::HasDefaultDuration

	#jira UESEQ-392

Change 3977994 by Max.Preussner

	Media: Fetching and rendering media samples before viewports are rendered (to ensure frame sync for in-level media playback)

	#jira UE-53975

Change 3978188 by Matt.Hoffman

	Easing Curves are now clipped by the sequence's PlayRange when testing against an infinite section. This causes blended sequences to finish their blend when the section starts/ends instead of always using 25% of the total section
length to determine default blend range.

	#jira UE-56362

Change 3978676 by Max.Preussner

	MediaCompositing: Fixed first frame of rendered out media track missing

	#jira UE-53975

Change 3978684 by Max.Preussner

	MediaCompositing: Enabled media track frame sync feature

	#jira UE-53975

Change 3980026 by Matt.Hoffman

	Keys can be selected on folded out sections (such as an audio track expanded to show volume and pitch) again.

	#jira UE-57169

Change 3981614 by Max.Preussner

	MediaUtils: Added missing subtitle sample queue flush

Change 3982311 by Max.Preussner

	MediaCompositing: Added safeguard for zero length media sources

Change 3982389 by andrew.porter

	QAGame: Adding media track test content into FrameAccuracySubscene

Change 3983661 by Max.Chen

	Sequencer: Add level name to spawn a spawnable into.
	Add sublevel menu option to set the level

	#jira UESEQ-390

Change 3983712 by Andrew.Rodham

	Sequencer: Purge legacy blueprint spawnables from LevelSequence packages

	#tests Ran a preflight for cooking fortnite, ocean and Orion. Only orion shows up this edge case, and will require a re-save of the EndCines level
	#jira UE-39173

Change 3983787 by Max.Preussner

	MediaCompositing: Moved compile time switch for block-on-fetch into media player facade

Change 3983812 by Andrew.Rodham

	Sequencer: Exposed default level sequence instance data to blueprints

Change 3984373 by Max.Preussner

	Media: Added API for quering whether player plug-in supports block on fetch

	Block on fetch allows Sequencer and other systems to block the game thread until a desired video frame has been decoded.

Change 3984670 by JohnHenry.Carawon

	Movie Rendering Test Content progress. Saving the state of the content.
	There is a bug where things got replaced with particle emitters and I think it was because I tried to copy paste an animation track into a separate skeletal mesh track.

Change 3985097 by Max.Chen

	Sequencer: Rename Reset to AutoSize

	Change GetAutoSizeDuration to return TOptional<FFrameTime>

	#jira UESEQ-392

Change 3986043 by Max.Chen

	Sequencer: Fix crash when attach/path duration is less than 0.

	#jira UE-57310

Change 3986373 by Max.Chen

	Sequencer: Add support for deleting tracks and channels which equates to setting the channel mask.

	#jira UE-52951

Change 3986375 by Max.Chen

	Sequencer: Add Create Pose Asset to skeletal animation section. This allows animators to blend animations in sequencer and create new pose assets from them.

	#jira UESEQ-408

Change 3986796 by Andrew.Rodham

	Sequencer: Fixed stale object references remaining in ULevelSequence::BindingReferences when using convert to spawnable/possessable

	  - We used to convert objects by creating a new binding, then re-assigning its GUID, which meant we didn't have to do any further object fixup, but the code to achieve this was confusing and led to a vulnerability where object
references would not be cleaned up correctly due to the newly created possessable essentially being a temporary object that's immediately thrown away.
	  - To address this, there is now a function for porting all the contents of one object binding to another, and handles the correct fixup required for parent/child object bindings for both spawnables and possessables.
	  - Also added codepath to remove any stale object references from the level sequence reference map on PostLoad (this piggy-backs off the PurgeLegacyBlueprints object version which is close close enough to this change to be
identical)

	#tests Verified that existing sequences with stale references get cleaned up on load. Verified that repreatedly converting from spawnable<->possessable cleans up references correctly.

Change 3987807 by JohnHenry.Carawon

	Updates to the MovieRendering Test Content.

	- Fixed the spawnable actors that were overwritten
	- Shortend the Lighting example and combined the Intensity and Color tracks
	- Organized the Sequence and WorldOutliner to group the examples.

Change 3988151 by Max.Chen

	Cine Camera: Enable keying the "Enable Look at Tracking" toggle.

Change 3988880 by Max.Chen

	Sequencer: Support enter to add asset for all sequencer track editors that have asset pickers.

	#jira UE-57367

Change 3988953 by Max.Chen

	Sequencer: Make the track color picker focusable so that it will close when you click away or lose focus.

	#jira UE-57210

Change 3988962 by Max.Chen

	MovieSceneCapture: Fix EDL export so that it takes into account movie scene frame resolution and desired frame rate.

	#jira UE-57365

Change 3988964 by Max.Chen

	Movie Scene Capture: Clarified tooltip for bRelativeFrameNumbers. If you specify custom start/end frames for the recording, they will be relative to the playback range.

	#jira UE-57308

Change 3989442 by Max.Chen

	Fix CIS

Change 3991548 by Matt.Hoffman

	Dragging the time slider no longer causes the time slider to ignore snap-to-interval with "Snap to Keys While Scrubbing" when no keys are in range.

	#jira UE-57417

Change 3991598 by Matt.Hoffman

	Snap to Key while scrubbing now mirrors the behavior of "jump to next key". When there are no tracks selected it snaps to all keys and when there are tracks selected it snaps to only keys from that track.
	This also resolves an issue where deleting an object did not remove it from the Sequencer's selection. Undoing a delete already doesn't seem to restore your selection, so removing it from your selection shouldn't change that
behavior.

	#jira UE-57417

Change 3991603 by Max.Chen

	Sequencer: Disable EditAnywhere for some section properties

	#jira UE-53530

Change 3992240 by Max.Preussner

	MediaAssets: Implemented dynamic audio sample rate adjustment based on audio/media clock drift

	#jira FORT-70638

Change 3992911 by Andrew.Rodham

	Sequencer: Fixed saving spawnable state using the wrong spawned object

	  - We now track the object binding ID so that we can apply the spawned object to the correct spawnable when the asset is saved

	#jira UE-57353

Change 3992914 by Max.Chen

	Movie Scene Capture: Fix compression quality not being set.

	The compression interface wasn't being found through query interface, so no compression was being set. Reworked finding it through the output pins.
	Tested running various compression values.

	#jira-UE-55488

Change 3992919 by Max.Chen

	Sequencer: Convert to possessable now uses object template instead of copying properties (ie. see LevelSequenceActorSpawner). This fixes MIDs getting lost when converting to spawnable and back to possessable.

	#jira UE-52400

Change 3993184 by Max.Chen

	Sequencer: Don't show +Transform/+Path/+Attach track if the actor has the "Mobility" property hidden.

	Set the Landscape, LandscapeProxy and InstancedFoliage "Mobility" property to be hidden since it is static is not supposed to be dynamically movable.

	#jira UE-56347

Change 3993238 by Max.Chen

	Sequencer: Test for hidden mobility in creating keys as well. Refactored to HasHiddenMobility()

	#jira UE-56347

Change 3993978 by Max.Chen

	Cine Camera: Enable keying the "Enable Look at Tracking" toggle.

	#jira UE-57489

Change 3994039 by Max.Chen

	Landscape: Add Mobility to hidecategories on landscape component

	#jira UE-56347

Change 3994626 by JohnHenry.Carawon

	Updated Movie Rendering Test Content.

	- Fixed the overridden spawnables to their proper object types.

Change 3994653 by Christina.TempelaarL

	Sequencer: Added Final Cut Pro 7 XML Import functionality, improved Export functionality
	#jira UESEQ-358

Change 3995609 by Max.Chen

	UMG: Add support for 2d transform mask (translation, rotation, scale, shear)

	#jira UE-52951

Change 3995778 by JohnHenry.Carawon

	Movie Rendering Test Content Updates

	- Adjusted Lights example
	- Adjusted Camera example
	- Added Marcie sublevel back in

Change 3995942 by JohnHenry.Carawon

	QAGame: Moving Movie Rendering test content from Developer folder to Sequencer folder

	Also adjusted level visibility, lights and camera example.

Change 3995993 by Christina.TempelaarL

	Sequencer: FCPXML Export updates - only export sections if in playback range and media exists, warn if media does not exist. Other updates - removed unused methods and variables, fixed message context naming to be more accurate
	#jira UESEQ-358

Change 3996595 by andrew.porter

	QAGame: Updating Marcie content in TrackEvaluation level to use Image Plate

Change 3996614 by andrew.porter

	QAGame: Adding color test sequence to the sublevel

Change 3996643 by Max.Chen

	Sequencer: Fix fbx animation export - rotation and scale channels were flipped.

	#jira UE-57509
	#jira UE-57512
	#jira UE-57514

Change 3996652 by Max.Preussner

	Messaging: Fixed delayed messaging using incorrect current time after message router sleep

	Based on https://github.com/EpicGames/UnrealEngine/pull/4601

Change 3996801 by Max.Chen

	Sequencer: Fix folder active state for non key area sections. Look at track node sections as well as key areas.

	#jira UE-57550

Change 3997098 by Matt.Hoffman

	Cleaned up some remaining ToDo's in STimeRange.

Change 3998339 by Max.Preussner

	Sockets: Added documentation for socket receive functions

Change 3998359 by Max.Preussner

	MediaUtils: Started to implement media recorder helper class

	Currently only supports BGRA frames in CPU memory. Supporting other formats and buffer types will require conversions on render-thread. I recommend refactoring out the existing conversion code in FMediaTextureResource into a
reusable helper class in the MediaUtils module. This should be a good starting point though.

Change 3998417 by Matt.Hoffman

	Keys and Sections can now be moved at the same time inside of Sequencer. Keys can now snap to Sections (and vice versa) instead of just to other Keys. Sections can now be duplicated like keys can.

	#jira UE-56995

Change 3998427 by JohnHenry.Carawon

	QAGame: Updating test content for the Movie Rendering feature.

	- Added an auto activate particle to the beginning of the sequence (it's not part of the sequence at all)
	- Added an event receiver blueprint to the Events example
	- Added a particle emitter to both sublevels
	- Added a camera cut to the end that switches to a separate camera
	- The camera zoom in, focus and Look At sections are all separate (not overlapping in the sequence)
	- Added a second actor for the camera Look At
	- Added a Visibility section for the Actor Hidden In Game track that has possessable and spawnable cube and light

Change 3998537 by Max.Chen

	Sequence Recorder: Restore immersive mode when stopping the sequence even if not in PIE.

	#jira UE-56407

Change 3999809 by Matt.Hoffman

	Removed the "Go To" box from Sequencer and instead placed the current time as an always visible control. The previous shortcut (Ctrl + G) now focuses the new widget directly.

	#jira UESEQ-376

Change 4000543 by Christina.TempelaarL

	Sequencer: Moving editor-only code from runtime module MovieSceneCapture to editor module MovieSceneTools.

	Moved EDL and FCP XML exporters as well as Automated Level Scene Capture.

	#jira UESEQ-358

Change 4000706 by Matt.Hoffman

	Entering multiple time strings without a number no longer crashes Sequencer.

	#jira UE-57672

Change 4001051 by andrew.porter

	MediaFrameworkTest: Fixing up some image sources pointing to the wrong location

Change 4001191 by andrew.porter

	QAGame: Adding some quick EDL/XML test content to dev folder

Change 4001243 by Max.Chen

	Sequencer: Fix import EDL out of range.

	#jira UE-57665

Change 4001856 by Matt.Hoffman

	Selecting keys and sections at the same time now also works with animation and audio sections.

	#jira UE-57716

Change 4002021 by Max.Chen

	Sequence Recorder: Fix sequence name incrementing.

	If external recording sets the sequence name, use it. Otherwise, use the recording name from the recording group or the recording settings.

	#jira UE-57712

Change 4002618 by Max.Chen

	Viewport: Update the look at location when updating to a locked actor. This fixes an issue so  that popping the view out of a locked actor and manipulating the view will not jump to the previous look at location.

	#jira UE-57725

Change 4002979 by Matt.Hoffman

	Fixes several edge cases with the end time range that was causing confusion about what the last frame of the sequence was. Dragging the End Frame slider will no longer be off by one tick and jumping to the end via the UI controls
now properly respects snapping and stays inside the play range instead of falling outside of it. Overall behavior does not change though and End Frame should be considered an exclusive frame so that frames 0-150 results in a 150 frame long
animation (which is frames 0-149).

	#jira UE-56367

Change 4003185 by Matt.Hoffman

	Fixed a regression that prevented a section from being dragged upwards past row 0 which normally resulted in all other rows moving down.

	#jira UE-57717

Change 4003193 by JohnHenry.Carawon

	QAGame: Updates to test content

	- Shortened frames between the examples from 95 to 30
	- Separated camera setting tracks
	- Lighting example now switches directly from constant red - green - blue

Change 4003369 by Max.Chen

	Sequence Recorder: Refresh next sequence regardless of internally stored sequence name.

	#jira UE-55757

Change 4003586 by JohnHenry.Carawon

	QAGame: Test Content Updates

	- Level Visibility track now ends to that the levels are not visible when we move to the next example
	- Shortened camera section, removed Z tranform so that we just move left to right and shortened the overall length

Change 4004414 by Max.Chen

	Movie Scene Capture: Fix regression where rendering with shot handles would only render the first shot. 3972166 addressed an issue where an extra frame would be rendered by finalizing right when the end frame was reached. This was
hit on the first shot end frame, so instead, do this only for when the last shot is being rendered.

	#jira UE-57314

Change 4004765 by Christina.TempelaarL

	Sequencer: Fixed bugs in FCP XML import/export.

	- Export: fixed sequence default resolution.
	- Export: fixed XML files with no shots.
	- Export: all sections clipped to playback range.
	- Export: fixed incorrect section start/end times due to precision issues.
	- Import: fixed incorrectly adding cinematic tracks.
	- Import: fixed bugs creating new sections.

	#jira UE-57660
	#jira UE-57662
	#jira UE-57655
	#jira UE-57761

Change 4005119 by Max.Chen

	Sequencer: Export/import at play rate

Change 4005195 by Max.Chen

	UMG: Finish UMG evaluation on stop. Added object version so that existing UMG assets do not change.

	#tests - Newly created UMG animation with sections set to restore state now return to their original state. Existing UMG animations with sections set to restore state do not return to their original state.

	#jira UE-52285

Change 4005377 by Michael.Karambelas

	QAGame: Moving TM-SequenceRecorder and related content out of my developer folder and into /Content/Sequencer/SequencerRecorder/*

Change 4005417 by Michael.Karambelas

	QAGame: Fixed a BP compiler in the Level Blueprint of TM-SequencerRecorder.

Change 4005634 by Michael.Karambelas

	QAGame: Fix up missing content and broken level sequence in TM-SequenceRecorder after move

Change 4006324 by Max.Chen

	Sequencer: Reset if the focused movie scene is null. This fixes a crash if the user is focused in on a shot and undo takes the user past the point of where the shot was created.

	#jira UE-57752
	#jira UE-47661

Change 4007006 by Max.Chen

	Sequencer: Fix FindAvailableRowIndex so that it returns the max row index (and not +1) since it doesn't find any conflicting rows.

	#jira UE-57717

Change 4007907 by Max.Chen

	Sequencer: Fix crash if there's no animation

Change 4007948 by andrew.porter

	QAGame: added  test content to dev folder for Record World Space

Change 4008636 by Max.Chen

	Sequencer: Fix import fbx not setting values properly and creating additional cameras unncessarily.

	#jira UE-57864

Change 4008759 by Max.Chen

	Sequencer: Follow up fix for import cameras

	#jira UE-57864

Change 4009994 by Matt.Hoffman

	Dragging the left or right handles of the Time Range slider in Sequencer will now zoom your view in on the current center of the screen. This prevents the view from being translating as you tried to zoom in which caused issues at
high zoom levels.

	#jira UESEQ-407

Change 4010169 by Christina.TempelaarL

	Sequencer: FCP XML fixes.

	- FCP XML export - no longer clips to playback range
	- FCP XML and EDL export - fixed missing last frame of some sections after exporting to Premiere.
	- Automated level capture, EDL export - use RoundToFrame instead of FloorToFrame for computing section start/end frames after frame rate conversion.

	#jira UE-57802 - partial fix, movie scene capture still needs to render full section rather than clip against playback.

Change 4010287 by Mike.Zyracki

	Add quaternion interpolation option to UMovieScene3DTransformSection.
	This mimics how Matinee used to work by bascially finding the keys between a time and interpolating the angles as quat's between them.
	As noted in the code the algorithm needs to handle the case when the x,y,z Rotation keys all aren't at the same time which was not handled by Matinee.

	Also like Matinee, when in quaternion interoplation mode, we need to not display the function cuves since the interpolated and key values are now all different. (Would like to show them but that's a bigger refactor for perhaps just
a one off needed by quaternions).
	I added a virtual function UMovieSceneSection::ShowCurveForChannel for this since it needs to be dynamic, not on construction of IKeyArea's, and could be useful for other sections. I could though move the method to just
UMovieScene3DTransformSection and do a cast instead.

	Looked into doing a unit test for this but after talking with Andrew P we will work on doign an automated test in EngineQA since that will provide more coverage.  Will also add a video the jira.

	#jira UESEQ-403

Change 4010713 by Mike.Zyracki

	Added option to key a group of transform channels instead of just the changed channel, or all of them.
	This is useful for quaternion interpolations where you want rotation keys to be aligned but also useful for other workflows like animating FK Pose to Pose.

Change 4010715 by Andrew.Porter

	MediaFrameworkTest: Setting LogMediaUtils logging from VeryVerbose to Verbose to cut back on the spam

Change 4013048 by Max.Chen

	Sequencer: Fix play/jump status.

	Update the player status  for all position methods (Scrub, Jump, Play). Jump means Stopped.
	Correctly use PlayTo or JumpTo based on position method.
	In PlayInternal, JumpTo with the Stopped state (rather than playing state).

	#jira UE-57844

Change 4013479 by andrew.porter

	QAGame: Added content in TM-SequenceRecorder to test recording a property on a Cine Camera Component; Press 3 to trigger manual focus distance to increment on a timer

Change 4014323 by Max.Chen

	Sequencer: Fix SetPlaybackPosition so that it jumps or plays based on playback status.

	#jira UE-57844

Change 4015888 by Max.Chen

	Sequencer: Fix crash on paste.

	UMovieSceneSections were gathered from the track node's track. For sub track mode, we want to gather only those sections on that track node row.

	#jira UE-57951

Change 4015943 by Max.Chen

	Sequencer: Fix moving shots up when the mouse pos goes outside of the virtual track area.

	#jira UE-57717

Change 4016293 by Max.Chen

	Sequencer: Fix relative frame playback end frame calculation so that custom start/end frames remain in the space of the sequence and are not relative.

	#jira UE-57308

Change 4017075 by Andrew.Rodham

	Sequencer: Corrected initial evaluation range used when calling UMovieSceneSequencPlayer::Play()

Change 4017270 by Christina.TempelaarL

	Sequencer: FCPXML importer and movie scene capture

	- Use CeilToFrame when converting section start/end frame times to frame numbers in FCPXML and movie scene capture.
	- Added support for clip metadata in FCPXML.
	- Got rid of redundant TokenizedError message class, no longer needed now that FCPXML is in editor directory.
	- Added log messages currently commented out due to exception, still testing.

	#UESEQ-358

Change 4018370 by Christina.TempelaarL

	Sequencer: fixed FCPXML log messages regarding sections with start/end not divisible by display rate.
	#UESEQ-358

Change 4018378 by Christina.TempelaarL

	Sequencer: fixed error in previous changelist.
	#UESEQ-358

Change 4019457 by Max.Chen

	Sequencer: Show event names only when the event track is selected

	#jira UE-57897

Change 4022806 by Max.Chen

	Sequencer: Fix crash on movie scene capture dialog shutdown if movie capture wasn't even started.

	#jira UE-58106

Change 4022894 by Max.Chen

	Sequence Recorder: Wrap OpenEditorForAssets after sequence recording within GIsEditor

	#jira UE-58084

Change 4024487 by Max.Chen

	Sequencer: Add tooltip for quat interpolation

	#jira UE-58113

Change 4024562 by Max.Chen

	Sequencer: Change path/attach track sequence binding id to currently focused sequence id so that bindings can be created in subsequences

Change 4027414 by JohnHenry.Carawon

	QAGame: Checking in content that shows a bug with using particles systems and Delay Before Shot Warm Up.

Change 4028990 by Max.Chen

	Sequencer: Fix evaluate sub sequences in isolation.

	This check was added with the compile on the fly logic. Not sure why it was necessary but it seems like the sub sequence data needs to be updated in order to evaluate sub sequences in isolation.

	#jira UE-58184

Change 4029004 by Max.Chen

	Sequencer: Ensure that old binding references are removed when re-assigning actors in sequencer

	#jira UE-57898

Change 4030997 by JohnHenry.Carawon

	QAGame: Fixing name of the master sequence

Change 4031785 by Michael.Karambelas

	QAGame: Added an instance of ThirdPerson Run to TM-SequenceRecorder for Record to Possessable test.

Change 4035548 by Andrew.Rodham

	Sequencer: Changed FMovieSceneEvaluationTemplate::TemplateSignature to be a serial number to address non-deterministic cooking issues

	  - This commit is related to the repro steps found in 3914599 and 3934307, both of which have been verified with this new change.
	  - Copy of 4031684 from //Fortnite/Main/...

	#jira FORT-84852

Change 4036312 by Max.Chen

	Sequencer: Fix zoom view range so that it uses the passed in InZoomDelta

Change 4036318 by Max.Chen

	Sequencer: Auto size now returns a range and defaults to the channel proxy range so that keyed regions can also be autosized.

Change 4036322 by Max.Chen

	Forgot missing change

Change 4036360 by Max.Chen

	Sequencer: Fix play rate calculation when skeletal animation section play rate changes.

Change 4037163 by Mike.Zyracki

	Weighted Tangent Implementation

	Tricky thing is that you need to solve a cubic in order to get the bezier weights for the time part of the curve.  See https://www.gamedev.net/forums/topic/474094-help-function-curves-for-animation-interpolation/

	Maya provides an implementation in it's dev kit but I didn't use it since it was horribly slow and uses an iterative solution to solve the cubic needed.
	Instead I use an old algorithm (Cardano's method), to solve the cubic which should be much faster. Though relative simple to code from principles I just went ahead and used
	a version from Graphics Gems 1.

	I put this cubic solver directly in MovieSceneFloatChannel.cpp, but will need to move it when we support Rich Curve, maybe to FMath:: (which would probalby require some other
	functions for solving quartics, etc.. for completeness.).  Also note we resolve this on every evaluation but dont' need to if the interval the time is evaluating hasn't had any
	change in values or tangents.  So again when we support FRichCurve we can create a Weighted Evaluating class that can hold the cache.

	Also with the tangent drags I got rid of the Cardinal position that was used to calculate non-weight tangents from the key point and just quickly getting a direction.
	With weighted tangents we need to use the delta instead (otherwise when moving multiple they would all get the same weight based upon distance to the cardinal point. )

	For mixed tangents types what I'm defaulting to non weighted if the interval doesn't match. May need to do weighted instead, not sure.

	What's left is just FBX import, for tomorrow.

	#jira UESEQ-76

Change 4037435 by Mike.Zyracki

	Fix fo build warnings from weighted tangent submission.
	#trivial

Change 4038091 by Michael.Karambelas

	QAGame: Updated a Sequence Recorder group in TM-SequenceRecorder that had an actor missing the animation.

Change 4038374 by Andrew.Rodham

	Sequencer: Refined scrubber styling for level sequences and actor sequences

	  - Scrubber now shows a block the width of a dsplay rate frame, plus a line for the actual evaluated time. UMG reverts back to the previous styling (no block)
	  - Keys that are outside of the playback range are now drawn with a subdued effect
	  - Tick labels are no longer drawn when directly underneath the scrubber

Change 4038490 by Max.Chen

	Sequencer: Expose tangent weight values in details panel.

Change 4038620 by Andrew.Rodham

	Sequencer: Advanced time panel polish

	#jira UESEQ-426

Change 4038677 by Max.Chen

	Movie Scene Capture: Redirector for MovieSceneTools.AutomatedLevelSequenceCapture

	#jira UE-58248

Change 4039739 by Max.Chen

	Sequencer: Media track should only be supported by Level Sequence

Change 4040024 by JohnHenry.Carawon

	QAGame: Fix EventReciever and OverrideBinding example
	The level sequence was set to none so the fix was to set it back to TrackEvaluation_Master.

Change 4040610 by Andrew.Rodham

	Curve Editor: Moved weighted tangent switchers to a single toggle command (CTRL+W) and added an icon

	#jira 58383

Change 4040882 by Mike.Zyracki

	Keep broken when turning on weighted

	#jira UE-58435

Change 4041089 by andrew.porter

	QAGame: Sequence for Long Tangents bug

Change 4041498 by Mike.Zyracki

	Turn off weighted when going auto to prevent large tangents.
	Do it both in UI and when doing AutoSetTangents()
	to really make sure it doesn't happen.

	#jira UE-58452

Change 4041752 by andrew.porter

	MediaFrameworkTest: Adding some better logging for setting rates when not supported. Also ignoring commiting URL when there is no text

Change 4041896 by Matt.Hoffman

	The transform dialog box now transforms selected keys and sections, instead of just keys.

	#jira UE-58265

[CL 4044405 by Max Chen in Main branch]
2018-05-02 10:10:00 -04:00
Marcus Wassmer
25eed01c13 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4041614)
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 3774677 by Arne.Schober

	DR - Deprecated SetLocal from the RHICmdlist
	Fixed some unnecessary PSO collisions.

Change 3809579 by Chris.Bunner

	Back out changelist 3774677.

	#jira UE-53483

Change 3810363 by Mark.Satterthwaite

	More random fixes to mtlpp: most important is the extension to Buffer that allows creation of sub-buffers that are merely views onto a sub-range of the parent. These sub-buffers are valid to use throughout the mtlpp API with two exceptions: they may not be used for visibilityResultsBuffers and Set*BufferOffset functions cannot take this offset into account (as the encoder does not hold onto the buffers and I don't want it to). In the case of Set*BufferOffset the caller has to know what is going on and in the case of visibilityResultsBuffers it'll just assert as it isn't sensible.

	This makes it *much* easier to do things like sub-buffer allocation, though the caller must be aware of the alignment restrictions of their intended usage as they are not possible to enforce. For example, a call to SetVertexBuffer requires an offset alignment must match the alignment of the data-type in the shader for "device" resources, or for "constant" data it must be max(4, sizeof(datatype)) on iOS and 256 on macOS. This should allow for much more tightly packed sub-allocations than earlier approaches, though older drivers (e.g. Mac OS X 10.11) enforce only the coarser "constant" data restriction everywhere.

Change 3810407 by Marcus.Wassmer

	PR #4322: ShadowSetup Bug Fix: Only stencil mask drawn meshes (Contributed by DSDambuster)

Change 3810676 by Guillaume.Abadie

	Makes r.Test.SecondaryUpscaleOverride work with any arbitrary pixel size.

Change 3810696 by Guillaume.Abadie

	Adds support for #include "../MyFile.ush" in the shader compiler.

Change 3810698 by Guillaume.Abadie

	Implements enum class based shader permutation dimension.

Change 3810699 by Guillaume.Abadie

	Implements Diaphragm DOF ground work.

Change 3811536 by Guillaume.Abadie

	Pulls the trigger on CircleDOF's setup pass for DiaphragmDOF.

Change 3811958 by Mark.Satterthwaite

	More fixes for mtlpp.

Change 3811964 by Mark.Satterthwaite

	Only views onto a mtlpp::Buffer should return a valid parent-buffer.

Change 3812604 by Guillaume.Abadie

	Changes Diaphragm DOF's source file layout.

Change 3812827 by Mark.Satterthwaite

	More missing/broken functionality in mtlpp fixed and fixed obvious leaks.

Change 3812920 by Guillaume.Abadie

	Adds support for per mip level UAV in FSceneRenderTarget.

Change 3812926 by Mark.Satterthwaite

	Change the way we handle mtlpp resource construction to avoid leaks.

Change 3812960 by Rolando.Caloca

	DR - vk - Disable DFGI

Change 3812968 by Rolando.Caloca

	DR - Linker fix

Change 3813318 by Mark.Satterthwaite

	Fix linear texture allocation from a buffer sub-view.

Change 3813326 by Mark.Satterthwaite

	Fix another Metal mtlpp sub-buffer allocation failure.

Change 3813328 by Guillaume.Abadie

	Removes global samplers in TAA for GL4, Vulkan and Switch.

Change 3813937 by Rolando.Caloca

	DR - Fix logs not getting dumped when r.DumpSCWQueuedJobs is on

Change 3813947 by Rolando.Caloca

	DR - noshaderworker should override r.XGEShaderCompile

Change 3817017 by Uriel.Doyon

	Fixed texture editor black screen
	#jira UE-53653

Change 3818568 by Rolando.Caloca

	DR - Fix log when shader jobs crash
	- Move log10 to common
	- Added COMPILER_VULKAN define

Change 3818603 by Uriel.Doyon

	Fix to static analysis warning

Change 3818623 by Rolando.Caloca

	DR - Workaround hlslcc loop unrolling bug

Change 3819070 by Uriel.Doyon

	Fix to stat duplication.

Change 3819105 by Uriel.Doyon

	Refactored volume sample shader to avoid using texture dimension.

Change 3819136 by Rolando.Caloca

	DR - vk - Per platform files (empty)

Change 3819180 by Rolando.Caloca

	DR - vk - Move defines out of config into per platform

Change 3819247 by Rolando.Caloca

	DR - vk - Remove more defines into platform settings

Change 3819318 by Rolando.Caloca

	DR - vk - Fixes for linking

Change 3819868 by Rolando.Caloca

	DR - vk - Linux & Android fixes

Change 3819873 by Guillaume.Abadie

	Adds support for PermutationId on r.DumpShaderDebugInfo=1

Change 3819940 by Rolando.Caloca

	DR - vk - Fix Linux issues

Change 3819956 by Rolando.Caloca

	DR - vk - Invalid check

Change 3819961 by Michael.Lentine

	Hide attributes when plugin is not present

Change 3819980 by Rolando.Caloca

	DR - vk - Standard validation always

Change 3820039 by Rolando.Caloca

	DR - vk - Fix invalid ensure

Change 3820326 by Rolando.Caloca

	DR - vk - Linux compile fix

Change 3820422 by Michael.Lentine

	Add back GBufferAO.

Change 3820433 by Rolando.Caloca

	DR - Fix D3D12 crash on 20 thread (10x2 cores) machines

Change 3821677 by Rolando.Caloca

	DR - vk - Win32 compile fix

Change 3821961 by Rolando.Caloca

	DR - Vulkan uses real UB by default on non-Android

Change 3821968 by Rolando.Caloca

	DR - vk - Update glslang 1.0.65.1

Change 3821969 by Uriel.Doyon

	Added support for stat groups that must be sorted by name. Defined by DECLARE_STATS_GROUP_SORTBYNAME.

Change 3821983 by Rolando.Caloca

	DR - vk - Change to static array (0.1ms on 10k draw calls)

Change 3824141 by Rolando.Caloca

	DR - vk - Fix static analysis
	- Bumped up some (c) 2017->2018

Change 3824355 by Rolando.Caloca

	DR - vk - Accessor to find out if a cmd buffer has been submitted

Change 3824420 by Rolando.Caloca

	DR - Sanity check number of queries per batch on D3D11 as to not break other RHIs

Change 3824463 by Rolando.Caloca

	DR - Removed dummy ensure for D3D12

Change 3824609 by Rolando.Caloca

	DR - vk - Linux compile fix

Change 3826074 by Mark.Satterthwaite

	Start IMP-caching the various descriptor types in mtlpp.

Change 3826098 by Rolando.Caloca

	DR - vk - Dump layer compile fixes

Change 3826113 by Rolando.Caloca

	DR - vk - Missing dump functions

Change 3826302 by Rolando.Caloca

	DR - vk - Compile fix
	- Change dump handles to %p

Change 3826635 by Mark.Satterthwaite

	Forward declarations required for mtlpp compilation without exposing Metal headers - plus fixes to the mtlpp test compiler.

Change 3827072 by Mark.Satterthwaite

	Switch some more mtlpp descriptors over to IMPTables from objc_msgSend.

Change 3827909 by Guillaume.Abadie

	Replaces diaphragm DOF's prefiltering with LDS bank coherent bilateral reduction, and implements 1/8 res background gathering pass.

Change 3827952 by Guillaume.Abadie

	Updates copy right to year 2018 on diaphragm DOF's new files.

Change 3828055 by Rolando.Caloca

	DR - vk - Rename in prep for changes

Change 3828229 by Guillaume.Abadie

	Avoids to log multiple time global shader type name that have multiple permutations when verifying global shader map.

Change 3828427 by Guillaume.Abadie

	Reimplements Max3x3 gathering post filtering for Diaphragm DOF with proper shader permutation.

Change 3829979 by Guillaume.Abadie

	Fixes a color NaN source in diaphragm DOF's TAA pass.

Change 3830116 by Rolando.Caloca

	DR - vk - Fix GPU queries/frame time on old system
	- New system in place, disabled temporarily

Change 3830169 by Rolando.Caloca

	DR - vk - Fix async pso creation crash

Change 3830193 by Rolando.Caloca

	DR - vk - CPU RHI thread improvement

Change 3830291 by Guillaume.Abadie

	Automatically lower the number of gathering rings on background half res gather pass as far CoC is getting smaller.

Change 3830300 by Rolando.Caloca

	DR - vk - Static analysis fix: Split VulkanCommon.h out of VulkanConfiguration.h

Change 3830589 by Mark.Satterthwaite

	In mtlpp cache the IMPTables for all the Metal @protocol's that are dependent on the MTLDevice, this avoids a mutex & map lookup. Also make all the concrete types store their IMPTable statically as it won't change.

Change 3830793 by Mark.Satterthwaite

	Fix a small number of bugs introduced with the mtlpp descriptor and table caching.

Change 3831491 by Jian.Ru

	Fix driver version unknown
	#jira UE-53688

Change 3832335 by Rolando.Caloca

	DR - vk - Change include

Change 3832550 by Rolando.Caloca

	DR - vk - Occlusion query rewrite WIP

Change 3832589 by Rolando.Caloca

	DR - vk - Minor refactor to pools in prep for timestamps

Change 3832618 by Rolando.Caloca

	DR - vk - Do not block timestamp queries

Change 3832636 by Rolando.Caloca

	DR - vk - Fix old timestamp queries

Change 3833138 by Rolando.Caloca

	DR - vk - Fix timestamp queries

Change 3833249 by Rolando.Caloca

	DR - vk - Test lock

Change 3833667 by Rolando.Caloca

	DR - vk - Old queries wait on the RHI thread now instead of the driver (disabled)

Change 3833907 by Daniel.Wright

	Fixed NextStartOffset UAV index out of bounds

Change 3833918 by Daniel.Wright

	D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC or Xbox.  The refcounting was heavy on performance as reported by a licensee because FRHIResource uses atomics for refcounting, which is only necessary when GRHINeedsExtraDeletionLatency is disabled.

Change 3834852 by Rolando.Caloca

	DR - vk - Missing file

Change 3834858 by Guillaume.Abadie

	Implements r.DOF.MinimalFullresBlurringRadius

Change 3834979 by Rolando.Caloca

	DR - vk - Fix

Change 3836117 by Rolando.Caloca

	DR - vk - Update to 1.0.65.1

Change 3836122 by Rolando.Caloca

	DR - vk - Added r.Vulkan.SubmitOcclusionBatchCmdBuffer
	- Added new error codes/messages

Change 3836421 by Mark.Satterthwaite

	For the purposes of debugging and conformance testing mtlpp make it possible to compile *without* the IMP cache so that we call the underlying Objective-C.

Change 3836896 by Uriel.Doyon

	Fixed concurrency and exit issues  around d3d12 pipeline states on windows.

Change 3837385 by Rolando.Caloca

	DR - vk - Dump memory on OOM

Change 3837427 by Rolando.Caloca

	DR - vk - Change some arrays to array views

Change 3837800 by Guillaume.Abadie

	Implements SHADER_PERMUTATION_RANGE_INT to make contiguous integer permutations that does not start to 0.

Change 3838128 by Rolando.Caloca

	DR - vk - Support for non-cached memory types

Change 3838540 by Guillaume.Abadie

	Refactors Diaphragm DOF's CoC tile buffer under a single API for better maintainability.

Change 3838731 by Rolando.Caloca

	DR - vk - Descriptor pools per command buffer pool (turned off)

Change 3838961 by Rolando.Caloca

	DR - vk - Use ring buffer for per frame uniform buffers
	- Enable descriptor pools per layout recycled per command buffer

Change 3839087 by Rolando.Caloca

	DR - vk - Compile fixes for Android

Change 3839106 by Marcus.Wassmer

	PR #4413: Removing unnecessary call to FString::ToLower (Contributed by gsfreema)


Change 3839252 by Mark.Satterthwaite

	Fix mtlpp::Resource move operators.

Change 3839426 by Marcus.Wassmer

	Duplicate 380972
	Make PC GPU Benchmarks more reliable

Change 3840041 by Guillaume.Abadie

	Fixes shader compilation failure in TAA with alpha channel through post processing support.

Change 3840257 by Chris.Bunner

	Swapping a mul() to * in HLSLTranslator::Dot to allow scalar transformations per a UDN ticket.

Change 3840308 by Rolando.Caloca

	DR - vk - Support for UB & non-UB on emulation mode

Change 3840586 by Rolando.Caloca

	DR - Copy 3840577
	Fix for CPUs with more than 16 cores

Change 3840671 by Rolando.Caloca

	DR - vk - Copy from 3840663
	Fix for layout ensure on HMD projects on Vulkan

Change 3840980 by Rolando.Caloca

	DR - vk - Android compile fixes

Change 3841989 by Guillaume.Abadie

	Slices Diaphragm DOF's Gather pass in multi shader files, and CFLAG_StandardOptimization flag for faster iteration time.

Change 3842216 by Guillaume.Abadie

	Fixes DDOF's foreground alpha channel.

Change 3842217 by Guillaume.Abadie

	Implements r.DOF.MaximalForegroundBlurringRadius

Change 3842353 by Guillaume.Abadie

	Allows to disable foreground gathering with r.DOF.MaximalForegroundBlurringRadius=0

Change 3842747 by Rolando.Caloca

	DR - vk - Missing use of GPoolSizeVRAMPercentage
	- Support for smaller allocations if page size is not available

Change 3842791 by Rolando.Caloca

	DR - vk - Use 95% of available GPU memory to handle some fragmentation

Change 3843690 by Guillaume.Abadie

	Fixes diaphragm DOF's foreground after all this refactoring.

Change 3844439 by Guillaume.Abadie

	Improves Coc dilate pass to make the gather pass as fast as possible, but still without artifacts caused by the fast gathering optimisation.

Change 3844946 by Mark.Satterthwaite

	rd_route v1.1.1 with attached TPS approval.

	For macOS function interposition which is useful for debugging and the occasional workaround.

Change 3845164 by Mark.Satterthwaite

	Add LLM support for macOS, including tracking of memory allocated in Objective-C. This makes use of runtime method swizzling in the Objective-C runtime and the rd_route library I added for Richard Wallis, which allows for arbitrary runtime function interposition and allows me to hook the custom allocators used in Apple's many Objective-C frameworks on which the whole macOS edifice is built. Objective-C objects are charged to the calling scope as they are too common to impose their own without murdering frame rate.

	We would need a TPS approval for an iOS function interposition library for this to work fully on iOS, if desired in the short term discarding LowLevelFree events that aren't in the map rather than asserting will workaround the problem.

Change 3845849 by Marcus.Wassmer

	Fix clang and some normal refactor errors

Change 3846026 by Rolando.Caloca

	DR - vk - Descriptor set allocation scheme rewrite
	- Type hash for each pool
	- Desc sets Pool on device

Change 3846169 by Rolando.Caloca

	DR - vk - Remove old code for non-layout descriptor set pools

Change 3846205 by Mark.Satterthwaite

	Disambiguate the PatchControlPointOut struct definitions in Metal tessellation shaders at Apple's suggestion to avoid a metallib gotcha.

Change 3846346 by Arne.Schober

	DR - Missing Vector instructions

Change 3847037 by Arne.Schober

	DR - Fix issue with GPU skincache where the offset of the clothbuffer is not relative to the offset of the actual vertexbuffer.
	Fixed MorphTarget Skincache Offset mixxup

Change 3847275 by Marcus.Wassmer

	Copying MGPU to Dev-Rendering (//UE4/Dev-Rendering)

Change 3847464 by Rolando.Caloca

	DR - vk - Fix static analysis warning

Change 3847707 by Michael.Lentine

	Only use MorphTargetOffset when the shader enables morph targets.

Change 3848533 by Richard.Wallis

	Handle Metal adding FirstInstance into [[ instance_id ]] which is different to other APIs.  SV_InstanceID and SV_VertexID should now have their respective base instance and base vertex ID's subtracted before use in the shader.

	#jira UE-51716

Change 3848625 by Richard.Wallis

	Compile Fix

Change 3848725 by Rolando.Caloca

	DR - Remove use of Build/SetLocalGraphicsPipelineState

Change 3848797 by Rolando.Caloca

	DR - Deprecate Build/SetLocalGraphicsPipelineState

Change 3849237 by Arne.Schober

	DR - AddCustom Ver for ModelVertex Serialization

Change 3851247 by Rolando.Caloca

	DR - vk - Util functions

Change 3851523 by Arne.Schober

	DR - Update Reflection Comparission shot from the BuildFarm.

Change 3851859 by Rolando.Caloca

	DR - vk - Skip loader

Change 3851889 by Krzysztof.Narkowicz

	Removed lights with lighting channels out of tiled deferred light list. Tiled deferred lights do not support lighting channels and it's wasn't worth to add extra complexity to this shader in order support this special case.

	#jira UE-51512

Change 3852181 by Rolando.Caloca

	DR - vk - Linux compile fix

Change 3852547 by Uriel.Doyon

	Fixed Pre-Exposure shader compilation and Temporal AA issue.

	#jira UE-54276

Change 3852637 by Arne.Schober

	DR - Fixing Normal Automated Test Result

Change 3853167 by Richard.Wallis

	AvfPlayer - support for streaming media.  Due to an operator new/delete mismatch in Apples CFNetwork - we've had to change out one of that framework allocators using rd_route to avoid  the memory corruption.

	#jira UE-35637

Change 3853447 by Chris.Bunner

	Fixing typos.

Change 3853645 by Krzysztof.Narkowicz

	Fixed light functions on subsurface materials
	Removed strange code from blending between static and dynamic shadows

	#jira UE-50275

Change 3853660 by Rolando.Caloca

	DR - Fix OpenGL overwriting texture samplers on forward renderer

Change 3853945 by Mark.Satterthwaite

	Duplicate #3831616

	Fix the black ground scattering on Metal - we've had issues with the atmospheric fog calculations for a long time - one or more intermediate operations generates different precision on Metal so we end up passing -ve values into sqrt which then generates NaN/INF. For Metal when compiling this file and this file only #define sqrt() to sqrt(abs()) so that we don't see anymore unexpected black in atmospheric rendering. This is far from ideal but I don't want to make abs all inputs into every sqrt because AFAIK this is the only case where we have an issue, and until we to investigate each intermediate calculation that isn't ridiculously, soul-crushingly tedious, it isn't practical to identify the source of the error.

	#jira UE-53720

Change 3853966 by Mark.Satterthwaite

	Duplicate #3835852

	Fix tessellation shaders in Metal with Manual Vertex Fetch enabled:
	- The control points idnex buffer shouldn't collide with anything else.
	- We can't use the optimisation of loading texture width & height from the buffer meta-table in tessellation shaders as the combined stages don't guarantee not to clobber unused buffer slots and screw it up when we use linear textures.

	#jira UE-53851

Change 3854250 by Uriel.Doyon

	Fix fbx automation tests

Change 3854736 by Uriel.Doyon

	Added a tooltip to the EV100 slider in the exposure menu.
	Using game settings now disables the slider.
	#jira UE-53945

Change 3855047 by Jian.Ru

	Fix DFAO getting NANs when samples out of ViewRect
	#jira UE-54403

Change 3858197 by Krzysztof.Narkowicz

	View frustum shadow caster culling for pointlights/spotlights

	#jira UE-54381

Change 3860081 by Krzysztof.Narkowicz

	Tighter bounding sphere for a spotlight
	Replaced IntersectSphere(LightProxy->Origin, LightProxy->Radius) with LightProxy->SphereBounds for tighter culling of spotlights
	Directional light GetBoundingSphere() now everywhere returns Sphere((0,0,0),HALF_WORLD_MAX) for consistency and proper SphereBounds

	#jira UE-54258

Change 3860324 by Mark.Satterthwaite

	Update the macOS deployment target version to 10.12 from 10.11 as we officially ended support for El Capitan a while ago. Should mean that libraries compiled for 10.12 and up won't cause link warnings.

Change 3860945 by Arne.Schober

	DR - Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer.

	#jira UE-54587

Change 3861129 by Jian.Ru

	Prevent distance culled objects from casting distance field direct shadows
	#jira UE-54533

Change 3861502 by Jian.Ru

	Exclude distance culled objects from DFAO calculation
	#jira UE-54533

Change 3862243 by Krzysztof.Narkowicz

	Changed radius of a directional light's bounding sphere from HALF_WORLD_MAX to WORLD_MAX in order to encopass entire WORLD_MAX box

Change 3863476 by Krzysztof.Narkowicz

	Added BuildReflections option to ResavePackages commandlet

	#jira UE-54581

Change 3863717 by Rolando.Caloca

	DR - vk - Missed using pipeline cache on compute PSOs

Change 3865332 by Arne.Schober

	DR - Fix UE-52356 Bone Weight

Change 3866220 by Rolando.Caloca

	DR - vk - Fixed GetNativeResource missing on textures
	- Added support for -preferNvidia|AMD|Intel
	- Added VulkanRHIBridge.h
	- Minor fixes

Change 3866222 by Rolando.Caloca

	DR - vk - Missed file

Change 3866951 by Krzysztof.Narkowicz

	Fixed FreezeRendering on non editor builds: ComputeAndMarkRelevanceForViewParallel was calling FrozenMatricesGuard on multiple threads, reading and writing view matrices state in parallel.

	#jira UE-53640

Change 3867231 by Guillaume.Abadie

	Adds alpha mode to allow the tonemapper to passthrough the alpha channel for broadcast industry.

Change 3867233 by Guillaume.Abadie

	Fixes a compilation failures in TAAU with r.PostProcessing.PropagateAlpha==2

Change 3867594 by Daniel.Wright

	Removed EditorOnlyDefaultMaterials, which added 79s of shader compilation during startup
	Added a dialog when opening the Material Editor on a Default Material, warning of advanced workflow
	Preventing Material Editor Apply or Save for a Default Material when the preview material has compilation errors

Change 3870048 by Daniel.Wright

	Cleaned up formatting in TranslucentRendering from merges

Change 3870106 by Krzysztof.Narkowicz

	Fixed some FArchive Tell()/Seek() 64bit->32bit truncations

Change 3870211 by Rolando.Caloca

	DR - vk - Added -vulkanvalidation=N/-vulkanstandardvalidation/-novulkanstandardvalidation to set validation layer behaviour from cmd line

Change 3870225 by Rolando.Caloca

	DR - vk - Some platforms do not use a standard swapchain

Change 3870267 by Arne.Schober

	DR - SafeRelease SRVs that might be hold by the Vertexfactories (maybe due to indirect use in GlobalResources)
	Note that the VFs are not owners of the data, e.g the underlying Buffers might be released before this and this reference counting should be uneccessary

Change 3870647 by Daniel.Wright

	Moved FogRendering.h to Renderer

Change 3872130 by Krzysztof.Narkowicz

	Disable USE_GLOBAL_CLIP_PLANE for MATERIAL_DOMAIN_POSTPROCESS and MERIAL_DOMAIN_UI

	Merging GitHub Pull request #4459
	"When material domain is not needing global clip plane there is no need to generate any code involving it. This does not alter output but removes lot of code at vertex shader and pixel shaders. At least on mobile rendered was actually generating clipping code for ui materials."

	#jira UE-54616

Change 3872145 by Rolando.Caloca

	DR - vk - Optional SupportsMarkersWithoutExtension

Change 3872404 by Uriel.Doyon

	Added some guards when streaming virtual textures.
	Fixed optimized UCanvasRenderTarget2D::RepaintCanvas() to prevent resolving the texture twice.
	Fixed bad mipmap generation with UCanvasRenderTarget2D.

Change 3872507 by Arne.Schober

	Back out changelist 3870267

Change 3874176 by Ben.Marsh

	IncludeTool: Add an flag to prevent scanning source files for exported symbols.

Change 3874935 by Krzysztof.Narkowicz

	Fixed white thumbnails and other issues with sky lighting on ES3_1 path, by disabling GGX prefiltering, as mobile path doesn't have a single cubemap with all initialized mips. Instead it ping-pongs between 2 partially initialized.
	#jira UE-54656

Change 3875710 by Daniel.Wright

	Renamed uniform buffer member macros to be much shorter for readability

Change 3876665 by Guillaume.Abadie

	Cherry-pick 3870715: Implements DOF's hybrid scatering bare bones.

Change 3876666 by Guillaume.Abadie

	Cherry-pick 3871786: DOF hybrid scatering: fixes NaN source, transition to gather on close to screen edge and low intensity.

Change 3876677 by Guillaume.Abadie

	Cherry-pick 3872348: Implements neighbor comparison for DOF's scattering compilation pass.

Change 3876680 by Guillaume.Abadie

	Cherry-pick 3872357: Oups... fixes build...

Change 3876683 by Guillaume.Abadie

	Cherry-pick 3872475: Controls number of mip to generate with DOF's reduce pass.

Change 3876687 by Guillaume.Abadie

	Cherry-pick 3874104: Fixes various bugs in diaphragm DOF's hybrid scattering.

Change 3876690 by Guillaume.Abadie

	Cherry-pick 3874144: Packs multiple DOF scattering group into same draw instance.

Change 3876694 by Guillaume.Abadie

	Cherry-pick 3874275: Switches hybrid scattering with indexed indirect draw call to reduce scatter vertex shader invocation.

Change 3876695 by Guillaume.Abadie

	Cherry-pick 3874674: Records min and max coc on DOF's setup's draw event.

Change 3876783 by Rolando.Caloca

	DR - Static analysis fix

Change 3876845 by Guillaume.Abadie

	Implements USceneCaptureComponent::ProfilingEventName

Change 3877197 by Rolando.Caloca

	DR - vk - OQ fixes (disabled)

Change 3877428 by Krzysztof.Narkowicz

	Merged with tiny tweaks Ansel photography plugin improvements from Adam Moss (GitHub pull request #4426):
	-The free-roaming photography camera has new constraints by default, i.e. it can't pass through walls
	-Photography session can be started and stopped programmatically, e.g. making it possible to bind photography to an alternative hotkey or button combo. This was an often-requested feature.
	-Tweakables and utilities are now exposed through a Blueprint Function Library (rather than direct manipulation of console variables)
	-The Ansel photography session UI now exposes some engine effect tweakables as sliders. For example, if the game is using depth-of-field then sliders are made available to allow the photographer to change the focal depth etc. The developer may suppress this behavior through the Blueprint Function Library.
	-Letterboxing is now removed during multi-part capture, d'oh.
	-Tiled shots are taken at full resolution even if ScreenPercentage < 100
	-SSR is enabled during super-resolution shots since Ansel is now better at hiding any ensuing artifacts
	-Postprocess settings are frozen at session start to avoid discontinuities during photography, i.e. wandering between postprocess volumes when the camera auto-moves for stereo and 360 shots.
	#jira UE-54244
	#4426

Change 3879086 by Krzysztof.Narkowicz

	Fixed sky/reflection capture (without owner) update - they are now updated only with a correspoding world

Change 3879090 by Guillaume.Abadie

	Fixes tones of regressions on diaphragm DOF's recombine passes.

Change 3879198 by Rolando.Caloca

	DR - vk - Support for real uniform buffers on Android platforms

Change 3879993 by Krzysztof.Narkowicz

	-Fixed int64->int32 FArchive offset truncation in TShaderMap, VertexFactory and TextureDerivedData
	-Fixed FSerializationHistory bug, when trying to serialize 0 bytes
	#jira UE-43203

Change 3881462 by Guillaume.Abadie

	Implements full res DOF's setup pass for cheaper full res gathering in recombine pass.

Change 3881524 by Krzysztof.Narkowicz

	Fixed compilation by removing FTickableEditorObject from FPreviewScene

Change 3881724 by Chris.Bunner

	Static analysis fix.

	#jira UE-54762

Change 3881861 by Rolando.Caloca

	DR - vk - Fix layout warning when generating mip chain

Change 3881864 by Rolando.Caloca

	DR - Use render passes on HZB

Change 3882236 by Yuriy.ODonnell

	IndirectLightingColorScale is now applied to SubsurfaceLighting and DiffuseLighting. Was previously only applied to DiffuseLighting.

	#jira UE-42534
	#github 3326

Change 3882325 by Guillaume.Abadie

	Implements FocusOnly lower gathering pass for Diaphragm DOF's slight out focus temporal stability.

Change 3882340 by Rolando.Caloca

	DR - vk - Fix api dump

Change 3882430 by Rolando.Caloca

	DR - vk - KHR_maintenance2

Change 3882563 by Rolando.Caloca

	DR - Add depth-stencil access mode to PSO initializer

Change 3882929 by Rolando.Caloca

	DR - vk - Proper fix for maintenance extension macros

Change 3883087 by Mark.Satterthwaite

	Allow disabling VSync in windowed mode for macOS 10.13.4+ and above.

Change 3883597 by Guillaume.Abadie

	Collapses full and half res DOF setup passes together.

Change 3883702 by Guillaume.Abadie

	Fixes mac's build.

Change 3884747 by Uriel.Doyon

	Fix for static analysis warning

Change 3884975 by Rolando.Caloca

	DR - vk - Move some platform defines to platform properties

Change 3884988 by Rolando.Caloca

	DR - vk - Make an override per platform

Change 3885832 by Rolando.Caloca

	DR - vk - Cosmetic change to group similar members

Change 3885891 by Rolando.Caloca

	DR - vk - Some _RenderThread functions to avoid stalls

Change 3886044 by Rolando.Caloca

	DR - Added RHI api _RenderThread version of
	RHICreateTextureReference
	RHICreateShaderLibrary
	RHICreateRenderQuery

Change 3886560 by Guillaume.Abadie

	Fixes strong aliasing on TAAU's fast shader permutation.

	This adds a 6th neighbor sampling, and switch AA_TONE ON as TAA does for its fast shader permutation.

Change 3886749 by Guillaume.Abadie

	Cherry-pick 3884748: Implements DOF's BuildBokehLUT for diaphragm blades simulation.

	Only used in hybrid scattering for now.

Change 3886750 by Guillaume.Abadie

	Cherry-pick 3885457: Simulates diaphragm blades' curvature on bokeh.

Change 3886752 by Rolando.Caloca

	DR - Fix metal static analysis

Change 3887460 by Uriel.Doyon

	Fixed to more static analysis warning.

Change 3888201 by Rolando.Caloca

	DR - vk - Added r.Vulkan.SubmitAfterEveryEndRenderPass
	- Fixed bad layout on rendering back buffer

Change 3888209 by Rolando.Caloca

	DR - vk - Unity compile fix

Change 3888254 by Rolando.Caloca

	DR - vk - Fix async texture layout

Change 3888893 by Guillaume.Abadie

	Simulates bokeh in DOF's slight out of focus.

Change 3889085 by Guillaume.Abadie

	Fixes DOF's reduce pass sampling outside viewport.

Change 3889924 by Rolando.Caloca

	DR - vk - Skip seemingly bad validation error

Change 3890573 by Daniel.Wright

	Only initialize FDiaphragmDOFGlobalResource in Feature Level 5

Change 3890590 by Arne.Schober

	DR - Fix Paper2d crash. When addMesh is called the Vertex and Indexbuffers are nulled out. re-create Dynamic Mesh builder for every Mesh instead.

	#jira UE-55063

Change 3890638 by Arne.Schober

	DR - Better fix for Paper2d which honors batching

	#jira UE-55063

Change 3891099 by Krzysztof.Narkowicz

	1.5 texel shadow offset fix inside Manual2x2PCF based on #4485 GitHub pull request
	#jira UE-54985
	#4485

Change 3891234 by Krzysztof.Narkowicz

	Optimized PCF2x2 and PCF3x3 - merged #4494 GithHub pull request
	#jira UE-55121

Change 3891407 by Rolando.Caloca

	DR - vk - Set vendor id earlier

Change 3891417 by Rolando.Caloca

	DR - vk - Missing layout transitions

Change 3891718 by Arne.Schober

	DR - Do not recreate one Frame Resource for dynamic draws

	#jira UE-55063

Change 3891925 by Yuriy.ODonnell

	Fix/workaround for inconsistent preprocessor definitions for NVAftermath that result in FD3D11DynamicRHI class layout mismatch. NVAftermath support is now enabled by default for Win64.

	NVAftermath is declared as a private dependency in D3D11RHI. It does not automatically propagate to modules that explicitly include private RHI headers (OculusHMD, OSVR, OSVRInput). This results in NV_AFTERMATH being defined while compiling RHI module and not defined when compiling other modules, causing memory corruption at runtime.

	The long-term solution for this and similar issues requires some mechanism for adding transitive module dependencies, so that anyone that depends on D3D11RHI module would automatically also get the NVAftermath. Additionally, private headers should *never* be included directly by external modules.

	The short-term solution is to explicitly add NVAftermath dependency to OculusHMD, OSVR and OSVRInput.

	Additionally, NV_AFTERMATH is no longer forced by D3D11RHIPrivate.h when it's not defined. This allows catching this kind of mismatch in the future through a compiler warning (C4668).

	#jira UE-53065

Change 3891987 by Rolando.Caloca

	DR - vk - Support for dedicated allocations

Change 3892339 by Jian.Ru

	Fix a crash when tessellation shaders are used in dx12
	#jira UE-55127

Change 3892528 by Rolando.Caloca

	DR - vk - Update Linux headers

Change 3892867 by Rolando.Caloca

	DR - vk - Don't create swapchain if not needed

Change 3893416 by Guillaume.Abadie

	Implements bokeh simmulation on foreground and background gather.

Change 3893732 by Chris.Bunner

	GetRelevance_Internal should use the immediate parent resource, not the base, as some features are overridden by permutations e.g. UsesWorldPositionOffset.

	#jira UE-53404

Change 3893868 by Guillaume.Abadie

	Allocates diaphragm DOF's buffers and structered buffer only on supported platforms.

Change 3893917 by Chris.Bunner

	Potential fix for CIS.

Change 3893933 by Chris.Bunner

	Duplicating CL 2647737 as this is the same issue from that JIRA where accessing game-thread data was being prevented. We don't have this check in UMaterial::GetMaterialResource already, but presumably the UMaterialInstance case was never removed as we've not been calling it until now.

Change 3894218 by Rolando.Caloca

	DR - vk - Remove stat counters per draw call, gains 10% CPU on Infiltrator

Change 3894579 by Arne.Schober

	RT - Fix assert not in RenderingThread from Triangle Renderer.
	#jira UE-55247

Change 3894724 by Rolando.Caloca

	DR - vk - New API for batching barriers

Change 3894909 by Arne.Schober

	DR - Fix crash in Speedtree wind where Renderdata is unavailable
	#jira UE-54544

Change 3895414 by Rolando.Caloca

	DR - Add a configurable threshold for SCWs time outs

Change 3896429 by Marcus.Wassmer

	Allow variable frame-latency delay in FrameGrabber frames.  For performance you want at least a 1 frame delay so you don't sync the GPU to the CPU.

Change 3896495 by Marcus.Wassmer

	Set pointer properly
	Fix CIS

Change 3897253 by Guillaume.Abadie

	Fixes CIS warning in diaphragm DOF

Change 3899179 by Guillaume.Abadie

	Implements background hybrid scatter occlusion for diaphragm DOF.

Change 3903654 by Rolando.Caloca

	DR - vk - Rework dump layer to allow other layers

Change 3903766 by Rolando.Caloca

	DR - vk - More wrappers

Change 3904025 by Rolando.Caloca

	DR - vk - More wrappers

Change 3904342 by Rolando.Caloca

	DR - vk - Track image resources & callstacks

Change 3904346 by Rolando.Caloca

	DR - vk - Copy fix from 4.19 for flickering grass

Change 3904510 by Rolando.Caloca

	DR - vk - Compile fix

Change 3904914 by Daniel.Wright

	[Integrate] Fixed PS4 transitions with forward shading

Change 3904916 by Daniel.Wright

	[Integrate] Fixed PS4 transitions with occlusion queries

Change 3905975 by Rolando.Caloca

	DR - vk - Missing wrappers

Change 3905977 by Rolando.Caloca

	DR - vk - Missed file

Change 3907829 by Rolando.Caloca

	DR - Move depth bounds to the PSO

Change 3907832 by Rolando.Caloca

	DR - vk - Prep for delaying transitions

Change 3907834 by Rolando.Caloca

	DR - vk - Fix for depth stencil issues/validation errors

Change 3907967 by Rolando.Caloca

	DR - vk - Linux compile

Change 3908093 by Rolando.Caloca

	DR - vk - Fix depthstencil layout on descriptors

Change 3908393 by Rolando.Caloca

	DR - vk - Disable dedicated allocation as it causes crashes on Nvidia 700 series

Change 3908401 by Rolando.Caloca

	DR - Do transitions outside render pass

Change 3908422 by Rolando.Caloca

	DR - vk - Fix transition state not getting stored

Change 3908735 by Guillaume.Abadie

	Cherry-pick 3896619: Fixes after TAAU post process material that had wrong default buffer UV.

	#jira UE-55317

Change 3908736 by Guillaume.Abadie

	Cherry-pick 3891352: Fixes ensure when visualizing HDR with TAAU.

	#jira UE-55019

Change 3908753 by Guillaume.Abadie

	Lets the renderer layout the views in the internal render targets like it prefers.

Change 3909119 by Daniel.Wright

	Fix some static analysis warnings

Change 3911943 by Rolando.Caloca

	DR - vk - Fix for packaging Vulkan projects

Change 3912145 by Rolando.Caloca

	DR - vk - Fix layout on streaming textures

Change 3913029 by Rolando.Caloca

	DR - Fix missing transition

Change 3913048 by Rolando.Caloca

	DR - Fix for hlslcc

Change 3913054 by Rolando.Caloca

	DR - vk - Fix number of layers on barrier

Change 3913171 by Rolando.Caloca

	DR - vk - Fix for decal missing transition

Change 3913211 by Rolando.Caloca

	DR - vk - Add debug name to image tracking

Change 3913449 by Rolando.Caloca

	DR - vk - Restore transition

Change 3913466 by Rolando.Caloca

	DR - Fix Vulkan EngineTest

Change 3913537 by Rolando.Caloca

	DR - vk - Fixes independent samplers & textures (contributed by AMD)

Change 3913548 by Rolando.Caloca

	DR - vk - Warning fix

Change 3913691 by Rolando.Caloca

	DR - vk - Fixes for parallel (wip)

Change 3914656 by Rolando.Caloca

	DR - vk - Fix bug when using separate samplerstates and textures

Change 3914730 by Rolando.Caloca

	DR - vk - Bump version

Change 3914764 by Rolando.Caloca

	DR - vk - Don't crash on exit

Change 3915532 by Rolando.Caloca

	DR - vk - Parallel context fixes

Change 3915589 by Rolando.Caloca

	DR - vk - Hoist and rename transition and layout manager class out of the context

Change 3915592 by Rolando.Caloca

	DR - Fix gpu marker name

Change 3917607 by Rolando.Caloca

	DR - vk - Fix depth bounds on Vulkan

Change 3917609 by Rolando.Caloca

	DR - vk - Fix static analysis

Change 3917616 by Rolando.Caloca

	DR - Fix D3D11 initialization

Change 3920569 by Rolando.Caloca

	DR - vk - Prep for layout mgr refactor

Change 3921023 by Rolando.Caloca

	DR - vk - Dump layer fixes

Change 3921623 by Rolando.Caloca

	DR - vk - Prep refactor for layouts
	- Dump now shows marker tree

Change 3922007 by Rolando.Caloca

	DR - vk - Fix extra allocation per draw call

Change 3922442 by Rolando.Caloca

	DR - vk - Detect potential issues

Change 3922470 by Rolando.Caloca

	DR - vk - Minor optimization

Change 3922482 by Rolando.Caloca

	DR - vk - More minor optimizations

Change 3923158 by Rolando.Caloca

	DR - Move r.DisableEngineAndAppRegistration out to common RHI and use it on Vulkan

Change 3923486 by Rolando.Caloca

	DR - vk - Minor cpu optimizations

Change 3923505 by Rolando.Caloca

	DR - vk - Use bigger allocations for uniform buffers

Change 3923516 by Rolando.Caloca

	DR - vk - Android compile fix

Change 3923557 by Rolando.Caloca

	DR - vk - Cache descriptorset layouts, refactor duplicated code

Change 3923851 by Rolando.Caloca

	DR - vk - Linux compile fix

Change 3924153 by Rolando.Caloca

	DR - vk - Support for dynamic UBs

Change 3924193 by Rolando.Caloca

	DR - vk - Remove old per pso descriptor pools

Change 3924197 by Rolando.Caloca

	DR - vk - Remove unused global uniform buffer pool

Change 3924220 by Rolando.Caloca

	DR - vk - Wrap some unused classes in their define

Change 3924234 by Rolando.Caloca

	DR - vk - Show ring buffer wrapping messages

Change 3924243 by Rolando.Caloca

	DR - vk - Fix bad dynamic buffer

Change 3924902 by Rolando.Caloca

	DR - vk - Fix crash running infiltrator

Change 3925209 by Rolando.Caloca

	DR - vk - Fix bug with dynamic buffers
	- Remove old defines

Change 3925300 by Rolando.Caloca

	DR - vk - Allow packed uniforms as dynamic UBs (with r.Vulkan.DynamicGlobalUBs)

Change 3925627 by Rolando.Caloca

	DR - vk - Move DynamicOffsets into the pipeline state

Change 3925834 by Rolando.Caloca

	DR - vk - Cache per stage information

Change 3925835 by Daniel.Wright

	Fixed DisplayName for UParticleModuleCollisionGPU

Change 3925897 by Rolando.Caloca

	DR - vk - Split update descriptors loop

Change 3926488 by Rolando.Caloca

	DR - vk - 16MB for ring buffer on desktop, 8 MB for mobile

Change 3928168 by Guillaume.Abadie

	Cherry-pick 3917219: Implements r.DOF.RecombineQuality

Change 3928173 by Guillaume.Abadie

	Cherry-pick 3927888: Enables r.DOF.HybridScatter.BackgroundCompositing and r.DOF.HybridScatter.ForegroundCompositing to work when both enabled.

Change 3928216 by Rolando.Caloca

	DR - vk - Fix Android
	- Fix static analysis

Change 3929119 by Rolando.Caloca

	DR - vk - Rename some classes for clarity
	- Fix read-only cvar

Change 3929151 by Rolando.Caloca

	DR - vk - Rename class

Change 3930046 by Rolando.Caloca

	DR - Temp fix Vulkan flickering grass

Change 3930148 by Rolando.Caloca

	DR - vk - Only update dirty descriptors
	- Use dynamic descriptors for packed global uniform buffers

Change 3930998 by Guillaume.Abadie

	Packs shader permutation in different XGE submissions.

Change 3931079 by Rolando.Caloca

	DR - vk - Fixes for Android and non-real ubs platforms

Change 3931942 by Krzysztof.Narkowicz

	Depth rendering - When EarlyZPassMode is set to DDM_AllOccluders, dynamic objects need also to test bUseAsOccluder just like static ones

	#jira none

Change 3932819 by Daniel.Wright

	[Integrate] Scene Textures uniform buffer
	* Base Pass Uniform Buffer now contains a Scene Textures uniform buffer.  Previously the translucent base pass had to check ~40 loose scene texture parameters every draw.
	* FMeshMaterialShader's must now bind PassUniformBuffer and supply a valid pass uniform buffer.  For most passes this is just FSceneTextureUniformParameters.
	* FRendererModule::DrawTileMesh can now cleanly set dummy scene texture resources, just by configuring how the pass uniform buffer is created.
	* Moved scene texture shader functions out of Common, into SceneTexturesCommon which must be manually included by shaders that want to use them
	* Separate Mobile Scene Textures uniform buffer to silo the platform complexities

	Moved DBuffer inputs out of FDeferredPixelShaderParameters and into FOpaqueBasePassUniformParameters

	Removed per-frame material uniform expressions.  GameTime material node with period is now implemented with an fmod in the shader, without the use of MaterialFloat, so that it will happen at full precision.
	* Per-frame expressions were used when the GameTime material node had a period, to do the fmod on the CPU where 32 bit precision is guaranteed, for mobile GPU's where pixel shader precision is sometimes less than 32fp.

	Moved forward shading data into the Base Pass Uniform Buffer
	Removed instanced stereo support for the light cull grid - will have to be reimplemented without changing SRV's per draw
	Base pass sets View Uniform Buffer from DrawRenderState instead of choosing which one to set per-draw

	Fixed padding in nested uniform buffer structs
	Skip SRV members on Feature Level SM4 and below

Change 3932964 by Rolando.Caloca

	DR - vk - Renderdoc on Android

Change 3933095 by Daniel.Wright

	Moved FSceneTextureUniformParameters out of the opaque base pass uniform buffer.
	* Base Pass shaders now enable SCENE_TEXTURES_DISABLED when compiling for a material of any domain other than MD_Surface.  These are used when rendering thumbnails of a material in a different domain, which could be opaque, but the opaque base pass drawing policy does not bind a scene textures uniform buffer, so the shader must not bind it.
	* Opaque materials can no longer use EyeAdaptation.

Change 3933096 by Daniel.Wright

	Better d3d11 assert message when a uniform buffer was not set by the renderer

Change 3933176 by Rolando.Caloca

	DR - vk - Prefer mailbox if available

Change 3933271 by Ryan.Vance

	#jira UE-55936
	Fixed missing referenced uniform bindings on AR pass-through camera shaders.

Change 3934000 by Guillaume.Abadie

	Fixes Win32 build in ShaderCompilerXGE.cpp

Change 3934299 by Guillaume.Abadie

	Fixes a bug in DOF's reduce operator that was casusing color leaking between background and foreground.

Change 3934699 by Daniel.Wright

	Added bAffectDistanceFieldLighting to landscape

Change 3935190 by Daniel.Wright

	Forward Light Grid SRV's use StructuredBuffer on Metal, instead of 'invariant Buffer', which throws off RemoveUniformBuffersFromSource parsing

Change 3935606 by Daniel.Wright

	Removed LightmapPolicy::Set which was needed for vertex lightmaps
	Renamed FVertexFactory::Set to SetStreams to make it findable

Change 3936510 by Rolando.Caloca

	DR - vk - Update glslangValidator.exe to 1.0.65.1 for dumped debug SPIRV shaders

Change 3936545 by Richard.Wallis

	Clone of CL's (3925763, 3925430, 3925424, 3925385, 3925278) Mark Satt's Xcode fixes from task stream //Tasks/UE4/Dev-UERNDR-354-mtlpp/

	Plus XCode 9.2 compile fix in ApplicationPlatformCompilerPreSetup.h for -Wunused-lambda-capture.

Change 3938061 by Daniel.Wright

	Vulkan: Added support for SRV's in Uniform Buffers

Change 3938123 by Daniel.Wright

	Vulkan: Slightly better assert for null resources in uniform buffer

Change 3939197 by Rolando.Caloca

	DR - vk - Disable custom memory mgmt

Change 3939677 by Rolando.Caloca

	DR - vk - Fix static analysis warning

Change 3939809 by Rolando.Caloca

	DR - vk - Fixes for async compute

Change 3939875 by Rolando.Caloca

	DR - vk - Support for -vktrace

Change 3939977 by Rolando.Caloca

	DR - vk - Skip a condition during gather UBs
	- Set up efficient compute async var
	- Fix validation cmd line

Change 3939982 by Rolando.Caloca

	DR - vk - Revert mipchain

Change 3939984 by Rolando.Caloca

	DR - vk - Remove unnecessary asserts

Change 3940082 by Rolando.Caloca

	DR - vk - Custom mem mgr

Change 3940475 by Rolando.Caloca

	DR - vk - Fix DFAO (indirect draw offset)

Change 3940555 by Rolando.Caloca

	DR - vk - Minor fixes

Change 3940675 by Rolando.Caloca

	DR - vk - Fix indirect type mismatch

Change 3941111 by Rolando.Caloca

	DR - Renderpass bGeneratingMips

Change 3941847 by Daniel.Wright

	Fixed Volumetric Lightmaps on Static geometry only working if the geometry had been built with Surface Lightmaps before

Change 3941978 by Rolando.Caloca

	DR - vk - Minor fixes for presenting on compute queue

Change 3942074 by Rolando.Caloca

	DR - vk - Remove some RHI stalls
	- Fixed swap chain stat

Change 3943946 by Daniel.Wright

	Fixed Texcoord0 on Volume materials on a particle sprite, including SubUV particles.

Change 3944065 by Daniel.Wright

	Fixed SceneDepth collision getting broken on GPU particles when a scene capture is rendering

Change 3944158 by Daniel.Wright

	Fixed ViewUniformShaderParameters accessing GEngine->PreIntegratedSkinBRDFTexture too early during slate loading screen

Change 3944865 by Rolando.Caloca

	DR - vk - Prep for render passes

Change 3945196 by Rolando.Caloca

	DR - Move render pass validate to cpp

Change 3945202 by Rolando.Caloca

	DR - vk - Some fixes for using real render passes

Change 3945357 by Rolando.Caloca

	DR - Fix bad condition

Change 3946295 by Yuriy.ODonnell

	Added a sentinel member to FLightMap, which is initialized in the ctor and reset in the dtor. Sentinel is then checked in FLightCacheInterface::GetLightMapInteraction().
	This aims to shed some more light on a hard-to-repro crash, which is suspected to be a use-after-free bug: http://crashreporter/Buggs/Show/1785593

Change 3946407 by Rolando.Caloca

	DR - vk - Prep for refactor

Change 3946648 by Rolando.Caloca

	DR - vk - Fixes for async compute (wip)

Change 3947299 by Rolando.Caloca

	DR - vk - FIx static analysis

Change 3948434 by Rolando.Caloca

	DR - vk - Fix exiting with parallel

Change 3948928 by Rolando.Caloca

	DR - vk - Fix enabling draw markers for tools

Change 3949021 by Rolando.Caloca

	DR - vk - Buffer tracking layer

Change 3949602 by Rolando.Caloca

	DR - vk - static analysis fix

Change 3949757 by Rolando.Caloca

	DR - vk - Remove bogus parameter

Change 3949810 by Rolando.Caloca

	DR - vk - Move waits for cmd buffer

Change 3950270 by Guillaume.Abadie

	Implements dedicated gather pass for foreground hole filling to avoid being VGPR bound in foreground gather pass, but still being hable to amend foreground.

Change 3950272 by Rolando.Caloca

	DR - vk - Minor refactor for semaphores

Change 3950279 by Guillaume.Abadie

	Oups... fixes build

Change 3950298 by Rolando.Caloca

	DR - vk - Gather wait semaphores in the cmd buffers

Change 3950371 by Rolando.Caloca

	DR - vk - fixes for async compute

Change 3950597 by Rolando.Caloca

	DR - vk - Fix for clip distance (fixes planar reflections)

Change 3951075 by Rolando.Caloca

	DR - vk - Fix for async compute

Change 3952524 by Guillaume.Abadie

	Some DOF enum refactoring.

Change 3955016 by Daniel.Wright

	Fixed BuiltData package getting renamed into the map package during a content browser folder move, causing a redirector to be incorrectly placed in the map package

Change 3955668 by Guillaume.Abadie

	Fixes a bug where full res coc buffer was computed even if not doing slight out of focus.

Change 3956722 by Guillaume.Abadie

	Fixes a bug where r.DOF.MaximalForegroundBlurringRadius was screen percentage dependent.

Change 3959212 by Guillaume.Abadie

	Prefixes all DOF's shaders files with DOF keyword.

Change 3959705 by Guillaume.Abadie

	Optimises the DOF setup pass outputing half res and full res with LDS downsample.

Change 3959941 by Guillaume.Abadie

	Halfs DOF's hybrid scatter compilation by using a unique downsampling for both foreground and background, instead of 2 reduce passes.

Change 3962273 by Rolando.Caloca

	DR - Fix typos

	#jira UE-56317
	PR #4586

Change 3962615 by Rolando.Caloca

	DR - vk - Compile fix

Change 3962949 by Rolando.Caloca

	DR - Fix DOFDownsample extension

Change 3962993 by Guillaume.Abadie

	Back out changelist 3962949

Change 3963016 by Guillaume.Abadie

	Adds missing DOFDownsample.usf

Change 3963041 by Rolando.Caloca

	DR - vk - Misc changes to help integrate

Change 3964293 by Guillaume.Abadie

	Fixes DOF's setup pass reading outside of the viewport.

Change 3964475 by Guillaume.Abadie

	Collapses DOF's hybrid scatter compilation passes into reduce passes.

Change 3964883 by Daniel.Wright

	Fixed 3d texture in uniform buffer on unsupporting RHI

Change 3964897 by Rolando.Caloca

	DR - Compile fixes

Change 3964914 by Guillaume.Abadie

	Fixes a bug on r.DOF.RecombineQuality=0

Change 3965153 by Guillaume.Abadie

	Fixes compile warning in D3D12Commands.cpp.

Change 3965814 by Rolando.Caloca

	DR - Prep for integration conflict resolve

Change 3965899 by Rolando.Caloca

	DR - Fix odd linkage issue

Change 3966072 by Rolando.Caloca

	DR - More prep for merge

Change 3966163 by Rolando.Caloca

	DR - Merge prep

Change 3966844 by Guillaume.Abadie

	Packs multiple DOF scattered bokeh per instance and uses PT_RectList in DOF for platforms that can.

Change 3967116 by Rolando.Caloca

	DR - Compile fixes for integration

Change 3967273 by Rolando.Caloca

	DR - Use same path for mip generation

Change 3967277 by Rolando.Caloca

	DR - vk - Fix mips on cubemaps

Change 3967693 by Rolando.Caloca

	DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, missing shaders

Change 3967851 by Rolando.Caloca

	DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, Engine 2/2

Change 3968083 by Rolando.Caloca

	DR - Integration compile fixes

Change 3968240 by Rolando.Caloca

	DR - Shader compile fixes for integration

Change 3968270 by Rolando.Caloca

	DR - Fix for missing hash calculation

Change 3969426 by Rolando.Caloca

	DR - vk - Fix warning

Change 3969869 by Krzysztof.Narkowicz

	Back out changelist 3946295 - UE-54537 is fixed, so no need for this debug sentinel.
	#jira none

Change 3969944 by Rolando.Caloca

	DR - Warning fix

Change 3970020 by Rolando.Caloca

	DR - Bump after integration

Change 3970052 by Rolando.Caloca

	DR - Fix for mobile

Change 3970236 by Daniel.Wright

	Causing decal shader to recompile to fix a merge bug

Change 3970270 by Daniel.Wright

	Bump shader version from merge

Change 3970339 by Olaf.Piesche

	Replace series of locks/unlocks with a single one for curve injection

	#tests QAGame

Change 3970390 by Rolando.Caloca

	DR - Rename FSceneTextureUniformParameters to FSceneTexturesUniformParameters
	- Remove duplicate method for occlusion queries

Change 3970523 by Rolando.Caloca

	DR - Fix serialization of shaders

Change 3970533 by Arne.Schober

	DR - fix for removing the Speed tree wind when the scene gets deleted. The original enque rendercommand requeues the element onto the renderthread although the call already came from the Renderthread and the scene can get lost in between.

	#jira UE-56322

Change 3971160 by Guillaume.Abadie

	Fixes CompositeEditorPrimtive pass and SelectionOutline pass for VR editor to work with TAAU.

Change 3971516 by Guillaume.Abadie

	Cherry-pick 3912629: Fixes SSR that was computing vigneting according to PrevScreen that could let some outside viewport samples going through when rotating the camera.

	#jira UE-55353

Change 3971594 by Krzysztof.Narkowicz

	Fixed assert inside BindLightMapVertexBuffer. FSplineMeshSceneProxy was calling BindLightMapVertexBuffer for invalid (still not generated) lightmap UV channel after mesh reimport. Simplified assert, as at the moment almost all of the high callsites already clamp lightmap uv channel.
	#jira UE-56321

Change 3971622 by Krzysztof.Narkowicz

	Fixed crash inside Indirect Lighting Cache. Data (reflection captures and lightmap) generation calls ULevel::GetOrCreateMapBuildData(), which can destroy lightmap data if level has legacy data. Last Lightmap generation step recreates this data, but if user cancels lightmap generation - it won't do that.
	#jira UE-56171

Change 3974788 by Rolando.Caloca

	DR - Remove GSupportsGenerateMips

Change 3974789 by Rolando.Caloca

	DR - Remove bogus function

Change 3974986 by Rolando.Caloca

	DR - vk - Tracking fixes

Change 3974989 by Rolando.Caloca

	DR - vk - Don't submit dummy barriers

Change 3975075 by Olaf.Piesche

	Update for particle curve injection improvement, fixing ES2 problems

	#tests QAGame tm-shadermodels, various color curve tests in-editor

Change 3975957 by Uriel.Doyon

	Fixed invalid max texture resolution when using the bake material tools.

Change 3978471 by Daniel.Wright

	New cvar r.SkylightUpdateEveryFrame

Change 3978779 by Rolando.Caloca

	DR - Accessor for texture sizes

Change 3978797 by Rolando.Caloca

	DR - Clean up RHI CopyTexture API

Change 3978832 by Rolando.Caloca

	DR - vk - Workaround for RenderDoc crashing due to Descriptor Pool reset

Change 3978836 by Rolando.Caloca

	DR - vk - Remove generate mips

Change 3979201 by Rolando.Caloca

	DR - vk - RHI CopyTexture. Uses general layout for generating mips

Change 3979204 by Rolando.Caloca

	DR - Use render passes and CopyTexture to generate mips

Change 3979592 by Rolando.Caloca

	DR - Warning fix

Change 3980855 by Krzysztof.Narkowicz

	Optimize bounding sphere radius after non-uniform scale by using bounding box extent.

	#jira UE-56227

Change 3981065 by Rolando.Caloca

	DR - vk - Fix bad layout

	#jira UE-56238

Change 3981346 by Rolando.Caloca

	DR - Copy from 3707257
	Support for not flushing compute jobs (r.D3D11.UAVFlushNV)

Change 3981347 by Rolando.Caloca

	DR - Copy from 3707257
	Don't flush between morph dispatched

Change 3981932 by Mark.Satterthwaite

	Generate the shader hash and function name when a Metal shader error needs to be reported so that even without shader code we get something to go on.

Change 3982442 by Rolando.Caloca

	DR - Fix warning

Change 3982652 by Rolando.Caloca

	DR - vk - Signal semaphore cleanup

Change 3983917 by Richard.Wallis

	Clone of CL 3974146 converted for mtlpp along with extra mtlpp usage suggestions by Mark Satt:

	Fix for black flickering on first paint with weighted material landscape on Mac.  When using AsyncCopyFromBufferToTexture in Metal we put the blit operation on the prologue encoder - however after a draw call using that resource the copy operation should happen after on the current encoder, this keeps the correct order of operations.

	Added Bool return from various Asnyc renderpass resource requests so caller can decide correct further action.  Updated to include the other async functions.

Change 3984409 by Guillaume.Abadie

	Attempts to make static analysis happy again.

Change 3984435 by Nick.Bullard

	Checking in Performance Test level provided to us by Tor Frick based on UE-44841.
	This has been utilized for checking issues against Aftermath performance impact.
	The Map includes 2 Level Book marks, most testing has been done against Bookmark 1 view, in fullscreen, in game mode

Change 3985087 by Mark.Satterthwaite

	Make sure that the particle scratch buffer is large enough to hold all the data for the curve texture we are rendering to, otherwise a full set of curves will start scribbling memory after 64Kb (the curve texture is 256Kb of data - 512x512x4 as sizeof(RGBAUInt8) == 4). This happens in ElementalDemo.

Change 3985201 by Rolando.Caloca

	DR - Fix bad CopyTexture

Change 3985258 by Mark.Satterthwaite

	Try and detect orientation changes so that we don't blow-up on iOS due to a huge mismatch between the drawable texture for the display and the scene's depth-stencil target. I can't just fiddle with the depth-stencil texture itself without running  the risk of obliterating in-use data and really we shouldn't permit such a mismatch anyway but it is fallout from 3620990.

	#jira UE-55756

Change 3986449 by Rolando.Caloca

	DR - vk - Update & consolidate Vulkan headers to 1.1.70.1
	Consolidate SDK into one

Change 3986571 by Guillaume.Abadie

	Makes PVS-Studio happy again in DOF.

Change 3987039 by Yuriy.ODonnell

	Initial implementation of tracing profiler to show CPU and multiple GPUs on the same timeline. Currently only supported on DX12 platforms.

	Use `TracingProfiler frames=N` console command to trigger a capture of the next N frames. Trace is saved to disk as a JSON file into `Saved/Profiling/Traces` directory.
	Trace file uses Google Tracing format and can be visualized in Chrome built-in profiler (chrome://tracing).

	`r.GPUStatsChildTimesIncluded=1` CVar makes timing scopes hierarchical.
	`TracingProfiler.BufferSize=N` CVar controls the size of the tracing buffer, which may need to be increased for long traces (default is 65k events). Only can be set at startup.

Change 3987074 by Yuriy.ODonnell

	Implemented timestamp calibration on DX11. Calibration is only performed when tracing profiler session starts.

Change 3987160 by Yuriy.ODonnell

	Added thread naming and ordering to the tracing profiler output

Change 3987331 by Mark.Satterthwaite

	Remove the Nvidia hack to retain resource references in command-buffers for UE-46604 as the mtlpp refactor provides stronger resource lifetime guarantees.

	#jira UE-46604

Change 3987754 by Mark.Satterthwaite

	Fix MetalRHI memory reporting in non-default path.

	PR #4568

Change 3988184 by Arciel.Rekman

	Linux: Fix editor OpenGL performance (UE-55960).

	- GetCurrentThreadId() calls became much more frequent with the OpenGL RHIT refactor.
	- We used to only cache that value in monolithic builds, because having per-thread static variables in dynamic libraries is risky due to OS limits.
	- This change adds dynamically-managed per-thread cache for non-monolithic builds.

	#jira UE-55960

Change 3988394 by Rolando.Caloca

	DR - vk - Improve memory mgmt
	- Use 256MB pages for Device heap (or 1/8th if less).
	- Remove texture allocations not going through resource manager

Change 3988405 by Marcin.Undak

	Fix VulkanQuery crash on exit #codereview rolando.caloca #codereview arciel.rekman #rb arciel.rekman

Change 3988567 by Rolando.Caloca

	DR - vk - Support for packed global UBs on pci aperture heap

Change 3988668 by Rolando.Caloca

	DR - vk - Remove old comments

Change 3988956 by Marcin.Undak

	RecordPerformance: added option to skip building/cooking before tests #rb none #codereview arciel.rekman

Change 3989161 by Yuriy.ODonnell

	Static analysis error fix

Change 3989196 by Guillaume.Abadie

	Fixes a crash in light shaft's TAA pass.

	#jira UE-57366

Change 3989207 by Yuriy.ODonnell

	Refactored FRealtimeGPUProfilerFrame to avoid splitting profile events when calculating exclusive times of scopes. This allows tracing profiler to retain the hierarchical view of the data, while keeping CSV and GPU Stat system behavior intact.

Change 3989469 by Rolando.Caloca

	DR - vk - Fix for bad index; fix for bad transition

Change 3989772 by Yuriy.ODonnell

	Implemented timestamp calibration on Vulkan

Change 3990040 by Marcus.Wassmer

	Aftermath enabled by default.
	Removed unnecessary warning for other vendors

Change 3990064 by Mark.Satterthwaite

	Ensure that packed globals are reuploaded when the command-encoder is restarted - don't simply invalidate the existing parameters. This properly handles cases where a single logical render-pass is broken into multiple command-encoders and/or command-buffers - otherwise all shaders must reset all parameters each time. When we move between frames we *do* want to perform a full state reset though as previous frame globals are treated as invalid.

Change 3990080 by Mark.Satterthwaite

	Change the way we invalidate the visibility buffer between command-buffers and command-encoders so that on iOS you can reuse the same buffer within the same command-buffer, but not across more than one. The code provides an exception to this rule when running under the MetalRHI validation tools which can break each draw call into its own buffer.

Change 3990084 by Mark.Satterthwaite

	Get MetalStatistics compiling again.

Change 3990381 by Arciel.Rekman

	Bring back D3D12 in RecordPerformance.

Change 3991113 by Rolando.Caloca

	DR - Fix crash on RHI thread on mobile preview
	- Check RHI objects are not null in the PSO initializer

Change 3991191 by Ryan.Vance

	#jira UE-55952

	Reimplemented instanced stereo for forward lighting cull grid after the srv/ub clean up.

Change 3991343 by Rolando.Caloca

	DR - Copy from 3911492
	UE4 - Disabled parallel mobile bass pass by default. This is experiemental and not known to be useful on any mobile platform.

Change 3991375 by Mark.Satterthwaite

	Proper copyright assignment in the mtlpp debugger header.

Change 3993151 by Daniel.Wright

	Fix RTDF resource transition found by Rolando

Change 3993818 by Rolando.Caloca

	DR - Missed file

Change 3993923 by Krzysztof.Narkowicz

	Fixed crashes inside RemoveSpeedTreeWind() and RemoveSpeedTreeWind_RenderThread().
	FStaticMeshComponentRecreateRenderStateContext didn't flush deferred render updates causing stale RenderData to be left:
	1. Thumbnail manager called SetStaticMesh(nullptr), which added StaticMeshComponent to deferred render updates.
	2. UStaticMesh::Build called FStaticMeshComponentRecreateRenderStateContext and destroyed DenderData, but didn't touch Thumbnail's manager StaticMeshComponent as it was nullptr.
	3. This resulted in a StaticMeshComponent with stale RenderData pointer.

	#jira UE-54544

Change 3994033 by Rolando.Caloca

	DR - vk - Reworked layers & extensions, as we were not doing it properly
	- Remove -vulkanstandardvalidation and -novulkanstandardvalidation as they are not needed anymore

Change 3994275 by Mark.Satterthwaite

	Change to linking against mtlpp via AddEngineThirdPartyPrivateStaticDependencies and marking its header with THIRD_PARTY_* macros in the vain hope that might convince the remote compilation code to distribute the module to the remote machine when building MetalRHI.

	#jira UE-57507

Change 3994365 by Mark.Satterthwaite

	Pilfer some code from the old MetalHeap file to handle calculating texture memory size on older macOS and iOS builds when running with stats or LLM enabled.

	#jira UE-57513

Change 3994382 by Rolando.Caloca

	DR - vk - Some missing locks during image tracking

Change 3994422 by Rolando.Caloca

	DR - vk - Remove bogus shader format

Change 3995530 by Rolando.Caloca

	DR - vk - Fix for crash when validation is enabled

Change 3995531 by Rolando.Caloca

	DR - vk - Fix static analysis

Change 3995532 by Rolando.Caloca

	DR - vk - Added support for r.Vulkan.SaveValidationCache

Change 3995610 by Uriel.Doyon

	Texture Streaming Changes and Fixes:
	- Using the small FOV items (like scopes) now only affect visible primitives (through "r.Streaming.MaxHiddenPrimitiveViewBoost").
	- Static components added after the level is registered in the streaming manager are now handled correctly (fixes the low quality on the chests)
	- Dynamic components do not need to register to the streaming manager anymore.
	- Optimized dynamic component management by removing duplicate entries in the update list.
	- Added a pregarbage collect pass to the dynamic component management to optimize GC handling.
	- Added a budget reset logic whenever the scene requirements change significantly.
	- PIE worlds now have correct visibility information.
	- Fixed possible invalid memory access when processing the streaming manager slave views.
	- Refactored the incremental level texture data build to prevent new components from being unhandled.
	- Removed StreamingManager callbacks for NotifyActorSpawned() and NotifyPrimitiveAttached()
	- Added a StreamingManager callback NotifyPrimitiveUpdated(), to be used whenever a primitive streaming state must be updated.

	#jira none

Change 3995908 by Arciel.Rekman

	Fix compile errors when using new Vulkan queries.

Change 3995990 by Arciel.Rekman

	More compile fixes to new Vulkan queries.

	- MSVC did not catch this, clang did.

Change 3996101 by Rolando.Caloca

	DR - vk - Win32 compile fix

Change 3996323 by Mark.Satterthwaite

	Use the right include path to export the mtlpp headers.

	#jira UE-57507

Change 3996392 by Arciel.Rekman

	Vulkan: fix crash on start when using new queries.

	- CommandBufferManager was not yet set at that point and the code in queries relied on it.

Change 3996585 by Rolando.Caloca

	DR - Slight improvement to GL being black, but just a temporary 'workaround' as it's not correct.

Change 3998806 by Arciel.Rekman

	Fix Linux build (UE-57602).

	#jira UE-57602

Change 3998866 by Arciel.Rekman

	SubwaySequencer: fix old shader platform name.

Change 3998947 by Mark.Satterthwaite

	Silence deprecation warnings in CEF on macOS now that we've moved to 10.12 as the minimum.

	#jira UE-57577

Change 3998951 by Mark.Satterthwaite

	Fix last of the deprecation errors that I am aware of for macOS 10.12.

	#jira UE-57581

Change 3998984 by Mark.Satterthwaite

	Build mtlpp for iOS 9.0 not 9.3.

	#jira UE-57586

Change 3999065 by Rolando.Caloca

	DR - vk - Make sure we use version 1.0.0

	#jira UE-57521

Change 3999071 by Arne.Schober

	DR - [UE-55433, UE-57361] Hack SNORM support in OpenGL by re-interpreting UNORM. Underlying data is always SNORM.

	#jira UE-55433, UE-57361

Change 3999494 by Rolando.Caloca

	DR - Enable r.UnbindResourcesBetweenDrawsInDX11 in debug
	- Clear compute resources when r.UnbindResourcesBetweenDrawsInDX11 is enabled

Change 4000197 by Krzysztof.Narkowicz

	Mesh simplifier - normalize TexCoordWeights using min/max TexCoord range. This fixes precision issues for very big TexCoord values and allows to optimize for all TexCoord channels when channels have values of different magnitudes (e.g. non standard TexCoord data).
	#jira UE-54935

Change 4000305 by Yuriy.ODonnell

	Suppress PVS Studio warning V547 (Expression is always true) related to Aftermath

	Reported issue to PVS team and to NVIDIA. Confirmed false positive, fix coming in future PVS version (v6.24).

	#jira UE-57579

Change 4000853 by Arciel.Rekman

	Linux: fix not calling CrashReportClient (UE-57678).

	#jira UE-57678

Change 4001504 by Rolando.Caloca

	DR - vk - Fix transition

Change 4002460 by Krzysztof.Narkowicz

	Toggle for contant shadow length in word space
	Exposed contact shadows to Blueprints
	#jira none

Change 4002608 by Rolando.Caloca

	DR - vk - Fix static analysis
	- Fix potential debug image tracking crash
	- Comment out unused methods

Change 4002615 by Rolando.Caloca

	DR - vk - Allow r.Vulkan.WaitForIdleOnSubmit to be set at startup (e.g. in ConsoleVariables.ini)
	Previously, if your map needed to UpdateSkyCaptureContents on startup, an ensure would fail if GWaitForIdleOnSubmit was set.
	PrepareForCPURead needs to wait for the command buffer to finish before trying to read the results back, but the wait has already happened when r.Vulkan.WaitForIdleOnSubmit is set. Trying to wait again correctly complains that the command buffer is not in the correct state. So, skip the WaitForCmdBuffer call when r.Vulkan.WaitForIdleOnSubmit is set.

Change 4002640 by Rolando.Caloca

	DR - vk - Missing support for CVarDefaultBackBufferPixelFormat

Change 4002919 by Guillaume.Abadie

	Implements DOF's temporal upsampling pass for better dynamic resolution stability.

Change 4002984 by Guillaume.Abadie

	Integrates Sebastian Aaltonen's ALU optimisations for TAAU.

Change 4003112 by Olaf.Piesche

	Fir for TBB stall (resulting in severe hitches and hangs in the editor with stats active); tested multiple scenarios and encountered no hitches.

	#tests QAGame PerformanceTest and RenderTest map with various stats on and off

Change 4003159 by Mark.Satterthwaite

	Undo parts of changelist 3970553 - the ref-counted pointer approach to returning textures to the pool is not working as expected so we'll remove that. It'll be faster on the CPU without it and everything works thanks to the changes this CL made to the way textures were released.

	#jira UE-57538

Change 4003287 by zachary.wilson

	Adding reflection capture content to TM-LightingScenarios

Change 4003395 by Arne.Schober

	DR - Fix unitzialised value when clicking Go To in the editor
	#jira UE-57048

Change 4003425 by Rolando.Caloca

	DR - vk - Fix for new occlusion queries

Change 4003530 by Arne.Schober

	DR - Disable GPU Benchmark in headless configurations

	#jira UE-57673

Change 4003717 by Rolando.Caloca

	DR - vk - Fix for depth not store, stencil store

Change 4003719 by Rolando.Caloca

	DR - Minor switch to render pass

Change 4003720 by Mark.Satterthwaite

	Don't suballocate private memory buffers on Vega and only Vega as there is something wrong with the blits in those cases but I can't capture a GPU trace to find out what right now (the driver is broken) - could be a bug in my code but this works on Polaris and Nvidia so it will need to be filed as a radar for AMD.
	Remove the FMetalBufferChunk from FMetalBuffer and simply store a pointer to the owning Heap/Magazine allocator. The FMetalResourceHeap now calls a new Release function to return the buffer to the allocator which will be faster on the CPU.

	#jira UE-57659

Change 4003854 by Mark.Satterthwaite

	Undo parts of 3990064 and try a different approach to get the uniforms to upload and remain available in the right places. As the original bug has been lost to time we should keep an eye out for missing buffer bindings by running under the Metal validation layer periodically.

	#jira UE-57576

Change 4004709 by Rolando.Caloca

	DR - Support for D3D 11, 12 & Vulkan for UAVs off Index Buffers

Change 4005149 by Guillaume.Abadie

	Adds shader permutation to avoid clamping input buffer UV in DOF's gather pass.

Change 4005284 by Uriel.Doyon

	Resaved volume texture assets with proper engine version.

	#jira UE-57534

Change 4005286 by Guillaume.Abadie

	Reduces constant setup in DOF's gather pass.

Change 4005359 by Rolando.Caloca

	DR - vk - Fix annoying warning

Change 4005363 by Rolando.Caloca

	DR - Fix android not finding vulkan shaders

Change 4005457 by Rolando.Caloca

	DR - vk - Fix swapchain crash

Change 4005473 by Patrick.Kelly

	UE-57135: Editor crash if set Reflection Capture Resolution to be 64 and New a Default level

	Codde by Daniel
	Tested by Patrick

Change 4005474 by Rolando.Caloca

	DR - vk - Remove glsl code from shaders. Packaged QAGame goes from 176MB to 162MB

Change 4005759 by Krzysztof.Narkowicz

	Fixed a bug, where reflection capture build is called, even though we are in mobile preview mode.
	#jira UE-57743

Change 4005774 by Mark.Satterthwaite

	Update the wave intrinsics to avoid implicit bool->uint conversion that Apple don't like.

	#jira UE-57750

Change 4005974 by Mark.Satterthwaite

	Don't use cubemap array types on iOS Metal as they aren't available on all devices and we need to maintain backward compatibiliy for years to come.

	#jira UE-57083

Change 4006056 by Mark.Satterthwaite

	Remove the use of the PrimitiveType argument from Metal draw calls.

	#jira UE-57822

Change 4006139 by Mark.Satterthwaite

	- Move the render-pass functions into the MetalRHI implementation for later alteration.
	- Implement Index buffer UAVs for Metal - makes them more like vertex-buffers so this is one more step on the road to a unified buffer base-class implementation.

Change 4006215 by Mark.Satterthwaite

	Metal's begin & end render/compute pass API implementation will take some time, but for now make it not depend on the parent stub implementation.

Change 4006394 by Mark.Satterthwaite

	In lieu of a real instruction count just use the number of lines in the "Main" function of the shader as the instruction count for Metal.

	#jira UE-57551

Change 4006493 by Mark.Satterthwaite

	MetalRHI can currently support 4-component formats for Buffer UAVs - this might need some thought in the future as the API evolves but we might as well take advantage while we can.

Change 4006495 by Daniel.Wright

	Integrate from Refactor branch
	* New FMaterialRenderProxy function GetMaterialWithFallback which provides both the FMaterialRenderProxy and FMaterial.  Needed when falling back to default material, so that proxy and material resource match.
	* Local vertex factory uniform buffer

Change 4006851 by Brian.Karis

	Fix for joined charts forming an L to inflate both axii.

	Thanks to Jess Kube of The Coalition.

Change 4006852 by Brian.Karis

	Fix for hard coded reflection capture cube map size. Should fix light static light aliasing in captures

Change 4006918 by Brian.Karis

	New ByteBuffer functionality. Memcpy and scatter upload. Can implement GPU side TArray reflection.

	Not yet used by checked in code. WIP optimization.

Change 4007246 by Guillaume.Abadie

	Creates lower quality permutation for DOF's gathering pass, without Coc based weighting of the samples, and lower number of gathering ring for fast accumulator.

Change 4007291 by Guillaume.Abadie

	Exposes more DOF scalability settings.

Change 4007328 by Guillaume.Abadie

	Optimises DOF's half res only setup pass using gather4

Change 4007627 by Richard.Wallis

	Fix for when Magic Mouse cannot zoom in World Composition editor.  Missing default SNodePanel::OnMouseMove behaviour.  Tested using a classic 2xbutton + wheel mouse and a Mac MagicMouse.

	#jira UE-57030

Change 4007682 by Richard.Wallis

	No video when playing HLS streaming video on Mac.  2 Issues, FPS was zero making duration for video sample buffer nonsense and Video Track dimensions were going to zero on the AVAsset once fully initialized when playing HSL streams.  Now cache relevant details and handle zero frame rate.

	Notes:
	- Caching the frame rate is not as important as we could look it up each time and fix for zero - ignoring that at the moment.
	- Assume we DO NOT want the FrameSize to be the last fetched video frame size from the AvfMediaVideoSampler as I think that is the video quality for streaming video and not the media frame size.
	- Renamed a variable in the AvfMediaVideoSample - was called FrameRate but it was the FrameDuration by that point.

	#jira UE-56734

Change 4007731 by Rolando.Caloca

	DR - Disable byte buffers on non-hlsl based platforms

	#jira UE-57851

Change 4007741 by Rolando.Caloca

	DR - Disable byte buffers on hlslcc platforms

Change 4007782 by Mark.Satterthwaite

	Force Metal shaders, including the stdlib, to recompile.

Change 4007918 by Rolando.Caloca

	DR - vk - Some static asserts

Change 4008404 by Arciel.Rekman

	Do not crash on incompatible Vulkan drivers (UE-57521).

	#jira UE-57521

Change 4008442 by Daniel.Wright

	Better comments on ERHIFeatureLevel expectations

Change 4008494 by Arne.Schober

	DR - moved bDeletedThroughDeferredCleanup before begincleanup to catch cases where the reference is added twice to the array. also removed finishcleanup as all they ever did was deleting the pointer anyway, and it sould be adfded if such functionallity is ever required fom outside of the regular destructor.

	#jira UE-57754

Change 4008730 by Mark.Satterthwaite

	After the most recent changes to handling uniform buffer dirty bits in MetalRHI we should guard against attempts to set an unbound uniform buffer.

	#jira UE-57870

Change 4008949 by Brian.Karis

	Fix compile warning

Change 4008951 by Brian.Karis

	Added LTC LUT textures

Change 4009326 by Guillaume.Abadie

	Compiles out DOF's gathering bokeh simulation on platform other than desktop.

Change 4009380 by Krzysztof.Narkowicz

	Moved area light code before the contact shadows, so contact shadows use representative light's direction.
	Merged all contact shadows shader code.
	Contact shadows keep constant screen space length independent of FoV settings.
	Contact shadows for translucents.
	Contact shadows for eye.

Change 4009555 by Guillaume.Abadie

	Splits DOFCocTile.usf in two.

Change 4009999 by Yuriy.ODonnell

	MallocStomp can now be enabled on certain platforms using '-stompmalloc' command line argument.

	Previously it was necessary to modify MallocaStomp.h and re-compile the engine.
	Currently supported platforms: Win64, Mac, Linux.

	Replaced hard-coded page size with FPlatformMemory::GetConstants().PageSize.

Change 4010288 by Rolando.Caloca

	DR - vk - Fix for vertex streams

Change 4010289 by Krzysztof.Narkowicz

	D3D12 - fixed depth bounds bug, where depth bounds wasn't properly set to [0;1] after disabling.

	#jira UE-57510

Change 4010297 by Rolando.Caloca

	DR - vk - Remove some functions for android

Change 4010315 by Rolando.Caloca

	DR - vk - Remove create info macro

Change 4010451 by Rolando.Caloca

	DR - vk - Reuse samplers
	- Infiltrator goes from 5759 to 24 samplers!

Change 4010627 by Rolando.Caloca

	DR - vk - Fix missing values for tracking swapchain validation

Change 4011924 by Guillaume.Abadie

	Implements tile based early return optimisation on DOF's postfiltering method.

Change 4011941 by Guillaume.Abadie

	Shaves some ALU in DOF's accumulator for LowQuality permutation.

Change 4012093 by Yuriy.ODonnell

	Disable MallocStompOverrunTest() in static analysis config, as it intentionally performs an out-of-bounds access.

Change 4012195 by Rolando.Caloca

	DR - vk - Fix for mobile backbuffer layout

Change 4012202 by Rolando.Caloca

	DR - vk - Don't use staging buffers on UMA

Change 4012467 by Rolando.Caloca

	DR - Remove redundant check

Change 4012486 by Rolando.Caloca

	DR - Fix missing transition

Change 4012518 by Guillaume.Abadie

	Implements fast shader permutation for DOF's TAA pass.

Change 4013084 by Arciel.Rekman

	Fix for Linux clock discrepancy.

	- Causing at least one precision issue, possibly more.

	(Edigrating 4003273, 4012462 from //UE4/Dev-Editor/... to //UE4/Dev-Rendering/...)

Change 4013266 by Uriel.Doyon

	Fixed crash when setting SceneDepthTextureNonMS and not having valid depth buffers in the  SceneContext.

Change 4013626 by Uriel.Doyon

	Fixed crash in the lighting build when creating a blueprint of the ALight and placing a light component in it.
	#jira UE-51672

Change 4013805 by Rolando.Caloca

	DR - Fix more missing transitions

Change 4014128 by Arne.Schober

	DR - Do not create LocalVFUniformBuffer when running without MVF

	#jira UE-57929

Change 4014193 by Uriel.Doyon

	Editing component transforms now invalidate the component's lighting cache.

	#jira UE-48134

Change 4014282 by Rolando.Caloca

	DR - vk - Remove extra validation during dump

Change 4014584 by Uriel.Doyon

	Duplicated static meshes now generate a new GUID to prevent possible issues with lightmass.
	#jira UE-49064

Change 4014604 by Uriel.Doyon

	UStaticMesh  postduplicate now only generates a new GUID if !bDuplicateForPIE.

Change 4015460 by Guillaume.Abadie

	Composes separate translucency within DOF's recombine pass.

Change 4015571 by Guillaume.Abadie

	Refactors tonemapper to use global shader permutation API, that adds permutation for HDR output device rather than dynamic branching that some shader compiler are not very well optimizing.

Change 4015984 by Krzysztof.Narkowicz

	Fixed crash inside DFAO resource allocation, when DFAO viewport has zero area.

	#jira UE-58000

Change 4016056 by Mark.Satterthwaite

	Fix Mac Metal shader compilation of texture cube arrays.

Change 4016062 by Richard.Wallis

	Convert things like Space, Delete, F6 etc to unicode so they display correctly on the Mac menu rather than first letter of word.  Added the default Mac commands to the GenericCommands so we get a Chord overwrite message and stop things like cmd+ q / w / h from getting bound.

	#jira UE-46999

Change 4016109 by Mark.Satterthwaite

	One unified Metal buffer implementation - will make further changes a heck of a lot easier.

Change 4016221 by Patrick.Kelly

	UE-57617: Ensure changing viewmode to ShaderComplexity while in -game

Change 4016238 by Guillaume.Abadie

	Makes clang happy again in Tonemapper.

Change 4016309 by Mark.Satterthwaite

	More *_RenderThread implementations for MetalRHI.

Change 4016414 by Mark.Satterthwaite

	And MetalRHI version of CreateStructuredBuffer_RenderThread...

Change 4016498 by Mark.Satterthwaite

	Don't hold on to the uniform buffers bound to the hull shader when switching to a tessellated draw call as they'll have the wrong buffer layout.

	#jira UE-57930

Change 4017394 by Juan.Canada

	OpenGL: Fixed shading artifacts due incorrect UNORM/SNORM conversions in skin/skincache/computetangent shaderss.
	#jira UE-57691

Change 4017522 by Rolando.Caloca

	DR - vk - Remove unused code path (old mip generation detection)

Change 4017539 by Rolando.Caloca

	DR - vk - Fix for sky lighting mips showing green on AMD

Change 4017542 by Arciel.Rekman

	Moved appCountTrailingZeros to a non-SSE header (fixes ARM64 build).

	- Arguably WITH_SLI shouldn't apply to Linux on ARM but the fact that the function wasn't available is bad on its own.

Change 4017827 by Guillaume.Abadie

	Optimises DOF's scattering cost by a third.

Change 4017835 by Rolando.Caloca

	DR - Only allow a render pass to generate mips for one color render target

Change 4017889 by Mark.Satterthwaite

	Cache all the Metal state objects to avoid hitting the API unnecessarily.

Change 4018251 by Mark.Satterthwaite

	Fix broken rendering on Metal that tracked back to the innocuous looking changes in CL #4006495 (no blame attached - these changes are entirely reasonable) and cause various bugs in QAGame's TM-DistanceFields, ElementalDemo and probably more. Doesn't fix broken SpeedTree rendering :(.

	MetalRHI was allowing uniform buffers to blow away linear texture buffers when the constant buffer has been elided due to dead-code elimination. This problem can manifest without linear textures if the uniform buffer contains both constant data and a resource-table but the shader doesn't use any of the constant data. That's because Metal doesn't separate constant buffers from any other kind of buffer unlike D3D which separates all the slots out - and Metal doesn't provide enough buffers to emulate the D3D arrangement. So far this has only manifested in the MVF + Linear Texture case but a more robust solution will be necessary long term.

Change 4018514 by Guillaume.Abadie

	Implements r.DOF.Scatter.MinCocRadius.

Change 4018553 by Guillaume.Abadie

	Implements r.DOF.Scatter.MaxSpriteRatio to control the budget upperbound of DOF's scattering

Change 4020369 by Yuriy.ODonnell

	Disable MallocStompOverrunTest in all static analysis configs (using USING_CODE_ANALYSIS macro)

	Previously was only disabled for PVS-Studio.

Change 4020620 by Arciel.Rekman

	Fix XboxOne CIS (fallout of appCountTrailingZeros move).

Change 4020949 by Guillaume.Abadie

	Configures DOF in scalability settings.

Change 4021593 by Rolando.Caloca

	DR - vk - Support for Aftermath style api on AMD

Change 4021740 by Rolando.Caloca

	DR - vk - Change log output

Change 4022008 by Uriel.Doyon

	Fixed renderthread stalls when streaming texture mips on low end systems.

Change 4022135 by Rolando.Caloca

	DR - vk - Fix last mip's layout during mip chain creation

Change 4022607 by Jian.Ru

	Speculative fix for a bug where an invalid vertex buffer is deferenced
	#jira UE-56229

Change 4022890 by Rolando.Caloca

	DR - Fix reference count not getting released

Change 4023540 by Mark.Satterthwaite

	Avoid some pointless retain/release calls on Metal Encoders.

Change 4023796 by Marcus.Wassmer

	Tell users they are over the maximum size when allocating very large rendertargets.

Change 4025337 by Yuriy.ODonnell

	Improved use-after-free detection mechanism and physical memory usage of MallocStomp on Windows.

	MallocStomp on Windows will now reserve virtual address space for every allocation and then commit physical pages only to the valid usable part.
	Physical pages will be unmapped on Free, but virtual address space will not be released and therefore will never be re-used.

	Virtual address space is allocated from the OS in blocks of 1GB and then linearly sub-allocated.
	This reduces VA space usage, as VirtualAlloc returns blocks on 64KB granularity even if we just need 4KB. As a small bonus, this also reduces number of syscalls per allocation.

	This dramatically increases accuracy of use-after-free detection, but consumes significant amount of memory for the OS page table.
	Virtual memory limit for a process on Win10 is 128 TB, which means we can afford to keep virtual memory reserved for a long time.
	Running Infiltrator demo consumes ~700MB of virtual address space per second.

	Additionally, committing physical pages only for the usable part of the entire virtual block reduces physical memory usage by ~30% compared to old behavior,
	which allocated and committed entire block of pages via BinnedAllocFromOS and then marks border page as non-accessible.

Change 4026047 by Rolando.Caloca

	DR - Fix test/shipping

	#jira UE-58148

Change 4026150 by Krzysztof.Narkowicz

	Force proper ordering of buffer visualization materials - after tonemapping (so exposure doesn't influence it) and before editor stuff like icons.
	#jira UE-57992

Change 4026226 by Rolando.Caloca

	DR - Fix static analysis

	#jira UE-58150

Change 4026354 by Jian.Ru

	Debug check trying to catch a crash. Only enabled in editor build
	#jira UE-50111

Change 4026655 by Rolando.Caloca

	DR - Fix for static analysis

	#jira UE-58149

Change 4026763 by Rolando.Caloca

	DR - Remove references to defunct CCT to avoid confusing licensees

Change 4027167 by Uriel.Doyon

	Fixed possible out of bound buffer access when serializing with FDuplicateDataWriter.

	#jira UE-56509

Change 4027850 by Jian.Ru

	Prevent log spam
	#jira UE-50111

Change 4029546 by Rolando.Caloca

	DR - Compile fixes

Change 4029624 by Yuriy.ODonnell

	Addressed static analysis errors in MallocStomp

	- VirtualAlloc return value is now explicitly checked.
	- C6250 is suppressed, as VirtualFree does not release address space by design.

Change 4030225 by Yuriy.ODonnell

	Static analysis warning fix: make sure declaration of Sleep() is consistent between Windows headers and TBB

	The complexity with this particular case is that the warning is generated in synchapi.h, which is included by some Windows headers.
	If a module includes TBB and then Windows platform headers, static analyzer will report this warning.
	Suppressing it would require wrapping all instances of Windows header includes in third-party macros.

	Current pragmatic solution is to modify the Sleep() declaration in TBB header to be consistent with Windows and to report the issue to Intel for a permanent fix.

Change 4030440 by Rolando.Caloca

	DR - Fix crash on mobile

	#jira UE-58222

Change 4030570 by Daniel.Wright

	Allow null SRV's in uniform buffers for feature levels that don't support SRV's in shaders

Change 4030618 by Arne.Schober

	DR - missing tangent/normal sign conversion after integration from main
	#jira UE-58224

Change 4031588 by Rolando.Caloca

	DR - vk - Fix compile error when missing vkCmdWriteBufferMarkerAMD

Change 4032145 by Mark.Satterthwaite

	Fix UE-58268 by only emitting the base_instance/base_vertex variables required to fix-up the instance/vertex ID values to match D3D when the Metal version is 1.1 or higher, earlier versions don't support these features.

	#jira UE-58268

Change 4032209 by Rolando.Caloca

	DR - Fix crash on EngineTest: Mesh Batch's UserIndex is not a union anymore

Change 4033178 by Guillaume.Abadie

	Fixes FXAA sampling outside viewports, that was causing black outline on bottom and right edge of the screen when ViewSize != BufferSize, problematic for some screenshot automated test.

	#jira UE-58151

Change 4034489 by Daniel.Wright

	Fixed UStaticMeshComponent modifying its UStaticMesh when undoing a change.  This caused a crash when other static mesh components using the same mesh asset were rendered, since their rendering state was not recreated.  A component should not modify its asset during PostEditUndo.
	 * This behavior has been present for a long time but was previously hidden because only the vertex factory of the mesh asset is cached in static draw lists, not any of its rendering resources (eg vertex declaration).

Change 4035157 by Uriel.Doyon

	Fixed deadlock in the streaming code when running with -onethread.
	#jira UE-58299

Change 4035198 by Rolando.Caloca

	DR - vk - Fix issue when an older SDK was installed, UBT would pick it (should pick the newer of ThirdParty\Vulkan or installed SDK).

	#jira UE-58267

Change 4035730 by Arne.Schober

	DR - Fix missing Fog parameters during LightScattering Injection

	#jira UE-57608

Change 4035843 by Daniel.Wright

	Reimplemented support for EyeAdaptation node in opaque materials

Change 4036837 by Marcus.Wassmer

	Replace some of the screenshots to match new un-tonemapped buffer visualization

Change 4036980 by Rolando.Caloca

	DR - vk - Fix deadlock contention during mem allocation on Linux

Change 4037225 by Guillaume.Abadie

	Fixes jittering selection outline.

	#jira UE-58350

Change 4038056 by Marcus.Wassmer

	roll back changelist 4026150.  breaks a bunch of automated tests by cutting off half the image.
	Change can go back in later with that part fixed also

Change 4038296 by Jian.Ru

	Static analysis fix
	#jira UE-58377

Change 4038402 by Ben.Marsh

	Suppress IncludeTool warnings caused by CL 3998947.

Change 4038514 by Arne.Schober

	DR - Fix case with MVF where instance offset is not supported by the API (in this case only foliage OpenGL and TvOS), usually the buffers are offsetted instead but with MVF we do not use offsetted buffers, therfore the offset needs to be passed into the shader although we are drawing with offset of 0.

	#jira UE-57652

Change 4038747 by Marcus.Wassmer

	Back out changelist 3853645, causing us to lose shadows in the shaderhair test

Change 4040138 by Rolando.Caloca

	DR - Fix compile warning

Change 4041614 by Rolando.Caloca

	DR - vk - Fix for Oculus module

	#jira UE-58267

Change 3810277 by Daniel.Wright

	Ray Traced Distance Field shadows use a two pass tile culling algorithm with no tile max - fixes flickering from tile overflow in dense areas or with a low sun angle.  Costs .2ms on PS4.
	The distance field scene buffers now use float4 on PS4 and Xbox, saves .1ms on PS4.

Change 3817029 by Uriel.Doyon

	Added UVolumeTexture, which use 3D textures. Compressed formats are supported on DX11, DX12, PS4 and XB1.
	Projects targetting OpengGL don't have access to compressed formats (as the implementation has texture tiling issues).
	Add "r.AllowVolumeTextureAssetCreation" set as 0 by default, which controls whether volume texture can be sampled in materials and whether they can be created from 2D texture assets.
	Platform not supporting BC7, will now fallback on RGBA8 instead of DXT to preserve quality, in an attemps to increase usage of BC7.

	#jira UE-32263

Change 3819960 by Michael.Lentine

	Expose UEPhysics Clothing Parameters through UI.

Change 3823401 by Rolando.Caloca

	DR - Add NumQueriesInBatch to RHIBeginOcclusionQueryBatch

Change 3844805 by Arne.Schober

	DR - Increased Intermediate normal of Umodel and Skelmesh from 8bit Unorm Compressed to float. A resave/rebuid/reimport of the meshes is recommended to recover some lost precision.
	Fixed an issue with compressed (packed) normals on the GPU which were off by one integer representation. Also switched from UNORM to SNORM to get a discrete zero representation and removed some mads from all the VertexShaders.

Change 3847283 by Marcus.Wassmer

	Extra fixes from Uriel

Change 3876607 by Rolando.Caloca

	DR - Use render passes when running occlusion queries
	- Removes the RHI(Begin|End)OcclusionQueryBatch API

Change 3903799 by Daniel.Wright

	[Integrate] Pass Uniform Buffers
	* All pass-constant shader inputs should go into the appropriate pass uniform buffer, instead of being set per-draw
	* Moved many per-draw base pass parameters over to the Base Pass Uniform Buffer
	* Opaque and Translucent base pass shaders have different uniform buffers, which allows compile errors when accessing an invalid resource (eg GBuffer in Opaque), instead of silently falling back to GBlackTexture

	Uniform buffers can now contain nested structs with UNIFORM_MEMBER_STRUCT()
	* This allows composing a uniform buffer at a particular update frequency out of many features, with encapsulation of each feature's parameters in a struct.
	* Eg deferred fog uses FFogUniformParameters, but so does translucency in the base pass, where FFogUniformParameters is reused nested inside the base pass uniform buffer.
	* Resources can now be located anywhere in the uniform buffer.  Padding is inserted to the cbuffer representation to keep memory layouts matching.  In the future the cbuffer could be compacted.
	* RemoveUniformBuffersFromSource() which works around HLSLCC lack of struct initializers now handles nested structs

Change 3917500 by Rolando.Caloca

	DR - Change depth bounds so only the enable bit is in the PSO, allow min/max to be dynamically modified

Change 3964907 by Guillaume.Abadie

	Implements RectList topology support in RHI.

Change 3979171 by Mark.Satterthwaite

	Copying //Tasks/UE4/Dev-UERNDR-354-mtlpp to Dev-Rendering (//UE4/Dev-Rendering):

	Rewrites MetalRHI in terms of mtlpp, which is a C++ wrapper library built around Metal's Objective-C API that attempts to reduce overheads and eliminate resource lifetime errors.

	Regarding mtlpp:
	- The mtlpp library uses C++ constructor/destructor and smart-pointer style management of Objective-C retain/release calls to prevent over- and under-release problems.
	- To reduce Objective-C overheads the mtlpp library caches the internal C-function that implements the Objective-C selectors for the most commonly used Metal protocol types and calls the function directly - this avoids objc_msgSend which does this look-up dynamically and thus improves CPU performance slightly.
	- Another advantage is that mtlpp provides infrastructure to extend the Metal API slightly to help improve MetalRHI - the two important aspects are mtlpp::CommandBufferFence which provides a consistent CPU<->GPU synchronisation primitive and sub-buffer allocations from mtlpp::Buffer which allow for far superior memory management.
	- Validation functionality is also provided by mtlpp to detect CPU vs. GPU data races and resource lifetime validation - this is expensive and is thus optional and compiled out from Shipping binaries that should be used when performance is most critical. The validation only works between resource modification and *submitted* command-buffers - anything that is being actively encoded on the CPU is ignored and it remains the responsibility of the application to validate the order of operations when encoding.

	Apple Platform:
	- LLM support which tracks Objective-C objects is enabled only on macOS - we don't have the necessary libraries to intercept and override the internal system calls on iOS.

	MetalRHI:
	- All the types are switched over, (mostly) insuling the external API from the horror of Metal and Objective-C.
	- Buffers are now managed quite differently, small buffers are allocated from a magazine allocator that allocates in fixed blocks from a larger parent buffer, intermediate sized buffers are allocated from a simple heap allocator that wraps a larger buffer and anything of reasonable size (>2Mb) will use the pooled allocator. This *radically* reduces the number of buffer resources, by as much as a factor of 10, because they are now sub-allocated without the need to use MTLHeap or MTLFence so they are performance equivalent to the existing implementation on the GPU and much faster on the CPU. Total memory use is approximately the same.
	- Vertex & index buffer management has been updated to reflect changes in the management and to avoid reallocating buffers which provide a Linear Texture (for SRVs) unless strictly necessary. This ensures that even in cases where a dynamic buffer is updated multiple times in a frame it will still work acceptably well.
	- The Metal ring-buffer implementation is completely different again, this time it can use Managed memory on macOS which allows for much better performance on eGPUs which will be more and more important for Mac.
	- Everyone that needs to wait on a command-buffer fence (rather than a command-buffer itself) now use mtlpp::CommandBufferFence, which prevents race conditions between the different command-buffer handlers (which sometimes execute out of order).
	- LLM tracking should now report the same data as the MetalRHI stats group for buffer & texture allocations - there is no segmentation for Vertex/index/Structured/Uniform allocations in Metal so these numbers are going to be wrong and will need to be rethought.
	- What will be unseen are the number of small but important resource usage fixes that avoid stale resources from being bound to the device after the point at which they become invalid. This should eliminate a class of errors where the GPU uses a resource pointer that is modified by the CPU and was necessary to satisfy the new mtlpp validation code.

	Other:
	- Remove the Metal focused workarounds from the ClothBuffer resource binding and related vertex-buffer SRV - these were put in when MetalRHI/MetalShaderFormat couldn't handle float->uint conversions correctly and they should now.
	- Fix a validation error caused by trying to render a 0-sized scissor rect which is invalid in Metal and simply pointless elsewhere.
	- Consistency of disabling the Manual Vertex Fetch behaviour in shaders.

	#jira UERNDR-354

Change 3979312 by Rolando.Caloca

	DR - Remove bogus bKeepOriginalSurface parameter in CopyToResolveTarget

Change 4005122 by Rolando.Caloca

	DR - Support for PS4 Index Buffer UAVs

Change 4016298 by Guillaume.Abadie

	Fixes DOF hybrid scattering on platforms that supports RectList topology.

Change 4018575 by Guillaume.Abadie

	Optimises DOF's reduce pass when doing scattering compilation.

Change 4020317 by Guillaume.Abadie

	Implements WaveBroadcastIntrinsics.ush.

[CL 4042226 by Marcus Wassmer in Main branch]
2018-05-01 10:36:33 -04:00
Simon Tourangeau
19f8663b5a Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 3972172)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3821754 by Jamie.Dale

	[Python] Class property conversion now goes through NativizeClass/PythonizeClass

	This allows it to coerce from Python wrapped object types

Change 3833107 by Patrick.Boutot

	Added functions to fill an existing DataTable from an existing CSV/JSON file.

Change 3835044 by Aaron.Carlisle

	Exposure for asset_import_data (editor property) and it's functions: extract_filenames and get_first_filename.

Change 3835466 by Patrick.Boutot

	Hide function from Python that need special compile command to be executed by the VM.

Change 3839237 by Jamie.Dale

	Added a way to inspect the full chain of properties that are currently being serialized by an archive

	You used to only have access to the leaf-most property, and while you could use its outer chain to inspect other properties within the same object/struct, you couldn't always get the full chain (eg, if you had an object containing a struct).

Change 3839974 by Jamie.Dale

	Make sure that SerializedProperty is copied correctly, as SetSerializedPropertyChain may set it to something else

Change 3842311 by Jamie.Dale

	Fixing potential null level assert

Change 3842313 by Jamie.Dale

	Updated settings editor to handle external properties

Change 3842316 by Jamie.Dale

	Allowing a console command to be given to GEditor/GEngine even if there's a player

	CL# 1848982 said it was to prevent multiple execution of stat commands, however that no longer seems to be an issue.

Change 3842867 by Jamie.Dale

	Added a way to generate diffs from editor transactions

	The notifications from these diffs are send to UObject::PostTransacted and FCoreUObjectDelegates::OnObjectTransacted.

	These notifications are typically generated when a transaction is "finalized", but can also be generated from "snapshots" (eg, to trap nodes being dragged in the world). They're also generated from normal undo/redo events.

Change 3844428 by Patrick.Boutot

	Move the SetMaterial code from the StaticMeshEditor to StaticMesh to be reusable by script.

Change 3845966 by Jamie.Dale

	Added support for minimal game RPC worlds

	These can be created in the editor and engine and exist to allow RPC communication via Unreal Networking in a way that is sandboxed from any other worlds that may be loaded (like the main game world)

Change 3848844 by Patrick.Boutot

	Expose EComponentMobility to blueprint.

Change 3854616 by Patrick.Boutot

	Add Custom way time step the engine loop. Will be used by the Synchronization of media for enterprise.

Change 3856650 by Jamie.Dale

	Fixed a bug where transaction finalization could miss changes since the last snapshot

Change 3864951 by Patrick.Boutot

	Fix ghost asset in Content Browser when an asset is added and renamed before the RecentlyAddedAssets list had a chance to be processed.

Change 3867158 by JeanMichel.Dignard

	UBT
	- Added the ability for dll programs to export symbols.

	#jira UEENT-541

Change 3872342 by Jamie.Dale

	Merging static analysis fixes from 4.19

Change 3879305 by Jamie.Dale

	Improved the processing of py files from exec commands

	The old logic used to just test if the entire command was a .py file. The new logic extracts out the first token and sees if that's a .py file, and if it is, treats the remaining data as extra arguments.

Change 3879306 by Jamie.Dale

	Added a minimal commandlet for invoking Python scripts

Change 3881631 by Jamie.Dale

	Added basic RTTI to Python meta-data types

Change 3885384 by Jamie.Dale

	[Python] Prevent glue code using reserved names

Change 3888957 by Patrick.Boutot

	In MediaPlayer, only create a PlayerFacade & Playlist when it's not a ClassDefaultObject.
	The MediaPlayerFacade is a MediaTickable. That trigger the tick thread to be awake even if there is no Media playing.

Change 3888961 by Patrick.Boutot

	Fix FInterval::IsValid return type.

Change 3888980 by Patrick.Boutot

	Modification to Media and MediaAsset to support MediaSmith. The TInterval<int64> will be changed into TTinterval<FTimespan> UEENT-947. MediaSampleQueue's critical section will be change into an atomic operation UEENT-948.

Change 3889165 by Patrick.Boutot

	Fix build. Missing include for Timespan. Introduce with CL 3888980.

Change 3889261 by Jamie.Dale

	[Python] Fixing some more name conflicts in generated code

Change 3889504 by Darren.Pegg

	Add option to change PreferredPixelFormat

Change 3891193 by Patrick.Boutot

	Fix build. Missing include for Interval. Introduce with CL 3888980.

Change 3897108 by Patrick.Boutot

	TTinterval use it own traits. Create a Interval traits for Timespan.
	#jira UEENT-947

Change 3899669 by Jamie.Dale

	Fixed Functions sometimes being exposed to Python as if they were Structs

Change 3900692 by Jamie.Dale

	Removed some boilerplate associated with wrapping a basic type to Python

	You can now derive from TPyWrapperBasic to wrap a type that is simply a value copied into Python (see FPyWrapperName and FPyWrapperText for an example)

Change 3901066 by conan.reis

	UE4 editor script bindings (Cobra) and helper functions for version control
	- exposed SourceControl class with common source control methods and associated SourceControlState structure
	- commands have smart file strings that can convert from any of fully qualified path, relative path, long package name, asset path or export text path (often stored on clipboard)
	- commands store any errors in a shared error text object which is optionally printed to the error log
	- renamed some calls across the UE4 codebase to USourceControlHelpers::CheckOutOrAddFile() from USourceControlHelpers::CheckOutFile()
	- included Python test script for source control commands including that auto-creates test files as needed and passes various types of files to test as command line arguments. Any unexpected results displays error messages.

Change 3901388 by Jamie.Dale

	Minimal Slate hooks for Python

Change 3901456 by Jamie.Dale

	Added missing file

Change 3901549 by Jamie.Dale

	Removing some more Windows defines that were causing build issues

Change 3904518 by conan.reis

	Source Control
	- ensured that "check if modified" flag is set whenver getting source control state in USourceControlHelpers::QueryFileState() which was needed when using Perforce source control provider

Change 3905612 by Francis.Hurteau

	Optimize RemoveDuplicates somewhat using a TSet
	#jira UEENT-217

Change 3912626 by Jamie.Dale

	Fixed ShouldExcludeDerivedClasses option not working

	RecursiveClassesExclusionSet requires a base ClassNames entry to operate on when filtering.

Change 3917739 by Jamie.Dale

	Output Log suggestions list is now clamped to the work area width of the monitor that hosts the widget

Change 3917744 by Jamie.Dale

	Changed generated code to reference the UProperty and UFunction directly, rather than constantly look them up by name

	Names were originally used because UHT couldn't access the objects when it registered the glue code, but now that we generate at runtime via reflection, we already have the relevant objects available, and caching them the glue structs helps performance at both generation time and runtime.

Change 3918832 by Jamie.Dale

	Removed field iteration from Python function calls

	We now cache the input and output parameters for all function calls (methods, get/set, and delegates) and use this rather than iterate the struct fields.

Change 3920648 by Patrick.Boutot

	Remove the bottom right part of the windows border of the grabbed frame when in the editor. Tested in the standalone, windowed and full screen.
	Add option to request a FlushOnDraw on the viewport. Flushing in SDI output flow decreases the performance by ~10ms. SDI output is synchronized and the engine tick follows that synchronization.

Change 3921396 by Jamie.Dale

	Split up the generated type data to correspond to the type being wrapped

	A lot of types can just use the minimal set, but classes and structs have some extra data.

Change 3921619 by conan.reis

	- add delegate to FSourceControlWindows::ChoosePackagesToCheckin() that gives info for result, result description, files added, files checked in and flag indicating whether files were checked out again.
	- also added result info to FSourceControlWindows::PromptForCheckin()

	#jira UE-55255

Change 3921624 by conan.reis

	Removed Source Control common files from pre compiled header
	- main changes are in UnrealEdPrivatePCH.h, UnrealEdSharedPCH.h, SouceControlWindows.h and the added SouceControlWindows.cpp
	- remaining files have includes changed to accomodate

Change 3921958 by conan.reis

	Fix attempt for incude file dependency needed by some build configurations (likely PCH disabled) caused by CL3921619

Change 3922740 by conan.reis

	Included SourceControlOperations.h and SourceControlHelpers.h back in ISourceControlProvider.h though it does not need them since other files that were including ISourceControlProvider.h have come to expect their inclusion.
	They were previously removed in CL3921624

Change 3923375 by Jamie.Dale

	Added optimized FString <-> icu::UnicodeString conversion for platforms using UTF-16 native strings

Change 3926547 by Jamie.Dale

	Added support for struct method "hoisting"

	This allows you to tag a helper function that takes a struct as its first argument with the ScriptMethod meta-data (optionally providing a new name) to "hoist" that helper function to be a method of the struct it operates on when wrapped for Python.

Change 3927050 by conan.reis

	Source control - ensured that  ISourceControlProvider::Execute(FConnect, EConcurrency, FSourceControlOperationComplete) delegate is called on initial connection even if it fails immediately. Modified Perforce, Git and Subversion source control providers

	#JIRA UE-55256

Change 3929268 by conan.reis

	- fixed case in Perforce source control code where the server available flag was set even when the server was not successfully connected
	- removed Perforce error message about file folders outside of the workspace client mappings
	- clarified comments for ISourceControlProvider::IsEnabled() and ISourceControlModule::IsEnabled()

	#JIRA UE-55254

Change 3931024 by Rex.Hill

	Expose FBX and Texture import to python

Change 3931273 by Rex.Hill

	Hide re-import slate notification pop-up during python automated asset import

Change 3931368 by Jamie.Dale

	Stopped bools coercing to numeric types in Python nativization

Change 3931374 by Jamie.Dale

	Added support for struct math operator "hoisting"

	This allows you to tag a helper function that takes a struct as its first argument with the ScriptMathOp meta-data (providing a potentially semi-colon separated list of operators to map to) to "hoist" that helper function to be a math operator of the struct it operates on when wrapped for Python.

Change 3932586 by Rex.Hill

	Removed file read into unused memory buffer during Fbx import

Change 3934308 by Jamie.Dale

	Added a public interface for the Python plugin

	Very basic, just lets you query if Python is compiled in, and lets you execute Python commands like you would via the Output Log.

Change 3935088 by conan.reis

	- Added info/warning and error message storage to all the source control operation structures so additional information can be made available.
	- Added ISourceControlOperation::GetResultInfo() which returns the modified control structures (mentioned above) with appended info/warning messages and error messages and implemented its use in all source control operations in Perforce, Git and Subversion.

	#JIRA UE-55257

Change 3936668 by Rex.Hill

	#jira UE-55985
	Avoid re-allocation of memory buffer holding file bytes during asset import

Change 3940596 by Rex.Hill

	#jira UE-55989 Optimize skeletal mesh import performance scaling

	Overlapping vertex check was O (N^2)
	100k vertex mesh took ~15 seconds to perform overlap step now takes 0.023 seconds

Change 3942629 by Rex.Hill

	#jira UE-55995 Read fbx file only once during import

	Fixes a memory leak of FbxScene and reduces wait time during import.

Change 3942884 by Rex.Hill

	Python asset import can now customize destination asset name

Change 3946278 by Jamie.Dale

	Added stricter conversion for math operator arguments

	PyConversion now returns FPyConversionResult rather than bool, which will tell you not only whether a conversion succeeded or failed, but also whether type coercion was applied during the conversion.

	This allows the operator stack evaluation to run a first pass looking for an exact argument match, before falling back to a coerced match if available. This allows operators to apply correctly to coerced types (eg, int vs float overloads).

Change 3948455 by Jamie.Dale

	Added generic Tick function to FPythonScriptPlugin

	This can also handle init logic for after the engine is fully initialized

Change 3948888 by Jamie.Dale

	Added settings for the Python plugin

	You can now define start-up scripts to execute once the engine is initialized, additional system paths for Python, and whether you want to enable developer mode (which will enable things like deprecation warnings).

Change 3948982 by Jamie.Dale

	Fixed Python 3 build error caused by CObject being removed in Python 3.2

Change 3949614 by Francis.Hurteau

	Create a camera cut track from the camera switcher camera index animation curve when importing a fbx in sequencer
	#jira UEENT-1053

Change 3950829 by Rex.Hill

	Update error message to be more specific when ENGINE_API keyword is found before 'static' keyword for a UFUNCTION

Change 3953452 by Jamie.Dale

	Fixed some dependencies

Change 3953645 by Jamie.Dale

	Fixed Python parameter packing treating bool output paramers as potential return values

	void GetState(bool& OutState) would have previously triggered the code for packing output for a function that returns a bool.

Change 3953850 by Jamie.Dale

	Fixed doc string generation for a function with multiple output paramters and no return value

Change 3954279 by Jamie.Dale

	Initial support for exposing deprecated properties and functions to Python

	This handles properties and functions that are directly deprecated. We still need to handle the cases where they're renamed and a redirector is left.

Change 3954922 by Rex.Hill

	Expose UnloadPackages to python

Change 3955209 by Jamie.Dale

	Initial support for exposing deprecated classes to Python

Change 3955248 by Jamie.Dale

	Added a way to load Unreal modules via Python

	unreal.load_module("modulename")

Change 3955561 by Rex.Hill

	Expose asset export to python

Change 3956068 by Rex.Hill

	Linux compile fix.

Change 3960449 by Rex.Hill

	Fix automated test using bCombineMeshes

Change 3960495 by Patrick.Boutot

	Add a temporary menu to show the MetaData of an asset.
	The menu will need to be updated to have a look and feel of the Detail View and support edition at one point.

Change 3961599 by Rex.Hill

	Reduced peak memory during import of meshes related to duplicate vertex tracking

Change 3962104 by Rex.Hill

	Disable import mesh overlapping corners memory optimization to because it can change uv generation

Change 3962507 by Rex.Hill

	Fix uv generation

Change 3965285 by Rex.Hill

	Add support for FBX export as ASCII
	#jira UE-56465

Change 3965287 by Rex.Hill

	Forgotten file, fbx export as ascii

Change 3966772 by Simon.Tourangeau

	Fix MaterialExpressionFunctions for ExternalTexture support

Change 3967014 by Jamie.Dale

	Added a way to get the CDO in Python

	Wrapped objects now have a get_default_object class method

Change 3967151 by Jamie.Dale

	Added stats to track Python generation time

Change 3968006 by Simon.Therriault

	Media Samples

	- Removed Locks and Min/Max SampleTime from queues
	- Added methods to fetch NextSampleTime and SampleCount in queues
	- Added MediaSource base class for players that want to be time synchronized

	#jira UEENT-948

Change 3969119 by Patrick.Boutot

	Add delay functionnality to MediaPlayer to delay the frame by some time. It will allow more than one player to be start at the same time, played at the same frame but offset in relation to each other.

[CL 3972277 by Simon Tourangeau in Main branch]
2018-03-29 13:32:35 -04:00
Arciel Rekman
4141229f52 Copying //UE4/PQ-Staging@3957047 to Dev-Main (//UE4/Dev-Main)
#rb Ben.Marsh
#fyi Josh.Adams
#lockdown Nick.Penwarden

[CL 3957060 by Arciel Rekman in Main branch]
2018-03-21 11:09:41 -04:00
Ben Marsh
607d0b3363 First batch of fixes for PVS Studio warnings (all benign, just disabling).
#rb none
#lockdown Nick.Penwarden

[CL 3951777 by Ben Marsh in Main branch]
2018-03-17 13:23:07 -04:00
Max Chen
5183f7a250 Renamed UAutomatedLevelSequenceCapture's StartFrame and EndFrame to CustomStartFrame/CustomEndFrame to reflect that it is user-overriden. This will also resolve upgrade issues due to the variable datatype changing.
#rb matt.hoffman
#jira UE-56189
#lockdown nick.penwarden

[CL 3950132 by Max Chen in Main branch]
2018-03-16 13:01:44 -04:00
Max Chen
ba80165ab6 Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3801826 by Max.Chen

	PR #4304: Level Sequence crash fix - Guarded against dereferencing null componen. (Contributed by DSDambuster)


Change 3801828 by Max.Chen

	PR #4302: Movie Scene Visibility Template unitialised variable, causing random . (Contributed by DSDambuster)


Change 3801837 by Max.Chen

	Sequencer: Delay spawning/construction for convert to possessable. This fixes a bug where property values would be lost when
converting back and forth from possessable to spawnable.

	#jira UE-52400

Change 3801841 by Max.Chen

	Sequencer: Make spacer nodes not selectable.

	PR #4194: Improvements to Sequencer (Contributed by projectgheist)

	#jira UE-53117
	#jira UE-52139

Change 3804183 by Max.Preussner

	MediaAssets: Added missing lock in media sound component

Change 3805414 by Max.Preussner

	MediaAssets: Setting valid GUID when initializing media texture resource

Change 3819578 by Max.Chen

	PR #4370: When enabling the "MovieCapture", do not turn off the Stereo-3D display. (Contributed by yehaike)

	#jira UE-53647

Change 3823414 by Max.Chen

	Curve Editor: Lock down the first and last keys in the redundant keys removal range so that they're unaffected.

	#jira UE-53591

Change 3826406 by Max.Chen

	Sequencer: Move OnStartedPlaying() to within first update in UpdateTimeCursorPosition(). This fixes an issue where setting the
hud/player visibility was getting stomped on later.

	#jira UE-52772

Change 3827044 by Max.Preussner

	MediaAssets: Added sprite visualization to media sound component

	#jira UE-53594

Change 3827988 by Max.Preussner

	MediaPlayerAssets: Fixed Media Texture is not linked to Media Player when created together

	#jira UE-53532

Change 3828506 by Max.Preussner

	MediaPlayerEditor: Added attenuation visualizer for media sound components

	#jira  UE-53594

Change 3832590 by andrew.porter

	EngineTest: Added a keep state check in Property Animation sequencer test

Change 3833053 by andrew.porter

	EngineTest: Adding Hierarchical Bias test

Change 3835683 by andrew.porter

	EngineTest: Adding UMG Animation screenshot test

Change 3836076 by Max.Chen

	Sequencer: Fix audio volume and pitch multiplier deprecation.

Change 3836230 by andrew.porter

	EngineTest: Adding Sequence Bone Position automation test

Change 3836347 by Max.Chen

	Sequencer: Fixes to shot name parsing.

	When a shot doesn't contain a shot number, assume, [ShotName]_[TakeNumber].
	When duplicating a shot, put the new shot in the same path of the original shot, so that the take numbers will increment
properly.

	#jira UE-51868

Change 3836552 by Max.Chen

	Sequencer: Sub section now has a takes menu

Change 3838094 by Max.Chen

	UMG: Fix template finish not getting called on stop. This fixes a bug where sections aren't restored when finished.

	#jira UE-52285

Change 3838708 by Max.Chen

	Sequencer: Add notification when the blend type is changed.

	#jira UE-54046

Change 3840295 by Max.Chen

	Sequencer: Fix copy/paste crash for lights

	#jira UE-54084

Change 3840957 by Mike.Zyracki

	Added Show Only Keyable and Show Only Animated to the filter list in the property editor.

	Added IsPropertyAnimated to IDetailKeyframe Interface which already had support for showing properties which are keyable (which
is used for the key icon next to the properties.).  Could have created another interface but then would have had to mimic the sequencer
binding, releasing also, so this seemed best way.

	One issue still left is that custom built detail items currently don't store associated properties(usually) and so certain
properties, in particulalry transforms, won't show up as keyable or animated.  Note this also shows up with the keyable icon not showing
up next to transform tracks, and other filters like Show Only Modified not working with transforms/customs.  Not sure best way to tackle
this.

	#jira UESEQ-328

Change 3841756 by Max.Chen

	Sequencer: Fix unbound possessable components when pasting spawnables.

	#jira UE-54104

Change 3843950 by andrew.porter

	EngineTest: Renaming LevelStreaming tests/content to LevelVisibility

Change 3844082 by Mike.Zyracki

	Missing file for animated filter in property editor.
	When finding if a track is animated we need to find it but we can't easily induce the MovieTrack class for any particular
property. So we don't set a class for it and just search by it's ID and name.

	#jira UESEQ-328

Change 3846902 by Max.Preussner

	ImgMedia: Fixed image media player never finished initialization if loading failed

	#jira UE-54247

Change 3849820 by Mike.Zyracki

	Reassigning deleted widgets didn't work since the menu extender mechanism needs a valid UObject in order to perform an operation
on it. So to fix we replaced GetObjectBindingContextMenuExtender in WidgetBlueprint with new delegate mechanism
(OnBuildCustomContextMenuForGuid) that supports FGuid in addition to UObjects which is needed to handle re-binding deleted widgets. Note
that the default sequencer hacks this for replacing deleted actors in SequencerObjectBindingNode to check to see if a LevelSequence is
active. We could move to this mechanism there also.

	#jira UE-53163

Change 3852211 by Max.Chen

	UMG: Indicate name of the property that is not bound.

	#jira UE-54350

Change 3854120 by Max.Chen

	Sequencer: Fix sibling folders being allowed to have the same folder name.

	#jira UE-54363

Change 3854627 by Max.Chen

	Sequencer: Step to next/previous key should work for all tracks if there aren't any selected.

	#jira UESEQ-391

Change 3855825 by andrew.porter

	EngineTest: Adding animation blending automation test

Change 3855950 by andrew.porter

	EngineTest: Adding correct expected valuues to animation blending test

Change 3856237 by Matt.Hoffman

	UESEQ-336 - Sequencer Track Reordering
	Adds the ability to re-order Master Tracks, Folders and Object Bindings within sequencer hierarchies (including UMG). Adds the
ability to do a one-off sorting of the content under the old sorting behavior if the user wants to reset their layout to how it was
under legacy behavior.

	Modifies SequencerTrackNodes, SequencerFolderNodes and SequencerObjectBindingNodes to handle CanDrop/OnDrop for above, below and
ontop of.

	Fixes a Slate Issue that forcibly expanded a TreeviewRow if an item handled OnDrop. Slate will now only forcibly expand the row
if the item says the drop happened ontop of the item, and not above or below it like it previously did.

Change 3856503 by andrew.porter

	EngineTest: Adding automation test for using animation blueprint with blend multi node in sequencer

Change 3857875 by Max.Chen

	Sequencer: Assign the sequence id after the template is compiled.

	#jira UE-54462

Change 3858344 by Max.Chen

	Sequencer: Prevent Goto and Transform boxes from overlapping by allowing them to be visible at the same time in an autosized
horizontal box. Also, added close button to the goto box.

	PR #4425: Prevent Goto and Transform boxes from overlapping in Sequencer ... (Contributed by projectgheist)


	#jira UE-54210

Change 3860566 by andrew.porter

	MediaFrameworkTest: Set the option to index 0 for the audio and video track list by default

Change 3860654 by andrew.porter

	EngineTest: Enabling Camera Cut + FOV test

Change 3860981 by andrew.porter

	EngineTest: Updating skeletal mesh tests with a delay after set playback position

Change 3861256 by Max.Chen

	Sequencer: Add all bindings if none selected.

	#jira-54440

Change 3862154 by Andrew.Rodham

	Added TimeManagement module

Change 3862424 by andrew.porter

	EngineTest: Turned on the test Bone Positions with Blend Multi Node

Change 3862573 by andrew.porter

	EngineTest: Adding test to compare bone positions in a sequence that is blending an animation that is using an AnimBP

Change 3865117 by Max.Chen

	Sequencer: Stop auto scroll on mouse release of movement.

	#jira UE-31212

Change 3865303 by Max.Chen

	Sequencer: Add drag and drop transactions

	#jira UE-54662

Change 3865304 by Max.Chen

	Sequencer: Fix crash when an actor factory is not found.

Change 3865361 by Max.Chen

	Sequencer: Don't change the camera/shot lock button when popping out of a sequence.

	#jira UE-54665

Change 3865412 by Max.Chen

	Sequencer: Determine whether a transform track is for a camera by using the spawned object or template

	#jira UE-54666

Change 3865685 by Max.Chen

	Sequencer: Clear autoscrub offset when stopping autoscroll

	#jira UE-31212

Change 3865886 by Max.Chen

	Sequence Recorder: Log an error if the number of frames changes while recording. This can happen if the skeleton changes while
recording.

	#jira UE-48715

Change 3866925 by Andrew.Porter

	MediaFrameworkTest: Changing the current PNG test video image sequence to 1024 x 576

Change 3867705 by andrew.porter

	QAGame: Adding Audio Sort Sequence to dev folder

Change 3867890 by andrew.porter

	QAGame: Adding a sequence for testing a sorting crash to my dev folder

Change 3872628 by Max.Chen

	Movie Scene Capture: Split delay before warmup into split delay before shot warmup so that there's separate controls for when
the movie scene capture warmups up vs. shot boundaries.

Change 3873131 by Matt.Hoffman

	UE-54732 - Crash reordering a folder with a track.
	This was caused by folders being the only type of track to check if someone was putting a parent track into a child track.
Object Binding tracks and Tracks now check as well so that you can't use the above/below drop targets to add parents as children.
	This also fixed a typo in the localization keys.

	#jira UE-54732

Change 3873301 by Mike.Zyracki

	Added ability to support continous euler angle changes when changing rotations, in particularly with the rotation gizmo's. To do
this we effectively added a form an of 'euler filter'(https://en.wikipedia.org/wiki/Euler_filter) to find the closest euler angle to the
current euler angle.
	Three functions were added to FRotator to make this possible, one to get the euler angle that's has the same rotation as it, one
to get the difference between two euler angles via Manhattan distance and a third using the previous two to choose a Rotator value
that's closest to it. We then use these functions before calling UComponent::SetRelativeRotation to make sure we use the correct Euler
after the Quat conversion. We also no longer limit(bound) the euler angles to -180,180, which is obviously necessary to avoid flips.

	I also changed how we caluclate yaw and roll when pitch is -90 or 90 to make it the standard approach of zeroing out roll and
just setting yaw.  Main reasons are the previous implementation had precision issues so things like 180, 90, -180 would show up due to
numbers being nearly zero but negative,(this would break any smooth interpolations), and this facilitates having a 'gimbal' rotation
mode (like Maya, Blender etc..) if we ever want that also.  If needed we could keep the previous implementation but would  need to add
some FMath::IsNearlyZero checks, with less performance.

	Note we only do this special filtering when applying delta's to actors or components in the editors, which then call
UComponent::SetRelativeRotationExact, which is a new function to foces the RelativeRotation to be equal to the new rotation. This allows
us to store un-nomalized Rotators at the cost that the RotationCache may be broken. We didn't change any of the other UComponent
functions that set rotations (via Quats or Transforms) so they will still be bounded and unwound.

	In SetInternalWorldLocationAndRotation we only set the rotation if the rotation has changed, which fixes the rotation getting
changed and re-normalized if just translate happens.

	In TransformTrackEditor, we correclty use the bUndwing flag and in MovieScene3DTransformSection there was an un-needed winding
check there, it will be unwound earlier if needed, which happens if Sequence Recording is happening. Max we should talk about what to do
about this .

	Note the euler angle drag via the widget is still bound to 0-360. I think we should just unbound that now since the rotations
value are now unbound.

	This review now includes fixes suggested by Zak.

	#jira UE-UE-22228

Change 3873483 by Matt.Hoffman

	Sequencer Tracks can now be inserted above the spacer at the bottom of the tree.

	#jira UE-54706

Change 3873899 by Max.Chen

	Sequencer: Add section selection throbbing

Change 3873908 by Max.Chen

	Movie Scene Capture: Added logging per frame

Change 3873924 by Matt.Hoffman

	Adds the ability to store Sequence Recorder setups into profiles that stay with the map and can be re-loaded later. Profiles
store the Actor Recordings so the settings for each actor should carry with them.

	#jira UESEQ-339

Change 3874726 by Matt.Hoffman

	Disable drag-and-drop targets on spacers that come between rows in Sequencer. This prevents extra drag/drop targets showing up
between each row.

	#jira UE-54706

Change 3874862 by Matt.Hoffman

	Audio Track no longer gets reordered when adding sub-audio tracks, as sub-tracks are no longer counted towards the sorting order
index when normalizing indexes.

	#jira UE-54727

Change 3875905 by Matt.Hoffman

	Disable Fade Track UI if a fade track already exists in the sequence.

	#jira UESEQ-393

Change 3876163 by Max.Chen

	Sequencer: Swap the camera object to the camera component's owner if it's not the same.

	#jira UE-54874

Change 3876971 by Andrew.Porter

	EngineTest: Moved Media Player Seek test to new folder. Also enabled the test with new ground truth image.

Change 3877040 by Max.Chen

	Cine Camera: Split camera properties to two groups, "Camera Options" and "Camera Settings". The cine camera now hides properties
in the "Camera Settings" group so that properties like bConstrainAspectRatio (in the "Camera Options" group) can be visible.

	#jira UE-54192

Change 3877763 by Max.Chen

	Curve Editor: Fix curve changed on end drag so that only curves that had keys/tangents that were changed receive notification,
otherwise all loaded curves were getting notified that they were changed.

	#jira UE-54951

Change 3878234 by Matt.Hoffman

	Disable "Drop Below" targets for Sequencer Tree nodes to prevent a confusing UX issue where dropping underneath a Object Binding
Node puts it after the object binding node but the UI looks like it's inserting it inside the Object Binding node.

	#jira UE-54743

Change 3879359 by Mike.Zyracki

	If a track is inactive we dim it a bit which seems to be the UE4 way to show inactive or disabled state. We changed the active
logic so that all subtracks need to be inactive for the track to also be inactive(instead of all active for active). This conforms to
how the active state actually works, e.g if you have two sections and only one is active the track is still active above it.

	#jira UESEQ-388

Change 3879462 by Max.Chen

	Sequencer: Allow dragging onto a particular row which would move out any overlapping sections to make space for the newly
created section. Newly created sections are now selected and throbbed to draw attention to themselves.

	#jira UE-54664

Change 3879464 by Max.Chen

	Sequencer: Fixed overlapping ranges being inserted into the evaluation field during compilation

	  - The issue was that track segments that had been combined with adjacent segments (due to them being identical) would
potentially cause a subsequently compiled frame to overlap with a range that had already been inserted into the evaluation field.
	  - The insertion code previously asserted that only minor overlaps were catered for (due to fp rounding errors) and assumed
that a supplied range could not entirely contain any other range in the field.
	  - The solution is to supply the insertion time along with the range to know exactly where the data should live in the field,
and crop the range to the maximum allowable space between adjacent ranges.

	#jira UE-54922

Change 3879590 by Matt.Hoffman

	Items that are now added to the Sequencer via the "+Track" menu will be selected after being added.
	Items can now be added inside of folders instead of just to the root level.

	#jira UE-27397

Change 3879612 by Mike.Zyracki

	Display Nodes with no children are always active.
	#jira UESEQ-388

Change 3879730 by Matt.Hoffman

	Sequence Recorder's actor recording groups now remove items from the group when removed via the UI.

	#jira UESEQ-339

Change 3880256 by Mike.Zyracki

	Fix issue with inactive display with folders and other track nodes.
	#jira UESEQ-388

Change 3883491 by Max.Chen

	Fix issue where tick is skipped due to last ticked pose isn't cleared after AnimInstance changes.

	Copy from Release-4.19

	#jira UE-51323

Change 3883603 by Max.Chen

	Movie Scene Capture: Add option toggle disable screen percentage. By default this is on (no change in current behavior).

	#jira UE-51898

Change 3885074 by Max.Preussner

	MediaCompositing: Resetting media texture & freeing resource on section end; removed dead code

Change 3887220 by Max.Preussner

	MediaCompositing: Defaulted media section duration to 1 sec (since we do not know the actual duration in most cases)

Change 3887478 by Matt.Hoffman

	Sequences now show [Inactive] in their title bars when they're disabled. This helps communicate why a sequence isn't being
evaluated.

	#jira UE-51469

Change 3888985 by Max.Chen

	Movie Scene Capture: Clamp HDR Compression Quality between 0 and 1.

	#jira UE-55136

Change 3893519 by Max.Chen

	Sequence Recorder: Clarified tooltip for bRecordNearbySpawnedActors - spawned actors will still be recorded if they match the
ActorFilter.

	#jira UE-55238

Change 3893546 by Max.Chen

	Sequence Recorder: If a selected actor already has a recording, add a blank recording.

	#jira UE-55239

Change 3894044 by Max.Preussner

	MediaCompositing: Added support for seeking into a media section

Change 3894310 by andrew.porter

	MediaFrameworkTest: Adding Img media sources for 1080 and 2160 ravent test content

Change 3894426 by Max.Preussner

	MediaAssets: Letting media textures with AutoClear retain their clear color when player is reset

Change 3895717 by Max.Chen

	Sequencer: Null checks to prevent crash when saving the default state of a spawnable

	#jira UE-55304

Change 3897388 by Max.Chen

	Sequencer: Don't update current time to be within the view range when stepping into a sequence.

	#jira UE-55322

Change 3897452 by Max.Chen

	Audio: Fix crash when trying to record audio without any active capture devices. Log warning if the number of input channels is
not 1 or 2.

	#jira UE-55223

Change 3897619 by Max.Preussner

	MediaCompositing: Removed commented out code

Change 3898072 by Max.Chen

	Sequencer: Override the animation asset in the player state if it doesn't match the animation asset that's being evaluated.

	#jira UE-55328

Change 3898272 by Max.Preussner

	MediaPlayerEditor: Made slate brush constants static

Change 3898704 by Max.Chen

	Sequencer: Skip if the binding id's sequence can't be found.

	#jira UE-55337

Change 3899855 by Max.Preussner

	MediaCompositingEditor: Added cache state visualization to media track

Change 3900300 by Max.Preussner

	MediaCompositingEditor: Added loop indicators to media sections

Change 3900694 by Max.Preussner

	ImfMedia: Looping cache only when player is looping

Change 3900892 by Max.Preussner

	Stats: Added stats category for media framework

Change 3900954 by Max.Preussner

	MediaCompositing: Don't evaluate at the end of media section

Change 3901348 by Max.Preussner

	Core: Replaced TLruCache autos for better readability

Change 3901655 by Max.Preussner

	ImgMedia: Added more perf stats to EXR reader

Change 3901972 by Max.Preussner

	MediaAssets: Added getter for media player in media sound components

Change 3902233 by Max.Preussner

	MediaAssets: Enabling media textures to receive samples right after player is assigned

Change 3902238 by Max.Preussner

	MediaCompositing: Working around init/shutdown idiosyncracies in sequencer

Change 3904045 by Max.Chen

	Sequencer: Fix copy/paste crash. Only process UMovieSceneCopyableBinding and objects that can be spawned by the movie scene
spawn register.

	#jira UE-55314

Change 3905605 by Max.Chen

	Sequencer: Restrict spawnables from being created if they have a ClassWithin that UMovieScene is not a child of.

	#jira UE-55429

Change 3906550 by Max.Chen

	Sequencer: Add media track icon

	#jira UE-55480

Change 3907101 by Max.Chen

	Sequence Recorder: Fix bugs related to not recording a level sequence. There were certain assumptions that creating a level
sequence meant that sequence recording was in progress. This is not always the case - the recorders can record animation assets and not
create a level sequence.

	Changed the notion of IsRecording() to having at least one actor recording that is recording. Countdown timer, recording
displays, etc should function if IsRecording() and not based on whether a level sequence is created.

	#jira UE-55485

Change 3907247 by Max.Chen

	Sequence Recorder: Fix crash not removing PrepareToCleanseEditorObject delegate. Repros when opening sequence recorder, closing
it, and then opening or creating a level.

Change 3910343 by Max.Preussner

	Core: Added async helper for executing functions on a given thread pool

Change 3910346 by Max.Preussner

	ImgMedia: Added separate thread pools for loading/decoding and deleting image frames

Change 3910829 by Max.Preussner

	Profiler: Increased visible range of profiler graph

Change 3910841 by Max.Preussner

	MediaCompositing: Displaying asset name instead of full media source path in media section

Change 3910870 by Max.Preussner

	ImgMedia: Using deallocation thread pool only in debug builds

Change 3919642 by Max.Chen

	Sequence Recorder: Clarify active tooltip

	#jira UE-55661

Change 3919660 by Max.Chen

	Sequencer: Sequence template source signatures are now also compared to catch the case where a sub-sequence asset has been saved
but not modified

	  - The following sequence of events exposes this issue:
	    - Create a master sequence with a single shot that spawns a cube
	    - Add this sequence to a level and set it to auto-play
	    - Save everything and restart
	    - Resave just the inner shot asset without opening it
	    - PIE
	    - The inner shot never spawns its cube because its template was wiped on save, but its signature never changed. Since the
master sequence previously didn't check the template source signature, it ends up trying to evaluate an empty template.

	#jira UE-55626
	#jira UE-55490

Change 3921825 by Max.Chen

	Sequencer: "Run Construction Script in Sequencer" is off by default for blueprints but on for Sequencer. This allows the content
author to switch it on for specific blueprints and sequencer will be default, run those with construction scripts enabled.

Change 3922232 by Max.Chen

	Sequence Recorder: Reset countdelay on stop.

	#jira UE-55755

Change 3922306 by Max.Chen

	Sequence Recorder: Don't automatically mark transforms to be recorded by sequence recorder. Instead, log a warning if the user
toggled it off to warn that the resulting animation might not match gameplay.

	#jira UE-55758

Change 3922912 by Max.Chen

	Sequence Recorder: Fix refresh next sequence name

	#jira UE-55757

Change 3927654 by Max.Chen

	Movie Scene Capture: Added format mapping for the name of the current camera

	#jira UE-55769

	PR #4537

Change 3927658 by Max.Chen

	Sequencer: Added fbx property mapping for "FocusDistance" to "FocusSettings.ManualFocusDistance"

	#jira UE-55782

Change 3932022 by Max.Chen

	Sequencer: Add import animation track section to next available row index.

	#jira UE-55892

Change 3933919 by Max.Chen

	Sequencer: Jump to playback start frame and not 0 to start playback for recording.

	#jira UE-55933

Change 3934307 by Andrew.Rodham

	Sequencer: Add template signature that is re-generated every time the base template is regenerated, which invalidates evaluation
fields

	This fixes an issue where the same sequence is instantiated multiple times in a sequence.
	 If the source sequence was saved, its template would be wiped, which would invalidate the template ID
	When an instance tries to evaluate the master template, it would only invalidate a range in the evaluation field that was the
hull of any invalid sub sequences overlapping the current time, potentially leaving invalid data in the evaluation field at positions
later (or earlier) on in the sequence
	When the sub template was re-generated, it receives the same SequenceSignature as it had before (because the sequence hasn't
actually changed), which causes the stale evaluation field data to fail the IsDirty check (because the sequence is the same as it
thought, but the *template* has changed)

	This has been addressed be adding a signature to templates themselves, and checking both the template signature and sequence
signature as a part of the IsDirty check. This ensures that we regenerate if either the template, or the sequence have changed.

	#jira UE-55934

Change 3936327 by Andrew.Rodham

	Sequencer: Removed increment when trimming right

	UMovieSceneSection::TrimSection already explicity assigns an exclusive bound to the time passed in. The new behavior means we
can trim a section to the right, and insert another section without changing the time to create adjacent sections.

	#jira UE-42652

Change 3936328 by Andrew.Rodham

	Fixed KeyFrameManipulator assignment operators and copy/move constructors
	  - These types are potentially self-referential so cannot use default constructors/assignment

Change 3936330 by Andrew.Rodham

	Converted UMGSequencePlayer to use frames internally

	#jira UE-54878

Change 3936726 by Max.Chen

	Sequencer: Set track node as the parent of the key area node. The key area switcher needs the object binding id from the parent
object binding node. Without this, the binding to the external value fails.

	#jira UE-55931

Change 3936775 by Max.Chen

	Sequencer: Should stop or loop should compare DurationFrames with Current Time from StartTime.

	The bug is that if you set 30 warmup frames in movie rendering for a range of 0-100, the FrameRange will be starting at -30 and
have a duration of 130. Without this fix, the playback will continue until frame 130, rather than 100.

	#jira UE-55933

Change 3936935 by Matt.Hoffman

	Easing Curves are now represented in Play Rate resolution instead of internal resolution.

	#jira UE-55937

Change 3937069 by Matt.Hoffman

	Users can toggle if the is infinite on each side, limited by which tracks support infinite ranges.

	#jira UE-55891

Change 3937516 by Max.Preussner

	ImgMedia: Added support for single-threaded platforms

	#jira UE-55986

Change 3937826 by Max.Preussner

	MediaAssets: Disabling media sound components on HTML5 if AudioMixer is not enabled

Change 3937997 by Max.Chen

	Curve Editor: Add Zoom to Fit Curves so that selected curves from Sequencer can be focused on. Tested that undo doesn't re-zoom.

	#jira UE-55935

Change 3938000 by Max.Chen

	Sequencer: Stop all sounds before generating audio waveforms.

	#jira UE-55951

Change 3938376 by Max.Preussner

	XGEController: Disabled XGE Controller in single-threaded apps to prevent crash

Change 3938444 by Max.Preussner

	Core: Added async support for single-threaded applications

Change 3938445 by Max.Preussner

	Networking: Added support for single-threaded applications in UDP socket sender/receiver

Change 3938447 by Max.Preussner

	Messaging: Added support for single-threaded applications

Change 3939432 by Max.Chen

	Sequence Recorder: Append command list to global level editor actions so that shortcuts are accessible in level editor.

	#jira UE-55798

Change 3940229 by Andrew.Rodham

	Added prospective display rate upgrade to UMovieScene::PostLoad

	  - There was previously some very odd behaviour that would assign the fixed frame interval only when a sub sequence was focused
in SSequencer. This meant that many sequences could have a frame interval of 0 set in the data.
	  - Under the old method of snap interval display this would have fallen back to getting the display interval from the sequencer
settings, but we no longer look at these.
	  - The USequencerSettings properties have been removed and in their place, a prospective data upgrade for sequences that have a
fixed frame interval old 0fps that sets the play rate to the previous defaults based off the old USequencerSettings defaults.
	  - This could end up 'changing' the display rate for sequences where the user has changed the snap interval in the settings for
a particular sequence editor, but there's not much we can do about that given we don't have access to the USequencerSettings classes in
UMovieScene

	#jira UE-55919

Change 3940277 by Andrew.Rodham

	Sequencer: Added ability to default frame resolutions and play rates for newly created actor sequences

Change 3940378 by Andrew.Rodham

	Sequencer: Post move import dialog now defaults to the playback framerate of the sequence, and floors to frame numbers

Change 3940559 by Andrew.Rodham

	Reinstated primed or recording sequence color

Change 3940642 by Max.Preussner

	ImagePlate: Removed image plate media playback functionality

Change 3940843 by Max.Preussner

	Core: Made TCircularQueue actually thread-safe; improved code comments

Change 3940860 by Max.Chen

	Sequencer: Changed StructNameToKey to StructPathToKey

	Previously, keying a PropertyPath of [RenderTransform][Shear][X] would get trimmed to X, which doesn't map to a channel name as
considered by Sequencer2dTransformTrackEditor. Instead, trim the resulting property path to [Shear][X] so that track editors can
determine the desired struct path and channels to key.

	#jira UE-52966

Change 3941292 by Mike.Zyracki

	Fix for trajectories out of range not showing up.

	1) If we had no key data we would pop the time, so wouldn't get the section ranges.
	2) Calculating of upper bound was wrong, checking against -1 and not key == num of keys when doing algo::lower_bound.
	3) No need to do the Bck-- for the bakward iterators since we fixed #2. We start now from the upper bound correctly.
	4) If we had no keys (at section start,end) we would incorrectly say we were any key type, so since we draw constant keys as
dashed we would do so incorrectly around section end points.

	#jira UE-55929

Change 3941424 by Max.Chen

	Curve Editor: Change Zoom to Fit to use TArrayView

Change 3941498 by Max.Preussner

	Core: Added FMath::DivideAndRoundNearest function

Change 3942097 by Matt.Hoffman

	Drop Frame Timecode Support for NTSC rates.

Change 3942104 by Matt.Hoffman

	Sequence Recorder Group is no longer visible inside the World Outliner after using one.

	#jira 55266

Change 3942107 by Max.Chen

	Sequencer: Resurrect logic to find or extend an existing section when adding keys.

Change 3942330 by Max.Chen

	Sequence Recorder: Better tooltip for default animation settings.

	#jira UE-55636

Change 3942339 by Max.Chen

	Sequence Recorder: Better tooltip for default animation settings.

	#jira UE-55636

Change 3942507 by Andrew.Rodham

	Sequencer: We no longer pad the time overlap threshold with a small number that is not scaled by the current zoom level
	  - The presence of this pad was causing keys that were far apart to be grouped when zoomed in a long way

Change 3942509 by Andrew.Rodham

	Sequencer: Only pad total view range, rather than section range as well when retrieving keys to render
	  - This stops us from rendering keys that are within the view range, but outside the section range

Change 3942512 by Andrew.Rodham

	Added transactions to some sequencer details customizations

Change 3942513 by Andrew.Rodham

	Sequencer: Reinstated validation checks to UMovieSceneSection::SetStartFrame and SetEndFrame, changed erroneous uses to use
SetRange

Change 3942560 by Andrew.Rodham

	Pass by rvalue reference to appease error C2719 on Win32
	('InChannels': formal parameter with requested alignment of 8 won't be aligned)

Change 3942697 by Andrew.Rodham

	Newly Created Level Sequences and Actor Sequences now default to 24000 fps frame resolution (+/- ~24hrs range, supporting all
integer rates + 23.976)

Change 3942700 by Andrew.Rodham

	Sequencer: Added legacy out-of-bounds errors for times that are not supported by the current legacy upgrade frame resolution

Change 3942989 by Max.Preussner

	Core: Fixed circular queue count calculation

Change 3943538 by Max.Preussner

	MediaAssets: Reverted workaround for procedural audio log spam in HTML5

	(Actor component initialization cannot be skipped if the component is used in a level)

Change 3944071 by Max.Preussner

	QAGame: Fixed Media Texture keeps last frame of Media when PIE ends

	#jira UE-53360

Change 3944292 by Max.Chen

	Sequencer: Added extra flags to ensure that asset initialization does not occur on template actor sequences

	#jira UE-56113

Change 3944364 by Max.Chen

	Sequencer: Prevent circular shot/master tracks.

	Tested adding master -> child -> master as drag and drop cinematic shot tracks and sub tracks as well as through the + button.

	#jira UE-56091

Change 3944422 by Max.Chen

	Sequence Recorder: Disable transform recording if off.

	#jira UE-56061

Change 3944745 by Andrew.Rodham

	Sequencer: Key rendering fixes

	  - Fixed assert  that occured when keys happened to reside on some times due to KeyTime + TimeOverlapThreshold - KeyTime being
slightly larger TimeOverlapThreshold
	  - Fixed keys sometimes being clipped when zoomed right in due to lack of half-frame offset
	  - Added missing documentation to MovieSceneTimeHelpers.h

	#jira UE-56107

Change 3945231 by Andrew.Rodham

	Sequencer: Reconstruct channel proxy on Serialize to catch all cases of undo/redo, PostLoad and duplication

	#jira UE-56089

Change 3945301 by Andrew.Rodham

	Sequencer: Added safety checks during initial sequence recording to guard against applying negative or 0-sized sequence ranges

	#jira UE-56125

Change 3946627 by Max.Preussner

	Fortnite: Fixed game crashes closing editor while in PIE - Pure virtual function being called

	#jira UE-56144

[CL 3946896 by Max Chen in Main branch]
2018-03-14 22:09:33 -04:00
Jeff Fisher
e6c172fd1b Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3931840)
#lockdown Nick.Penwarden
#rb merge

============================
  MAJOR FEATURES & CHANGES
============================

Change 3754252 by Mike.Beach

	Mirroring CL 3723722 from 4.18.1

	Hotfix update from Oculus.

	  - Introduce dash support by adding an Oculus config setting (that is off by default)
	  - Move submission of the near plane╞s depth from a fixed one at texture allocation time to an every-frame one, which is needed for correct depth support in games that have a ⌠god mode÷ with a smaller worldtometersscale

	#jira UE-51728

Change 3775128 by Nick.Atamas

	Merging //UE4/Partner-Google-VR @ CL 3770408 to Dev-VR (//UE4/Dev-VR)

Change 3795928 by Joe.Conley

	PR #2514: make VR preview work with dedicated server mode in editor (Contributed by joelmcginnis)

	#github https://github.com/EpicGames/UnrealEngine/pull/2514


Change 3798048 by Mike.Beach

	[WIP] MR - Improving on the MR alignment calibration process.

	#jira UEVR-1047

Change 3798388 by Mike.Beach

	MR - Loading the OpenCv dll along with the calibration module. Adding a WITH_OPENCV define that we can wrap blocks with.

Change 3798396 by Mike.Beach

	MR - Making use of OpenCV's eigen solver for quaternion averaging, and wrapping my use of OpenCV with the new define.

Change 3798668 by Nick.Whiting

	Merging CL 3794238 from Partner-Valve (Fixes for uninitialized memory after vkGetPhysicalDeviceProperties2KHR)

Change 3800540 by Keli.Hlodversson

	Simplify loading of OpenCV dll by defining the dll name and relative path  in the third party build script  (OpenCV.Build.cs).
	Remove redefinition of WITH_OPENCV from MixedRealityCalibration.Build.cs.
	Add OpenCVHelper.h with macros that should be used to wrap opencv includes

Change 3801194 by Keli.Hlodversson

	Fix relative path in OpenCV.build.cs

Change 3801853 by Mike.Beach

	Fixing crash on nullptr.

Change 3802176 by Mike.Beach

	Switching out the wrong file that was submitted in CL 3801853 - fixing a crash in MotionControllerComponent.

Change 3802189 by Mike.Beach

	MR - Fix to rotation averaging (was not correctly populating quaternion matrix).

Change 3807785 by Douglas.Copeland

	Replacing deprecated nodes in QA_MoCoAll BP

Change 3810205 by Chance.Ivey

	Removing Old Moble AR Template

Change 3810482 by Nick.Whiting

	Updating to SteamVR 1.0.11

Change 3810488 by Nick.Whiting

	Adapting CL 379023 from Partner-Valve, SteamVR : fix lockup, improve performance , use PostPresentHandoff and SubmitExplicitTimingData APIs

Change 3810502 by Nick.Whiting

	Adding LUID detection on non-Mac platforms for SteamVR

Change 3811483 by Joe.Graf

	Fixed Mac compiling with SteamVR due to an initialized variable being used

Change 3811488 by Keli.Hlodversson

	Initial class for performing camera calibration via OpenCV
	#jira UE-52726

Change 3811496 by Mike.Beach

	CIS fix - pragma'ing out several OpenCV, ThirdParty warnings.

	#jira UE-53558

Change 3811560 by Mike.Beach

	CIS fixes - Initializing an unitialized var in SteamVR & pragma'ing out some more warnings for OpenCV.

	#jira UE-53557, UE-53558

Change 3812051 by Mike.Beach

	CIS fix - switching over to using new 'PublicDefinitions' member.

Change 3813131 by Jeff.Fisher

	Opacity mask gradient test content for msaa.
	#jira UEVR-1049

Change 3814154 by Douglas.Copeland

	Rebuilding lighting for TM-VRSmoke

Change 3814248 by Mike.Beach

	Adopting Occulus' SI1.21 changes...

	  Added Oculus Go controller meshes to UE4
	  Enable sched_fifo and RT/GT affinities back in UE4
	  Only activate the masking system for the translucent objects (only ones where masking is necessary)
	  Upgrade to OVRPlugin 1.21's new APIs for display frequency and integration into blueprint
	  Fixes the 10fps lock not being setup when an app is launched with the HMD not mounted
	  Add blueprint definition to get device name from ovrplugin
	  Add support for tiled multires and GPU % reporting

	Rejected changes in:
	  OculusFunctionLibrary.h
	  DefaultXRCamera.cpp
	  SceneRenderTargets.cpp

Change 3820224 by Mike.Beach

	[WIP] MR Calibration

	  - Correcting orientation estimation to average sampled forward/up vectors
	  - Converting functionality for intersecting approximate frustum rays to C++ (to better align with frustum far points)
	  - Switched alignment points' PlanarId to be 3D, so we know how they relate to each other
	  - Stubbing in new alignment tweak mode

Change 3820475 by Ryan.Vance

	#jira UEVR-1055

	We need to use 0 for a sentinel value on non-metal rhi's.

Change 3821771 by Mike.Beach

	CIS fixes

Change 3824637 by Mike.Beach

	[WIP] MR Calibration process - polishing alignment tweak step (only needing rendertarget/img processing functions from demo branch).

Change 3828925 by Mike.Beach

	CIS fix (was using deprecated IImageWrapperPtr)

Change 3830898 by Jeff.Fisher

	Improving ActorComponent.h include path somone on udn noticed wasn't quite right.

Change 3831597 by Mike.Beach

	[WIP] MR Calibration - Alignment tweaking now takes snapshots and presents a collage for you to align with.

	#jira UEVR-1042

Change 3837752 by Keli.Hlodversson

	Add option to pass UTextureRenderTarget2D directly to the OpenCVCalibrator instead of using temporary image files
	#jira UE-52728

Change 3839309 by Mike.Beach

	MotionController support for HMD tracking.

Change 3839314 by Mike.Beach

	Fixing a crash in MR calibration, where we were expecting a returned list to be ordered and it wasn't (caused indexing out of bounds).

Change 3839316 by Mike.Beach

	[WIP] MR Calibration - Stubbing in support for calibration using the HMD model (instead of controllers)

Change 3840711 by Mike.Beach

	[WIP] MR Calibration - Add final preview to alignment calibration step.

Change 3841667 by Mike.Beach

	[WIP] MR Calibration - Allowing users to toggle through different alignment techniques.

Change 3842631 by Mike.Beach

	[WIP] MR Calibration - Polishing alignment tweak step (adding preview with HMD visualization, enforcing trigger pull for snapshots, allow reseting of just adjustments).

Change 3842758 by Mike.Beach

	[WIP] MR Calibration - Cleaning up & reorganizing some cruft.

Change 3842943 by Mike.Beach

	[WIP] MR Calibration - More clean up & re-org

Change 3843004 by Mike.Beach

	[WIP] MR Calibration - Clearing old references to defunct calibration modes.

Change 3843063 by Mike.Beach

	[WIP] MR - Deleting old (unused) calibration steps.

Change 3844142 by Mike.Beach

	[WIP] MR Calibration - Cleaning out old cruft in CalibrationController (old alignment calibration that was moved to a separate BP).

Change 3845341 by Keli.Hlodversson

	Add lens distortion parameters to MRCaptureComponent
	#jira UEVR-1060

Change 3846174 by Mike.Beach

	[WIP] MR Calibration - Updating the compositing adjustment phase to run on the new modular calibration step system.
	  - Properties are now DataTable driven
	  - Split into base and sub-class (to facilitate easier property editing)
	  - Added HSV tweak mode for the color

	#jira UEVR-1048

Change 3847032 by Mike.Beach

	[WIP] MR Calibration - Misc. fixes
	  - Unique identification color for new alignment point
	  - Fixed compositing calibration so it shows the scene as it would appear in a full MR capture (no specialized calibration view)
	  - Fixed some of the language used in the on-screen instructions

Change 3849040 by Mike.Beach

	Fixing a assert/crash in MR calibration during the garbage matte phase - garbage matte actor was pointing to the wrong calibration component.

	#jira UE-54233

Change 3849778 by Mike.Beach

	Fixed so the loaded MR calibration position/orientation is properly applied and visualized in the MR calibration level.

	#jira UE-54251

Change 3850199 by Mike.Beach

	[MR] Saving, applying, and displaying TrackingLatency and DepthOffset properties in the MR calibration process.

	#jira UE-54254, UE-54235

Change 3850224 by Mike.Beach

	[MR] Adding a way to omit certain MotionController components from the forced delay.

	#jira UE-54255

Change 3851434 by Mike.Beach

	[MR] Fixing up the projection plane depth tracking (needs to be disabled for certain calibration steps)
	  - Cleans up MRBillboard API
	  - New method to enable/disable HMD depth tracking (helpful for integrating depth camera's in the future)
	  - DepthOffset should now work properly

	#jira UE-54321, UE-54235

Change 3853799 by Mike.Beach

	[MR] Making LensDistortion a public dependency since it is included from a public header.

Change 3854608 by Mike.Beach

	[MR] Fixing it so the MR capture view point is delayed by the same latency that motion controllers are when it is attached to a motions controller itself.

	#jira UE-54255

Change 3855721 by Keli.Hlodversson

	Implement Lens Calibration Step.
	#jira UEVR-1061  Integrate OpenCV calibration into MRFramwrok calibration process (through Blueprints)

Change 3855841 by Keli.Hlodversson

	Fix Linux build after cl 3855721

Change 3858718 by Mike.Beach

	Allowing async node factory methods to have other out parameters that get exposed in Blueprints.

Change 3861345 by Mike.Beach

	Making changes to the XRAsset API - better handling asynchronous resource loading

	  * Added OnLoadComplete callback & ForceSynchronous params
	  * Moved/Renamed related BP functions to new XRAssetFunctionLib (added redirectors)
	  * Added async BP versions of the (now) blocking functions
	  * Fixed MotionControllerComponents to now set custom materials with the load callback

	Fixed MR calibration process to better display alignment models

	  * Switched back to using controller models for alignment (UE-54476)
	  * Using custom depth buffer to reject inner triangles so models are easier to make out when using transparency
	  * Handling SteamVR controller models with multiple materials (overriding all)

	#jira UE-54455, UE-54476

Change 3863839 by Ryan.Vance

	Integrating 3836507 to fix oculus depth rt related crashes

	#jira UE-54595, UE-54596, UE-54618

Change 3864970 by Mike.Beach

	[WIP] MR Calibration - Trying to make the controller models more visable/helpful during the alignment process (adding a outline PP effect - currently disabled since PostProcessing/Tonemapping has ill-effects on the camera texture).

Change 3865290 by Mike.Beach

	[WIP] MR Calibration - Specializing alignment positioning based off VR system (Oculus vs. Vive). Adjusting initial Vive alignment model so it centers in the middle of the screen (easier to align).

Change 3865357 by Joe.Graf

	Initial merge of Andrew's BackChannel and RemoteSession plugins

Change 3865379 by Joe.Graf

	Change filetype since +x was accidentally added

Change 3865515 by Jules.Blok

	Use center interpolation on normals for curvature-to-roughness

	Reduces aliasing artifacts when using curvature-to-roughness with MSAA

	#jira UEVR-684

Change 3865622 by Joe.Graf

	Fixed non-unity compile errors

Change 3865716 by Joe.Graf

	Attempt to fix line endings

Change 3865749 by Joe.Graf

	Another non-unity file fix

Change 3865782 by Joe.Graf

	Attempt to fix line endings

Change 3865789 by Joe.Graf

	Another non-unity fix

Change 3865891 by Mike.Beach

	Oculus SI 1.22 changes...
	  - OVRPlugin update
	  - Change to how Vulkan extensions are enumerated

Change 3867433 by Douglas.Copeland

	Fixing up M_Parallax_Cheap_Inst Content

Change 3867486 by Mike.Beach

	[WIP] MR Calibration - Adjusting the first alignment model for Oculus, so that it isn't clipped by the camera.

	#jira UE-54684

Change 3868302 by Mike.Beach

	[WIP] MR Calibration - Adding controls to toggle post-processing on/off for the MR feed, and a way to hide/show just the alignment model (and leave an outline when post-processing).

Change 3868359 by Mike.Beach

	Adding licensed models for the Rift HMD and sensors.

Change 3868410 by Mike.Beach

	Hiding the controller models for the Compositing Calibration step, & fixing the right hand model so it shows.

	#jira UE-54744

Change 3869755 by Joe.Graf

	Fixed static analysis warnings

Change 3869790 by Joe.Graf

	Changed a Warning to a Log since it looks like a c&p error

Change 3869887 by Arciel.Rekman

	Copying //UE4/Partner-Valve@3869880 to Dev-VR (//UE4/Dev-VR)

Change 3872154 by Mike.Beach

	[WIP] MR Calibration - Adjusting Oculus alignhment samples so the model is easier to align with.

	#jira UE-54745

Change 3872426 by Mike.Beach

	[WIP] MR Calibration - Adjusting Vive alignment samples so the model is easier to align with.

	#jira UE-54745

Change 3873216 by Nick.Atamas

	Merging CL 3829164 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a

	Fixed iOS app using FVector4 safe zones because that is possible in 4.19

Change 3873548 by Nick.Atamas

	Merging CL 3847181 using //UE4/Dev-VR=>//Tasks/UE4/Dev-VR-4.19a

	#jira UE-53726

Change 3873791 by Nick.Atamas

	Merging //UE4/Dev-Main@3866324 to Dev-VR (//UE4/Dev-VR) to get missing files and fixing CIS.

Change 3875678 by Mike.Beach

	MR Calibration - Fixing the alignment adjustment step so it doesn't get stuck after taking samples.

	#jira UE-54906

Change 3875900 by Nick.Atamas

	Fixed scenario where geometries were being updated once per pin, instead of just being updated once.
	Also fixes a scenario where there are no pins and geometries fail to update.

Change 3877035 by Mike.Beach

	MR - Subscribing the MR framework to the PostLoad world delegate so it can spawn the MRCaptureActor needed to broadcast MR.

	#jira UE-54933

Change 3877904 by Joe.Graf

	Added  XRTracking support to the RemoteSession plugin so that you can control the remote camera with XRTracking inputs

Change 3877955 by Joe.Graf

	Added the RemoteSessionApp sample

Change 3880570 by Mike.Beach

	Adopted direct-to-layer rendering API changes from Oculus

Change 3881307 by Keli.Hlodversson

	Implement lens undistortion using OpenCV's initUndistortRectifyMap and a material for remapping the camera UVs based on the generated texture.
	#jira UE-52781

	Also changes the default size of the calibration chessboard to 9x6 inner edges.
	#jira UE-54679

Change 3882054 by Mike.Beach

	CIS fix - excluding new Oculus android lib (vrintegrationloader) from architechtures that it isn't compatible with (following vrapi's example).

Change 3885220 by Joe.Graf

	Blacklisted the BackChannel and RemoteSession plugins on HTML5

Change 3885776 by Keli.Hlodversson

	Fix static analysis warning when including OpenCV headers

Change 3888197 by Jules.Blok

	Use the WorldVertexNormal for curvature-to-roughness instead of the WorldNormal.

	This fixes aliasing artifacts when using curvature-to-roughness with normal maps.
	Also fixes a compilation error in DistortAccumulatePS.usf

	#jira UEVR-684
	#jira UE-55102

Change 3891444 by Mike.Beach

	Using the save object's full class name path so we can load from BP sub-object types from plugins (and discern between likenamed types).

	#jira UE-54945

Change 3891447 by Mike.Beach

	Labeling the spectator screen render call so it is distinguishable in profiles.

Change 3891459 by Mike.Beach

	[WIP] MR - Adding a debug option to visualize the MR camera in-game.

Change 3891462 by Mike.Beach

	Adding a standalone project for MR calibration app generation and testing.

	#jira UEVR-1070

Change 3891696 by Mike.Beach

	[WIP] MR - Now calibrating with the tracking origin at floor level so that the calibrated alignment is relative to the proper place.

	#jira UE-54945

Change 3892899 by Ryan.Vance

	Multi-view requires the day dream compositor.

Change 3896052 by Nick.Whiting

	Duplicating fix for VR motion controller lock in CL 3889470 from 4.19 to Dev-VR

Change 3897244 by Mike.Beach

	MR - Subscribing to an editor delegate so we can hook into PIE when it launches (so MR behaves like it does in -game, auto broadcasting).

	#jira UE-54944

Change 3897283 by Mike.Beach

	[WIP] MR - Utility material functions for converting from linear to sRGB space (and de-tonemapping) for the image from the camera feed.

	#jira UE-54663

Change 3897357 by Mike.Beach

	MR Calibration - Removing my own personal settings from the MRCalibration project.

Change 3897376 by Mike.Beach

	MR Calibration - Initialiting the input controller's mirror var so it matches the DisplayController's (else they start out of sync).

	#jira UE-55281

Change 3897381 by Mike.Beach

	[WIP] MR Calibration - Deleting extra input controller actor that mistakenly got added to the scene (likely from bad CAC loading).

	#jira UE-55279

Change 3897401 by Mike.Beach

	MR - Using the newly added material functions (CL 3897283) to convert the camera feed from linear space to sRGB.

	#jira UE-54663

Change 3897419 by Mike.Beach

	MR Calibration - Updating gabage matte step initialization to use new broadcasting framework.

	#jira UE-55287

Change 3897420 by Mike.Beach

	MR Calibration - Followup to CL 3897357; removing more of my personal settings that accidently got checked in.

Change 3897467 by Mike.Beach

	MR - Material for the camera card should be unlit.

Change 3899508 by Joe.Graf

	Added SupportAR so that ARKit is used for tracking in the RemoteSessionApp

Change 3901656 by Zak.Parrish

	Adding 3Lateral's kite boy head to DevVR

Change 3901705 by Mike.Beach

	MR - Fixing the load/saving of the calibrated camera orientation. Using the look-at axis was not enough to reconstruct the same transform.

Change 3902026 by Mike.Beach

	MR - Force activating the attached MotionController to account for failed auto-activation during initialization.

Change 3902089 by Mike.Beach

	Mirroring CL 3902082 from 4.19.
	Fixing an issue with the fix from CL 3889470 - fully matching the old UEnum name check (checking both the value name and the typed name, for example: "Left" and "EControllerHand::Left").

	#jira UE-55153

Change 3902110 by Mike.Beach

	MR - Fixing it so a MR save doesn't have to be present on load for the editor to run MR mode on PIE (can drop a MR sav with the editor already open).

Change 3902631 by Joe.Graf

	Fixed a bunch of shutdown related issues for remote sessions

Change 3904885 by Mike.Beach

	MR Calibration - Fixing the gabage matting mode so it properly saves/loads without stomping on existing save data.

	  * Switching over GarbageMattePawn (the last hold out) to be part of the modular calibration step system
	  * New CalibrationStep API where the implementor can request a save (TODO: port all existing steps over to new function)
	  * Cleaned up a lot of dead code in CalibrationController
	  * Refactored how the GarbageMatteActor works - switched calibration BP to be sub-class (to get implicit matte data saving)
	  * Added MinStartingStep so the calibration will always boot up to the CompositingCalibration step when loading a full calibration save
	  * Now only spawning the GarbageMatteComponent when we have garbage matte data

Change 3904915 by Mike.Beach

	CIS static analysis fix.

Change 3906571 by Keli.Hlodversson

	Multiple interdependent MR Calibration changes:

	Move undistortion support into the UMixedRealityCaptureComponent. Update UV undistortion texture when changing lens parameters.
	Use our own struct to store lens duistortion settings, as we no longer depend on the LensDistortion/Composure plugin #jira UEVR-1073
	Change undistortion to happen at the right place (ie. on camera output only and not on the final composed image)
	Move OpenCVHelper into its own module, as both MixedRealityFramework and MixedRealityCalibration now depend on it.
	Use calculated FOV after uindistortion and apply it to capture component #jira UE-55194
	Display calculated FOV progressively during lens calibration #jira UE-55191

Change 3907398 by Mike.Beach

	MR Calibration - Fixing issue where the chroma key tweaks were not being applied to the preview.

Change 3908291 by Joe.Graf

	Merged over the clang warning suppression for unused lambda captures

Change 3908707 by Keli.Hlodversson

	Fix MR compilation on Linux. (OpenCVHelper is now enabled on that platform, even though OpenCV isn't)
	Remove dependency on LensDistortion plugin.

Change 3909229 by Mike.Beach

	MR Calibration - Adding debug ability to skip lens calibration (End/Backspace)

Change 3909889 by Mike.Beach

	[WIP] MR - Adjusting MR matierals and default CaptureSource to fight dark camera feed and to have scene rendering go through post-processing.

	#jira UE-54663, UE-55324

Change 3910454 by Mike.Beach

	[WIP] MR Calibration - Switching over all calibration steps to the new save API.

Change 3910942 by Mike.Beach

	[WIP] MR Calibration - Adding an accept/redo screen to the lens calibration step (and making it so you can debug skip through the initial snapshot phase).

	#jira UE-55190

Change 3910943 by Mike.Beach

	[WIP] MR - Removing some uneeded cruft in the MR util library.

Change 3913041 by Joe.Graf

	Xcode 9.3 clang warning fixes

Change 3913146 by Joe.Graf

	Changed the remote session app to default to 60 fps

Change 3914885 by Mike.Beach

	CIS fixes

Change 3919437 by Nick.Whiting

	UE-55674:  Fix for SteamVR on Mac causing crash.  SteamVR was picking the wrong texture format because we were testing against the supported ShaderModel before it was actually set.  It was asking for an OpenGL device context on Mac, which isn't supported

Change 3921833 by Joe.Graf

	Fixed bad defines that triggered errors when fixing the XCode 9.3 Beta errors

	#jira: UE-55752

Change 3926388 by Ryan.Vance

	#jira UE-55666

	Precision conversion nonsense

Change 3931840 by Mike.Beach

	Setting the new RemoteSession plugin to not auto-host.

	#jira UE-55841

Change 3626718 by Ryan.Vance

	Oculus changes for SI1.16 and SI1.17
	Adds Vulkan and D3D12 improvements/fixes for VR, depth target allocation for VR plugins, Android thread naming and a number of new Oculus features.

[CL 3932718 by Jeff Fisher in Main branch]
2018-03-07 17:03:49 -05:00
Marc Audy
7a0f229e8d Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3876564)
#lockdown Nick.Penwarden
#rnx
#rb none

[CL 3903710 by Marc Audy in Main branch]
2018-02-22 11:25:06 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Chris Bunner
77adbcb22a Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3809756)
#rb None
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 3629223 by Rolando.Caloca

	DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847

Change 3629708 by Rolando.Caloca

	DR - vk - Redo some changes from DevMobile
	3601439
	3604186
	3606672
	3617383
	3617474
	3617483

Change 3761370 by Arne.Schober

	DR - Added CityHash to use with conatiners and stuff. It provides good performance and high quallity across multiple platforms.

Change 3761437 by Guillaume.Abadie

	Optimises motion blur compute shader for consoles.

Change 3761483 by Guillaume.Abadie

	Fixes D3D11 RHI lying to dynamic resolution heuristic with t.MaxFPS.

Change 3761995 by Mark.Satterthwaite

	Add the Metal compiler path to the local .pch filename to avoid problems when Xcode moves.

Change 3761996 by Mark.Satterthwaite

	Emit more details when a pixel shader is found to have no outputs at all which Metal doesn't permit. More likely this is a bug in the shader compiler not configuring the in-out mask correctly...

	#jira UE-52292

Change 3761999 by Mark.Satterthwaite

	No need to avoid tessellation for FMetalRHICommandContext::RHIEndDrawIndexedPrimitiveUP anymore - that was from back when the tessellation logic was replicated in each RHI*Draw* implementation.

	#jira UE-51937

Change 3762181 by Joe.Graf

	Changed MaxShaderJobBatchSize to 25 on Mac as it reduced shader compile time by 21%

Change 3762607 by Mark.Satterthwaite

	Remove accidentally included changes from 3761995.

Change 3762612 by Mark.Satterthwaite

	Enable the explicit sincos intrinsic for Metal to avoid instances of UE-52477 that can cause shaders to compile incorrectly through hlslcc.
	#jira UE-52477

Change 3762772 by Michael.Lentine

	Move RHI calls to render thread.

Change 3763021 by Richard.Wallis

	Remove shader cache tool project and implementation.
	#jira UE-51613

Change 3763082 by Guillaume.Abadie

	More SceneTexture, SceneColor and SceneDepth automated tests

Change 3763111 by Richard.Wallis

	Clone of CL 3763033 (Release-4.18):
	Fix for crash upon launching packaged game on Mac with Share Material Shader Code enabled.
	#jira UE-52121

Change 3763657 by Michael.Lentine

	Invalidate ddc for skeletal mesh render data so that the duplicated vertex render structures are properly serialized.

Change 3763727 by Jian.Ru

	Fix Player Collision view mode. It is caused by checking an uninitialized vertex buffer so the check always fail.
	#jira UE-52052

Change 3763738 by Guillaume.Abadie

	Implements SSR input post process material location.

Change 3764271 by Mark.Satterthwaite

	Allow ControlPointPatch lists to flow through MetalRHI as it was setup to handle this transparently - the VSHS compute shader will convert them to triangles to draw. Report the same warning as in the pipeline creation stage as this hasn't been formally validated.

	#jira UE-52454

Change 3764316 by Daniel.Wright

	Added AVolumetricLightmapDensityVolume - gives local control over Volumetric Lightmap density.  Dropping the top mip outside of the play area in Monolith saves 20Mb (35Mb original).
	Volumetric Lightmap no longer refines around static translucent geometry - saves 5Mb in Monolith
	Reworked brick culling by error mechanism.  Now compares error to interpolated parent lighting instead of the brick average - prevents dropping constant value bricks which are near a wall and cause leaking due to parent interpolation after being culled.

Change 3764318 by Daniel.Wright

	Missing file

Change 3764321 by Daniel.Wright

	Shader compiling memory optimizations
	* Editor memory: Sharing uniform buffer includes and GeneratedInstancedStereo.ush per FShaderType (was previously duplicated per FShader job)
	* SCW input size: Sharing uniform buffer includes and SharedEnvironment per batch
	* 7.6Gb of shader job inputs in memory -> .5Gb (13x less) when doing a full shader compile of Paragon Editor
	* 13.8Gb written into worker input files -> 2.9Gb (4.7x less).  Global shaders are never batched when sent to SCW so unoptimized by these changes.

Change 3764595 by Daniel.Wright

	Added VolumetricLightmapDensityVolume asset icons

Change 3764701 by Michael.Lentine

	Add duplicated vertices merging for meshmerge.

Change 3766002 by Guillaume.Abadie

	Fixes a crash in translucency.

Change 3766007 by Guillaume.Abadie

	Oups.... Fixes compilation failure.

Change 3766697 by Guillaume.Abadie

	Giant refactor of global shader interface for upcoming native support of permutation.

	CL generated by python script.

Change 3767205 by Chris.Bunner

	Deferring FMaterial::RenderingThreadShaderMap update to render-thread rather than assumption commands have been flushed.

	#jira UE-50652

Change 3767207 by Chris.Bunner

	Clamp fetched texture coordinates to those available on the mesh.

Change 3767209 by Chris.Bunner

	PR #4203: Early-outs in UMaterialInstance parameter setters (Contributed by stefanzimecki)

	#jira UE-52193

Change 3767772 by Mark.Satterthwaite

	MetalShaderFormat will no longer fallback to text shaders when you ask it to compile to bytecode but the bytecode compiler is not available (either locally or remotely) - this ensures that the DDC can't be poisoned by incorrectly configured clients. The Editor is already setup such that if the remote shader compiler is not configured & Xcode is not available locally the shader-compiler will be invoked to generate text shaders.

	#jira UE-52554

Change 3768604 by Guillaume.Abadie

	Polish up with new global shader function signature.

Change 3768993 by Guillaume.Abadie

	Fixes r.Upscale.Panini cvars

Change 3769478 by Mark.Satterthwaite

	Move the ue4_stdlib.metal & PCH into a temporary directory that exists for the lifetime of the SCW on the remote side as well as the local one and add this path as an include directory.
	#jira UE-52587

Change 3769703 by Mark.Satterthwaite

	For all Metal platforms >= Metal v1.2 transform mul(a,b) into fma(a,b,0) to prevent the Apple compiler reordering operations differently between the base & depth passes which results in variance in the position output.
	For iOS disable fast-math when the vertex-shader uses World-Position-Offset because there are additional problems on the iOS shader compiler that result in position variance even with the above fix - WPO performance will suffer but I don't have any alternatives.
	Remove the depth-offset hack from the depth-only vertex shader again.

	#jira UES-5651

Change 3769763 by Mark.Satterthwaite

	Handle swizzle's in the hlslcc fma identification pass so that we reduce the number of instructions and the platform compiler can't break the instructions up.

Change 3769849 by Mark.Satterthwaite

	Fix CIS error.

Change 3770517 by Richard.Wallis

	Fix for crash when creating a new media texture (AppleIntelHD5000GraphicsMTLDriver!SamplerStage::bindSamplerToTexture()).  Missing texture resource for binding.  Old InitDynamicRHI() code has been refactored out into seperate functions which leaves us on Mac with a NULL resource initially after creation which Metal doesn't like.  This fix puts InitDynamicRHI down the default setup/clear path which inits default resources - I don't think we should use a global dummy in this instance as this is a render target.

	#jira UE-51940

Change 3770688 by Uriel.Doyon

	Fixed texture resolution returning 0 when running blueprint construction scripts at cook time.

Change 3771115 by Mark.Satterthwaite

	Report errors from failed attempts to compile global shaders or we can't see why things fail on non-Windows platforms.

Change 3771263 by Mark.Satterthwaite

	Change the way ManualVertexFetch is enabled on Metal platforms so that it is enabled when targeting Metal v1.2 and higher (macOS 10.12+/iOS 10+). This brings iOS in the Desktop Forward renderer back into line with the Mac.

	#jira UERNDR-300

Change 3773472 by Guillaume.Abadie

	Fixes a crash on PIE of SimpleComposure project.

Change 3773475 by Guillaume.Abadie

	Fixes bug in editor viewport caused by SSR input changes.

Change 3774677 by Arne.Schober

	DR - Deprecated SetLocal from the RHICmdlist
	Fixed some unnecessary PSO collisions.

Change 3777037 by Mark.Satterthwaite

	Remove incorrect change that caused a reference to "accurate::sincos" to appear in some Metal shaders rather than "precise::sincos".

Change 3777122 by Mark.Satterthwaite

	Back out changelist 3777037 - I'm blind and wasn't seeing the real problem was a stale shader cache...

Change 3777196 by Mark.Satterthwaite

	Fix text-shader compilation on iOS 10 - maybe iOS 9 too (untested!).

	We need our own make_scalar type-trait template for ue4_stdlib.metal so that we still compile with older iOS runtime compilers and we can't use as_type to directly implement the packHalf2x16/unpackHalf2x16 intrinsics for these older runtime compilers either.

Change 3779098 by Rolando.Caloca

	DR - vk - Fix query index

Change 3779275 by Mark.Satterthwaite

	Silence the Metal runtime compiler warning caused by use of a deprecated enum value when running text shaders compiled for Metal v1.0/1.1 on a Metal v1.2+ OS.

	#jira UE-52554

Change 3779427 by Rolando.Caloca

	DR - vk - Fix for allocator contention

Change 3779608 by Uriel.Doyon

	Fixed invalid access in the resave package commantlet when building texture streaming material data for materials enabling tesselation.

Change 3784496 by Mark.Satterthwaite

	Temporarily disable USE_OBJECT_COMPOSITING_TILE_CULLING  for Metal shader compilation only - other platforms are unaffected - as it isn't working properly for some reason. need to work out what's up but don't want Distance Fields to be completely snookered in the interim.

	#jira UE-52952

Change 3784608 by Rolando.Caloca

	DR - Copy 3784588
	- Fix for drivers returning out of date swapchains during resizes

Change 3784734 by Mark.Satterthwaite

	Real fix for UE-52952 - MetalShaderFormat wasn't propagating the full thread-group value.

	#jira UE-52952

Change 3784741 by Mark.Satterthwaite

	More Metal debugging commandline options "-metalfastmath" & "-metalnofastmath" to force fast-math on or off for all shaders, must be using runtime-compiled shaders (i.e. -metalshaderdebug or r.Shaders.Optimise=0) to take effect.

Change 3787103 by Guillaume.Abadie

	Kills BuiltinSamplers UB

Change 3787207 by Guillaume.Abadie

	Sorry, compile fix that were fine with local changes...

Change 3787396 by Marcus.Wassmer

	PR #4271: UE-52901: Set VIS_Max meta to hidden (Contributed by projectgheist)

Change 3788028 by Peter.Sumanaseni

	Working linear HDR exr output from sequencer

Change 3788536 by Mark.Satterthwaite

	Track whether the Metal shader uses the discard_fragment function as when this is used but without any other outputs we know we need to bind at least one render-target or a depth-stencil surface but we don't know which. This lets us correctly error when we encounter a shader with no outputs at all which Metal doesn't permit.
	#jira UE-52292

Change 3788538 by Mark.Satterthwaite

	Let's try mitigating UE-46604 on Nvidia by retaining resource references in the command-buffer. This shouldn't be necessary and isn't typically on other vendors but we haven't been able to reproduce this reliably enough to get to the bottom of it.

	#jira UE-46604

Change 3789083 by Guillaume.Abadie

	Implements global shader permutations. Example in ScreenSpaceReflections.cpp.

Change 3789090 by Guillaume.Abadie

	Fixes linux build.

Change 3789106 by Guillaume.Abadie

	Fixes compilation failure in niagara plugin.

Change 3789274 by Guillaume.Abadie

	Avoid hit proxies to clobber TAA's hitsory.

	#jira UE-52968

Change 3789380 by Guillaume.Abadie

	Back out changelist 3789083: global shader permutation because compilation failure in clang.

Change 3789648 by Guillaume.Abadie

	Relands global shader permutation, with clang support.

Change 3789712 by Guillaume.Abadie

	Fixes TestImage show flag with TAAU on.

	#jira UE-53061

Change 3791593 by Guillaume.Abadie

	Reinvalidates shaders with shader permutations.

Change 3791884 by Daniel.Wright

	Added BP setter for LowerHemisphereColor

Change 3791886 by Daniel.Wright

	Added LightmapType to PrimitiveComponent
	* ForceVolumetric allows forcing static geometry to use Volumetric Lightmaps, which can be useful on instanced foliage where seams are prevalent.  Lightmass internal caching still requires lightmap UVs and reasonable lightmap resolution.
	* ForceSurface replaces bLightAsIfStatic
	Improvements to Volumetric Lightmap quality needed for static geometry
	* Stationary light shadowing is now dilated inside geometry
	* Now doing two dilation passes since samples near geometry see inside due to ray start bias
	* Refinement around geometry uses an expanded cell bounds when the geometry is going to use Volumetric Lightmaps, since cross-resolution stitching causes leaking
	Lightmass debug primitives are now tied to a swarm task instead of global - allows debugging of Volumetric Lightmap tasks

Change 3792256 by Guillaume.Abadie

	Fixes a bug where permutation was not actually serialised in FShader, so was ending up recompiling shader at every load.

Change 3792884 by Marcus.Wassmer

	Copying //UE4/Partner-AMD to Dev-Rendering (//UE4/Dev-Rendering)

Change 3793200 by Marcus.Wassmer

	Copying //UE4/Partner-IDV-SpeedTree to Dev-Rendering (//UE4/Dev-Rendering)
	Speedtree 8 support

Change 3793206 by Brian.Karis

	Added color grading control BlueCorrection to correct for artifacts with "electric" blues due to the ACEScg color space. Bright blue desaturates instead of going to violet.

	Added color grading control ExpandGamut which expands bright saturated colors outside the sRGB gamut to fake wide gamut rendering.

	ACES changes.

Change 3793344 by Marcus.Wassmer

	Fix editortest compile

Change 3794285 by Guillaume.Abadie

	Serializes PermutationId according to archive rendering version to avoid issues with old material that were serializing a shader map into UObject.

Change 3794307 by Guillaume.Abadie

	Resaves uassets that were modified between 3789648 and 3794285

Change 3794627 by Mark.Satterthwaite

	Implement two components for MTLPP, an IMP cache for Objective-C selector implementations & an interposition framework for those same selectors:

	- imp_SelectorCache & friends provide the IMP caching for each of the Metal protocols which constitute most of the API, so far I've not covered the Metal classes used for the various descriptor/initializer types. Each type has its own IMPTable which caches the selector's implementation pointer and provides the mechanism to hook that implementation. As Objective-C is runtime dynamic this look up must be performed on the actual Class value returned by an object at runtime - you can't do this at compile time. Even things like NSString which appear compile-time static are really not as NSString is an alias for a class-cluster (NSString, NSMutableString, __NSInlineString and more).
	- The interpose directory contains MTI* files which are the framework for interposing all the functions in Metal's runtime API - I deliberately omit the descriptor classes & read-only functions as there's no benefit to interposing them - which I can build off to create a trace tool or a superior validation layer. Right now this is Mac only as there'll be some problems to solve for iOS/tvOS due to difference in linking requirements - not insurmountable.
	- Rebuild MTLPP's implementation of the C++ wrapper classes around the IMPTable's - this means we avoid all the objc_msgSend overhead for all the classes and functions whose implementations are cached. Right now the IMPTable is going to incur a look-up for all non-copy/move constructors which is suboptimal - ideally the Metal IMPTables would be cached in the Device object as they will be consistent within a single Device.
	- Sort out the MTLPP availability logic - it now exports the availability warnings to the caller and internally just blithely assumes it may call the functions, the caller is responsible for ensuring that calls are made only on appropriate devices & OSes. This reduces MTLPP complexity and better fits how MetalRHI works.
	- Fix a number of retain/release bugs that were lying dormant in MTLPP but exposed by the switch to IMPTables.
	- Add tvOS support.

	Next up, put this into MetalRHI and start fixing all the fallout.

Change 3794631 by Mark.Satterthwaite

	Missed updating mtlpp's build.cs for TVOS.

Change 3794651 by Uriel.Doyon

	UPointLightComponent::GetUnitsConversionFactor() now takes the cone angle as parameter. This allows to fix spotlight unit conversion when using lumens.

Change 3794720 by Guillaume.Abadie

	Fixes a bug in Global{Bilinear,Trilinear}ClampedSampler that was actually doing a Point sampling.

Change 3794749 by Mark.Satterthwaite

	Fix mtlpp.build.cs paths.

Change 3794856 by Mark.Satterthwaite

	Fix some shadowing warnings.

Change 3795484 by Daniel.Wright

	Implemented the Spherical Harmonic windowing algorithm from 'Stupid Spherical Harmonics (SH) Tricks'
	New WorldSettings Lightmass property VolumetricLightmapSphericalHarmonicSmoothing controls the global amount of smoothing applied

Change 3795590 by Brian.Karis

	Area light fixes

	Fixed order of operations. This helps mixing of SourceRadius, SourceLength, and SoftSourceRadius.

Change 3796832 by Marcus.Wassmer

	Correct shouldcache condition for new resolve shader

Change 3796884 by Marcus.Wassmer

	Doing it right this time.

Change 3797196 by Mark.Satterthwaite

	More updates to MTLPP to make things simpler and reduce the number of spurious Objective-C warnings that are emitted because of the way we are using the runtime.

Change 3797200 by Daniel.Wright

	Lightmass now uses the highest density VolumetricLightmapDensityVolume settings that affect any part of a cell

Change 3797221 by Daniel.Wright

	Reduced default SphericalHarmonicSmoothing based on RoboRecall tests.  Now only active with strong direct lighting from static lights by default.

Change 3797411 by Brian.Karis

	Disable ExpandGamut for old tone mapper.

Change 3797462 by Mark.Satterthwaite

	More build warnings silenced after changing to the lowest possible deployment target OS for each library.

Change 3797585 by Mark.Satterthwaite

	Range-based-For support in the NSArray wrapper.

Change 3797836 by Mark.Satterthwaite

	Even more forward-declarations to avoid system headers poking through to the including code from mtlpp.

Change 3798027 by Mark.Satterthwaite

	Fix handling of nil objects, on which no functions may be called, command-buffer retention and IMP declaration.

Change 3798154 by Mark.Satterthwaite

	Fix some egregious memory leaks that rewriting to use mtlpp exposed before we carry on - don't want these slipping into 4.19.

Change 3800990 by Mark.Satterthwaite

	Typedef all the completion-handler callback types in mtlpp to make future me's life easier.

Change 3801400 by Chris.Bunner

	Improving automated test errors on failure to generate report data.

Change 3801726 by Mark.Satterthwaite

	Correct some function availability and the command-buffer error status in mtlpp.

Change 3801808 by Chris.Bunner

	Added DefaultScalability.ini to EngineTest that forces all quality levels to Engine default Epic for now to improve consistency.

Change 3801862 by Marcus.Wassmer

	Update automated tests with color gamut change

Change 3802214 by Chris.Bunner

	When running automated tests in and editor-locked PIE viewport, skip resizing as the editor can't handle this.
	Added bindable delegate called when ScreenshotRequest is processed - Useful to allow screenshots to override and restore settings per capture.

	#jira UE-53188

Change 3802243 by Chris.Bunner

	Added button to automated test screenshot browser to add or replace all outstanding test reports if appropriate.
	DeleteAllReports button is now only enabled whilst there are reports in the list.

Change 3802372 by Chris.Bunner

	Updating more test screenshots.

Change 3803683 by Chris.Bunner

	Adding more logging and multiple attempts to automated test report network save.
	Added small wait on repeated operations that are known to fail.

Change 3803826 by Rolando.Caloca

	DR - vk - Fix merge issue

Change 3804181 by Chris.Bunner

	Tentative fix for CIS test failure.

Change 3804236 by Chris.Bunner

	Additional logging for case where file write silently fails, report platform-specific error.

Change 3804303 by zachary.wilson

	Cleaning up assets in QAGame saved with empty engine versions to resolve warnings seen when launching on

Change 3804410 by Chris.Bunner

	Added additional logging when automated screenshot test fails due to size mismatch.
	Mismatched bounds are colored red in the delta.

Change 3804455 by Mark.Satterthwaite

	Fix a small number of persistent memory leaks on the Mac build that slowly consume more and more memory as you use the Editor - interacting with menu's was particularly egregious as each NSMenu would leak after you move away.

	#jira NA

Change 3804667 by Chris.Bunner

	Speculative CIS fixes.

Change 3806008 by Chris.Bunner

	Partially reimplementing backed-out CL 3804181 to improve consistency of how automated screenshot test settings are applied/restored.

	#tests CIS preflight job 8174412

Change 3806909 by Mark.Satterthwaite

	Use the vertex-shader's in-out mask to ensure that we only validate legitmate vertex-streams in Metal's DrawIndexedPrimitive implementation.

	#jira UE-53046

Change 3807059 by laz.matech

	Checking in QAGame Rendering Map, QA-PhysicalLightingUnits, for testing Physical Light Units.
	Wanted to get this in before copy up.

	#Jira none

Change 3807726 by Chris.Bunner

	Removed a check that we can't fix up. The check hits unbound buffers which it assumes means a failure but is actually due to m.v.fetch. We don't have the information available to know which are which removed from the input without reading from the shader.

	#jira UE-53046

Change 3807800 by Guillaume.Abadie

	Fixes some warning in shader headers.

Change 3807804 by Guillaume.Abadie

	Back out changelist 3807800

Change 3807807 by Guillaume.Abadie

	Relands shader header warnings.

Change 3808046 by Chris.Bunner

	Dropping a new automated test error back to a warning as this may lead to genuine issues being ignored in the short term.

Change 3809579 by Chris.Bunner

	Back out changelist 3774677.

	#jira UE-53483

Change 3809620 by Chris.Bunner

	Updating animated cloth test screenshot.

Change 3803629 by Chris.Bunner

	Rebuilt CornellBox and DistanceField test maps, updated screenshots.

Change 3787045 by Guillaume.Abadie

	Moves some global samplers to Common.ush

Change 3809756 by Chris.Bunner

	Updating animated cloth test screenshot.

[CL 3809764 by Chris Bunner in Main branch]
2017-12-15 12:47:47 -05:00
Max Chen
681d8dbbd5 Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3800792)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================


Change 3631172 by Max.Chen

	Sequence Recorder: Record to the specified target animation for the target actor only. Newly tracked components will have newly created animations so that they don't record to the same target animation assets.

	#jira UE-49304
	#jira UE-49216
	#jira UE-49300

Change 3632895 by Max.Chen

	Sequencer: Fixed crash caused by erroneous persistent references to FSequencer.

	#jira UE-48647
	#jira UE-48383
	#jira UE-47661

Change 3634864 by Max.Chen

	Sequencer: Bake transforms

	#jira UE-49136

Change 3634879 by Max.Chen

	Sequence Recorder: Close the target animation asset editor if it exists before recording into it.

	#jira UE-49216

Change 3650553 by Max.Chen

	Sequencer: Switch shot display name to FString so that it's not localized.

	#jira UE-49824

Change 3650848 by Darren.Pegg

	Linear Timecode Plugin - first pass - still needs output interface

Change 3653174 by Max.Chen

	Sequencer: Allow blending for vector tracks

	#jira UE-49809

Change 3653205 by Max.Chen

	Sequencer: Fix default burnin content.

	#jira UE-49824

Change 3653570 by Darren.Pegg

	Win32 Build fix: EmptyLinkFunctionForStaticInitializationLinearTimecode

Change 3658673 by Darren.Pegg

	Timecode - Adding Accessors, renaming files

Change 3663633 by Max.Chen

	Sequencer: Add option to export an object's transform to a camera anim asset.

	#jira UE-49599

Change 3665971 by Max.Chen

	Sequence Recorder: Add an active column for sequence recorder

Change 3666066 by Max.Chen

	Sequencer: Suspend broadcast of selection delegates when performing multiple operations.

	#jira UE-40371

Change 3671057 by Max.Chen

	PR #4055: Fixed ACameraRig_Rail PreviewMeshes to match Spline Component (Contributed by Hemofektik)


Change 3677104 by Max.Chen

	Sequencer: Add transaction for easing length.

	#jira UE-50588

Change 3677105 by Max.Chen

	Sequencer: Restore pre-animated state when changing active channels.

	#jira UE-50473

Change 3681069 by Max.Preussner

	LinearTimecode: Processing samples only if they have been dequeued successfully

Change 3681783 by Andrew.Rodham

	Control Rig: Fixed crash attempting to zero out array with the wrong size

Change 3681949 by Darren.Pegg

	OnTimecodeChange Delegate, Comments in DropTimecode, DropTimecode to string auto conversion

Change 3682222 by Andrew.Porter

	EngineTest: Enabled MP4 Media Player test in the level ShaderModels. Set the texture ShaderModelPlayer_Video to use the correct media player.

	#jira UE-47213

Change 3683523 by Andrew.Rodham

	Sequencer: Display sub sequence name on binding ID pickers rather than the sub section name

Change 3684318 by Max.Chen

	Sequencer: Fix crash in dragging a level sequence into the tree area.

	#jira UE-50902

Change 3687609 by Max.Chen

	Curve Editor: Add ModifyOwnerChange to CurveOwnerInterface. Call mark as changed when modifying keys or tangents.

	#jira UE-50882

Change 3687617 by Max.Chen

	Sequencer: Move some commands out of the generic sequencer command bindings so that they don't take over the viewport. ie. End for "Snap to Floor" should still function in the viewport.

	#jira UE-50997

Change 3687969 by Andrew.Rodham

	Sequencer: New compile on the fly logic
	  - Sequencer is now able to compile partially or completely out-of-date evaluation templates from the source data as it needs. This affords much more efficient compilation when working within sequencer.
	  - Added the concept of 'instance data' for sub sequences, available through the IMovieScenePlayer interface or persistent data stores. This replaces the compilation of specific templates for control rig templates.
	  - Moved sub tracks and sections to MovieScene module
	  - Removed the concept of shared tracks. Any previous uses should port over to shared execution tokens instead.

	#jira UE-46789

Change 3689884 by Max.Chen

	Sequencer: Remove null tracks on object bindings. Tracks can become null if they're from a plugin and the plugin is disabled.

	#jira UE-50839

Change 3690130 by Andrew.Rodham

	Sequencer: Fixed UMG animations not working with blueprint nativization

Change 3690162 by Andrew.Rodham

	Sequencer: Fix assert when using filler shots

	#jira UE-51029

Change 3691904 by Max.Chen

	Sequencer: Fix overlap by looking at the key behind as well. This fixes a bug if there's 3 keyframes on consecutive frames, if you zoom out, you should see two bordered keys when the overlap threshold is passed.

	#jira UE-50993

Change 3692149 by Andrew.Rodham

	Sequencer: Change FSortByPrioritySegmentBlender::Blend to fall back to flag comparison if any sections are null for automation tests.
	  - Combinations of null/non-null will never happen in the wild because we either run with sections or without, but the static analysis doesn't know that

Change 3692212 by Andrew.Rodham

	Core: Changed TRange to pass-by-value for small types, inlined some functions

Change 3693044 by Max.Chen

	Sequencer: Update pivot location for selection when closing sequencer.

	#jira UE-51132

Change 3693061 by Max.Chen

	Sequencer: Remove force evaluate on end scrubbing. Backout previous fix because 3657907 is the real fix.

	#jira UE-45905

Change 3694308 by Andrew.Rodham

	Sequencer: Sub tracks now blend correctly again

	#jira UE-51076

Change 3694365 by Andrew.Rodham

	Sequencer: Fixed exponential slow down when compiling large quantities of sub sequences on cook caused by not clamping sub-sequence compilation correctly

Change 3698176 by Max.Chen

	Sequencer: Enable the camera cut track when popping back to the master only if there's a camera cut track in the master. This fixes an issue where if you don't have a camera cut track in the master, the camera gets locked to a camera cut in a subscene and you can't toggle out of it.

	#jira UE-51332

Change 3698979 by Max.Chen

	Sequencer: Fix delay before warmup causing sequences not to render.

	#jira UE-51307

Change 3700149 by Max.Chen

	Sequencer: Fix delay at shot boundaries causing sequences to not play back and render out. The shot id needs to be tracked to determine whether a new shot is encountered.

	#jira UE-51307

Change 3705624 by Max.Chen

	Sequencer: Reset drop node on drag leave

Change 3718781 by Max.Preussner

	MediaAssets: Removed obsolete pointer checks (Playlist is always valid); added checks to enforce this invariant

Change 3721586 by Max.Preussner

	MediaAssets: Added verbose logging to MediaPlayer BP functions

Change 3721662 by Max.Preussner

	WmfMedia: Fixed media session not generating PlaybackEndReached event when session forced to stop

	#jira UE-50962

Change 3722954 by Max.Preussner

	MediaAssets: Removed looping option from play lists

Change 3723076 by Andrew.Porter

	Removed controls for looping playlist.

Change 3724202 by Max.Chen

	Sequencer: Spawn time optimizations

	#jira UE-32885

Change 3725359 by Max.Chen

	Sequencer: Fix spawnables not playing back. bIsEditorPreviewActor = false for sequencer spawnables so that BeginPlay() doesn't get skipped.

	#jira UE-51750

Change 3725362 by Max.Chen

	Sequencer: Change check to ensure for null object in property actuate. This prevents a crash when there's a track without a binding object. This occur when pasting a property track to the root.

	#jira UE-51713

Change 3725802 by Max.Chen

	Sequencer: Add the ability to drag sections up.

	#jira UE-43305

Change 3726520 by Max.Preussner

	MediaAssets: Fixed OnMediaOpened called when looping a source

	#jira UE-51773

Change 3728509 by Max.Chen

	Sequencer: Fix crash pasting a camera cut track because the outer isn't set to the movie scene.

	#jira UE-51787

Change 3729216 by Max.Chen

	Sequencer: Fix pre edit property chain broadcast so that the property path will include possible struct/array node.

	#jira UE-51525

Change 3729248 by Max.Chen

	Sequencer: Add default expansion states to allow track editors to specify them per track type.

	Material track is currently the only track that defaults to expanded.

	#jira UE-21741

Change 3729392 by Max.Preussner

	ImgMedia: Disabling video output when video track is selected

Change 3729452 by Max.Preussner

	MediaPlayerEditor: Showing a notification if no video track available or selected

Change 3729462 by Max.Preussner

	MediaPlayerEditor: Creating overlay font only once

Change 3731155 by Max.Chen

	Sequencer: Set row index when creating a new take

	#jira UE-51867

Change 3731446 by Max.Chen

	Sequencer: Add null check and warning for invalid GetParameterCollectionInstance.

Change 3731640 by Max.Chen

	Sequencer: Automatically create a camera cut track if a camera is dropped and there's no existing camera cut or there's no existing camera cut sections.

	#jira UE-51846

Change 3731653 by Max.Chen

	Sequencer: Defer details panel updates on scrubbing and playing.

	#jira UE-48448

Change 3732597 by Max.Chen

	Sequencer: Don't swap the camera cut section if it already exists and a camera is created.

Change 3733554 by Max.Chen

	Sequencer: Fix crash when existing hotspot is null.

Change 3734305 by Max.Preussner

	MediaAssets: Fixed assertion when assigning same media player to a media texture twice

	#jira UE-51012

Change 3735735 by Max.Preussner

	MediaFrameworkTest: Setting MediaAssets log category Verbose to prevent log spam in Editor

Change 3736393 by Max.Chen

	Sequencer: Set min/max values for generic key area so that they don't default to 0,10.

	#jira UE-52012

Change 3736804 by Max.Chen

	Sequencer: Fix rotation rotator->quat->rotator conversion which prevents you from typing in a rotation of 0,0,320 into the key editor. Unwind rotations from the previous transform to the current transform so that the nearest rotation is set rather than the rotator->quat->rotator conversion.

	#jira UE-52009
	#jira UE-34816

Change 3737790 by Max.Chen

	Sequencer: Follow up fix to quat->rot->quat so that unwinding is only processed if the last transform is valid.

Change 3739738 by Max.Chen

	PR #4184: Unregister Missing TrackEditors in MovieSceneTools (Contributed by LordNed)


Change 3741910 by Max.Preussner

	MfMedia: Simplified track switching code; enabled seeking

Change 3742171 by Max.Preussner

	MediaAssets: Fixed timecode check to include current presentation time

Change 3744889 by Max.Chen

	Sequencer: Use drag and drop actor factory if specifiied. This ensures that the correct actor factory is used in creating the object template for the sequencer spawner. This fixes some spawnables not getting created properly (ie. Empty Actor)

	#jira UE-51678

Change 3746049 by Andrew.Rodham

	FBX Import: Fixed tangent overrides producing the wrong type of key tangent modes

Change 3747870 by Max.Chen

	Sequencer: Update auto scroll when moving keys/sections.

	#jira UE-31212

Change 3747885 by Max.Chen

	UMG: Remove template instance finish on pause. It appears that was only there to stop audio (CL #3161056). Instead, evaluate in the stopped position with the stopped playback state.

	#jira UE-47749

Change 3747914 by Max.Chen

	Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState.

	#jira UE-49480

Change 3747915 by Max.Chen

	Sequencer: Set default completion mode for all sections to project default.

	#jira UE-49480

Change 3748377 by Max.Preussner

	EngineTest: Fixed media player automation test BP

	#jira UE-50637

Change 3748531 by Max.Preussner

	EngineTest: Fixed media player not opening media during FTest setup

	I fixed up the Blueprint. Also, don't use PlayOnOpen on the media player if you don't intend to play the movie after opening. You can call Pause right after opening. If you enable PlayOnOpen, the order of operations will not work, because it will first call Pause via the IsReady check in Tick and then Play via the PlayOnOpen checkbox. I disabled PlayOnOpen.

	#jira UE-47207

Change 3750362 by Max.Chen

	PR #4205: parameter not used bug fixes (Contributed by shrimpy56)


Change 3750885 by Max.Chen

	Sequencer: Prevent throttling on the curve editor so that editor world tick can apply.

	#jira UE-51624

Change 3757123 by Max.Preussner

	MediaAssets: Allowing media players to be part of GC clusters

	#jira FORT-59774
	#jira UE-51943

Change 3764055 by Max.Chen

	Sequencer: Add SetPlaybackPosition as latent action to fix crash when calling SetPlaybackPosition in an event.

	#jira UE-52270

Change 3764555 by Max.Chen

	Sequencer: Change camera cut binding from guid to object binding id to allow for subscene bindings

Change 3764613 by Max.Chen

	Sequencer: Show binding ID picker customization on all details panels. Allow creation of new camera cut sections from existing bindings.

	Deprecate AddNewCameraCut(FGuid)

Change 3766389 by Max.Chen

	Sequencer: Don't override existing camera binding id on postload if it's valid.

Change 3766432 by Max.Chen

	Sequencer: Switch constraint guid to constraint binding ID

	#jira UE-52438

Change 3767160 by Max.Preussner

	WmfMedia: Added more logging

Change 3767843 by Max.Preussner

	MediaAssets: Fixed Crash in UMediaSoundComponent::UpdatePlayer

	#jira UE-52594

Change 3771038 by Max.Preussner

	Engine: Changed message log back to ensure

	Cannot use message log on render thread as it may call LoadModule

Change 3771071 by Max.Preussner

	MediaCompositing: Fixed default media plane material

Change 3771287 by Max.Preussner

	Engine: Changed ensure to global log

Change 3771450 by Max.Preussner

	MediaAssets: Fixed crash when dragging media player viewport

	#jira UE-52675

Change 3771461 by Max.Preussner

	ImgMedia: Fixed seeking not working when paused

	#jira UE-52677

Change 3772999 by Andrew.Rodham

	Sequencer: Added the ability to supply an instance data object to sequence runtime evaluation
	  - This allows systems to inject information into a sequence at runtime, enabling more dynamic control of tracks
	  - Level sequence actors use this by default to supply a dynamic 'transform origin' to all component transform tracks, to which all absolute transform sections will be added.

	#jira UE-46003

Change 3774633 by Max.Preussner

	MediaAssets: Fixed MediaPlayer.Prev/Next not playing automatically if player was playing previously

	#jira UE-52714

Change 3774961 by Max.Preussner

	UdpMessaging: Patch to make message serialization notification thread-safe

	#jira UE-52624

Change 3778108 by Max.Chen

	Sequencer: Scroll in track area.

	#jira UESEQ-330

Change 3778270 by Max.Chen

	Sequencer: Copy/cut/paste/duplicate object bindings

	FMovieSceneCopyableBinding - struct containing the copied FMovieSceneBinding, FMovieScenePossessable and FMovieSceneSpawnable
	MovieScene - AddPossessable, AddSpawnable with existing possessable or spawnable
	ISequencer - FOnMovieSceneBindingsPasted to allow fixing up bindings on paste

	#jira UESEQ-352, UESEQ-335

Change 3778674 by Max.Preussner

	Engine: Fixed online documentation for external texture registry

Change 3778699 by Max.Preussner

	Engine: Fixed external textures not registering correctly in all cases

	#jira UE-52648

Change 3778776 by Max.Preussner

	Engine: Corrected code comments for external texture registry

Change 3779153 by Max.Preussner

	LinearTimecode: Fixed plugin category

Change 3779166 by Max.Preussner

	WmfMedia: Reversing FourceCC display string, so it displays correctly

Change 3780576 by Max.Chen

	Sequencer: Fix viewport invalidation so that it happens on sequence evaluation.

	#jira UE-52836

Change 3780619 by Max.Chen

	Sequencer: Always save default spawnable state regardless of focused sequence. This fixes a bug where if you step back to the master sequence (and the spawnable still exists), and then scrub outside the region where the spawnable exists, it gets destroyed but saved default spawnable state doesn't get called because it's no longer the focused sequence.

	#jira UE-52008

Change 3781227 by Max.Chen

	Sequencer: Add playback speed settings menu

	#jira UESEQ-384

Change 3782213 by Max.Preussner

	WmfMedia: Fixed H.265 frames being dropped due to false negative buffer size check

	#jira UE-52859

Change 3782239 by Max.Chen

	Sequencer: Add shortcut to tooltips

	#jira UE-52795

Change 3782388 by Max.Preussner

	WmfMedia: Fixed IYUV encoded AVI not playing correctly

	#jira UE-52855

Change 3782541 by Chris.Babcock

	Protect against asking for duration before prepare completed in movie player
	#jira UE-52805
	#ue4
	#android

Change 3787676 by Max.Chen

	Sequencer: Export unmatched float properties to custom attributes

	#jira UE-52983

Change 3787788 by Max.Preussner

	Extras: Natvis for FTimespan

Change 3789419 by Max.Chen

	Sequencer: Fix import camera so that when new cameras are created, values from the fbx are going only to the newly created cameras.

	Also, added bReduceKeys and bReduceKeysTolerance to import fbx.

	#jira UE-52997

Change 3789628 by Max.Chen

	Sequencer: Remove Shift-C and Shift-D as a hotkey for toggling the cinematic viewport as it was causing some confusion when users accidentally hit it.

Change 3789716 by Andrew.Rodham

	Seqeuncer: Fixed slot animation not being restored for montages that are recreated during evaluation

	  - The issue here is that the animation system can deem montages as inactive at any point, and will re-create a new montage instance if this is the case. Previously, we stored pre-animated state on the anim instance, and cached the montage that we played, which meant that we attempt to restore a stale montage.

	  - The solution is to store pre-animated state for the montages, and cache the anim instance. This means we'll always store pre-animated state if the montage is re-created.

	#jira UE-49981

Change 3789874 by Max.Chen

	Sequencer: Add option to only show selected nodes only

	ISequencer - Added OnGetIsBindingVisible(), OnGetIsTrackVisible()
	LevelEditorSequencerIntegration - implement OnGetIsBindingVisible based on actor selection

	#jira UESEQ-357

Change 3789877 by Max.Chen

	Control Rig: Implement IsTrackVisible to show nodes in the sequencer tree that are selected.

	#jira UESEQ-357

Change 3791514 by Andrew.Rodham

	Image Plate: Fixed image plates not showing up in high res screenshots
	  - The image plate mesh had a LOD index of -1 which meant it never showed up when a LOD to render was specified
	  - Also simplified the bounds calculation

	#jira UE-51764

Change 3791596 by Max.Chen

	Sequence Recorder: Don't record editor only components

	#jira UE-49071

Change 3791659 by Andrew.Rodham

	Sequencer: Event struct payloads now support user defined struct default values on creation

	#jira UE-45430

Change 3791718 by Max.Chen

	Sequence Recorder: Fix level sequences not triggering when recording. Level sequences would not get recorded if the world settings actor was not recorded.

Change 3791761 by Max.Chen

	Sequencer: Find available non-overlapping row index when adding subsections.

Change 3791837 by Max.Chen

	Sequencer: Fix sequencer not updating after toggling Bind Sequencer to PIE/Simulate while PIE is active.

Change 3791875 by Max.Chen

	Sequence Recorder: Add recording button now adds for any selected actors.

Change 3791880 by Max.Chen

	Sequence Recorder: Fix end pie not stopping sequence recording if not recording world settings.

Change 3791932 by Max.Chen

	Sequence Recorder: Record spawned actors immediately so that they won't be missed if they're deleted before tick.  Clean up queued recordings that were from spawned actors.

Change 3791954 by Max.Chen

	Sequence Recorder: Don't process if not recording on end pie.

Change 3791955 by Max.Chen

	Sequence Recorder: Fix recording spawnables not getting the correct position for being spawned at.

	Set a transform on the movie scene spawnable which will be used if the root component of the object template doesn't exist.

Change 3792061 by Max.Chen

	Sequence Recorder: Change FOnRecordingStarted and FOnRecordingFinished to multicast delegate.

	If a sequence being recorded into is currently open in sequencer, it gets reloaded to prevent crashes.

Change 3792271 by Max.Chen

	Sequence Recorder: Duplicate the actor to trigger before playing so that a sequence can be recorded and played back at the same time.

	#jira UE-49069

Change 3792292 by Max.Preussner

	MfMedia: Fixed tracks being reported in reverse order

	#jira UE-53074

Change 3792811 by Max.Chen

	Sequencer: Add option to disable camera cuts on the movie scene player.

Change 3793341 by Max.Preussner

	AvfMedia: Fix for crash when opening AVF Media after opening multiple players

	Merged from shelved CL in Dev-Rendering

	#author richard.wallis

	#jira UE-52383

Change 3793642 by Max.Chen

	Sequencer: Delete and rename icons.

	PR #4194: Improvements to Sequencer (Contributed by projectgheist)

	#jira UE-52139

Change 3794678 by Max.Chen

	Sequencer: Fix crash on HandleRecordingFinished

	#jira UE-53178

Change 3795007 by Max.Preussner

	AudioMixer: Fix for AVF Media Player audio is garbled and has static

	#author ethan.geller

	#jira UE-52785

Change 3795103 by Max.Chen

	Sequencer: Add bKeyCreated for FKeyPropertyResult and notify movie scene data changed when a key is created.

	#jira UE-53175

Change 3795457 by Michael.Trepka

	Reverted one of the changes from CL 3793341 as it was causing a crash at exit

	#jira UE-53196

Change 3795739 by Max.Chen

	Sequencer: Set ease in/out objects as transactional.

	#jira UE-50594

Change 3796871 by Max.Preussner

	MediaAssets: Fixed media texture initialization related crash on Metal; fixed white output on inactive media player; added proper support for clear color

	#jira UE-51940
	#jira UE-52932

Change 3796921 by Michael.Trepka

	Fix for a crash in AvfMediaPlayer related to reusing FAvfMediaPlayer object

	#jira UE-53181

Change 3797176 by Max.Preussner

	MediaAssets: Fixed white flicker when rapidly swapping media players on a media texture

	Also no longer clearing media textures each frame if they are not in use

	#jira UE-52932

Change 3797515 by Max.Chen

	Actor Sequence: Add nullptr check - fix actor sequence crash when actor sequence doesn't exist.

	#jira UE-49103

[CL 3800998 by Max Chen in Main branch]
2017-12-11 11:42:27 -05:00
Chris Bunner
337291cb1d Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894)
#rb Rendering
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 3658809 by Chris.Bunner

	Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data.

Change 3658842 by Chris.Bunner

	Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults.

Change 3695269 by Arne.Schober

	DR - Make clang happy wreorder

Change 3695418 by Guillaume.Abadie

	Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp.

Change 3695430 by Guillaume.Abadie

	Fixes missing BeginFrame dynamic resolution event in EngineTest.

Change 3695469 by Guillaume.Abadie

	Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters.

Change 3696091 by Guillaume.Abadie

	Fixes Linux compilation failure in DynamicResolution.cpp

Change 3696593 by Chris.Bunner

	Fixed typo in vetex factory enum.

Change 3696596 by Chris.Bunner

	Added material attributes type checking to If material expression.
	Updated If material expression to validate compilation of inputs.

Change 3696597 by Chris.Bunner

	Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.

Change 3696599 by Chris.Bunner

	Fixed material instance parameter visiblity when using nested static switches across functions.

	#jira UE-50878

Change 3696734 by Chris.Bunner

	Return type fix.

Change 3697123 by Guillaume.Abadie

	Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits.

Change 3697125 by Guillaume.Abadie

	Fixes compilation failure in MaterialExpressionIf.h

Change 3697127 by Guillaume.Abadie

	Fixes compilation failure in DynamicResolution.cpp on shipping build.

Change 3697135 by Guillaume.Abadie

	Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest.

Change 3697199 by Guillaume.Abadie

	Fixes TAA upsample's shader compilation failure on Mac.

Change 3697220 by Guillaume.Abadie

	Makes static analysis happy again.

Change 3697280 by Chris.Bunner

	Fixing up invalid casts in material layers validation.

Change 3697366 by Rolando.Caloca

	DR - hlslcc - Fix warning

	#jira UE-43988

Change 3697451 by Rolando.Caloca

	DR - vk - Per pipeline descriptor pools
	Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation
	Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS

Change 3697477 by Rolando.Caloca

	DR - vk - Custom memory allocator
	Remove old/unused stats

Change 3697486 by Rolando.Caloca

	DR - vk - Fix validation issue

Change 3697488 by Richard.Wallis

	Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6.  Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame.

	Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter.

	#jira UE-37553

Change 3697501 by Richard.Wallis

	Move audio processing over to audio bus tap.  Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework.  This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp.

	Original Code Review Description:

	Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer.  This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac.  There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled.

	- Stuttering Audio Performace issue investiagation:  Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one.  Basic investigation seems to point to somewhere in the engine audio handing.  When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue.  I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough.  This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec.

	#jira UEPLAT-1677

Change 3697517 by Richard.Wallis

	XCode 9.0 extra nullability specifiers required.

Change 3697537 by Richard.Wallis

	Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp

Change 3697670 by Rolando.Caloca

	DR - vk - Fix mapstaging surface

Change 3697846 by Uriel.Doyon

	Allow denormalized values when converting float32 to float16.

Change 3697892 by Uriel.Doyon

	Fix for unaligned structure elements

Change 3699335 by Richard.Wallis

	Mac compile fix - turns out I did need these nullability specifiers here.

Change 3699663 by Guillaume.Abadie

	Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries.

Change 3699959 by Rolando.Caloca

	DR - Fix barrier in the middle of render pass

Change 3699969 by Rolando.Caloca

	DR - vk - Change dump layer location so it prints out validation ids

Change 3700356 by Guillaume.Abadie

	Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI.

Change 3701105 by Guillaume.Abadie

	Ignore per view automatic mip bias on texture type other than 2d textures.

	#jira UE-51396

Change 3702297 by Richard.Wallis

	Mac compile fix for nullable specifier.  Looks like Obj class using the C++ class also needs this otherwise it throws.  Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok.

	#jira UE-51386

Change 3702357 by Richard.Wallis

	Mac nullability compile fix - again.  Looks like I fell foul of that xcode compile caching!
	#jira UE-51386

Change 3702424 by Guillaume.Abadie

	Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading.

	#jira UE-51395

Change 3702464 by Guillaume.Abadie

	Fixes wrong viewport to buffer conversion of the distortion.

	#jira UE-51406

Change 3702819 by Guillaume.Abadie

	Fixes planar reflections with secondary screen percentage for HighDPI editor viewports.

Change 3703732 by Guillaume.Abadie

	Removes unecessary check(); when there is more than 2 players with planar reflections.

	#jira UE-51436

Change 3704302 by Guillaume.Abadie

	Removes unecessary Interface suffix on new dynamic resolution related interfaces

Change 3704390 by Chris.Bunner

	Fixed a coincidentally correct define.

Change 3704730 by Rolando.Caloca

	DR - vk - Fix map for depth surfaces

Change 3704739 by Rolando.Caloca

	DR - Debug label on D3D11 UAVs
	- Validate when running -d3debug

Change 3705000 by Chris.Bunner

	Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254.
	Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties.

Change 3706065 by Guillaume.Abadie

	Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView.

Change 3706464 by Chris.Bunner

	Fixed material property translate overrides that were generating code in the wrong entry.
	Fixed conditions  in If material expression GetInputType and IsMA check.

	#jira UE-51368

Change 3706641 by Chris.Bunner

	Missing "break" in switch statement (which unfortunately needs another bump to resolve).

Change 3706642 by Guillaume.Abadie

	Fixes assertion failure when r.TemporalAA.EnableUpscale = 1

Change 3706650 by Gil.Gribb

	UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code.

Change 3706733 by Daniel.Wright

	Print Embree Build time

Change 3706841 by Daniel.Wright

	EmbreeFilterFunc4 now handles masked out intersections properly

Change 3707437 by Rolando.Caloca

	DR - vk - Android compile fix

	#jira UE-51474

Change 3707785 by Guillaume.Abadie

	Fixes viewport issue in bloom setup pass with TAA upsample.

Change 3709623 by Rolando.Caloca

	DR - vk - Missing barrier for reading into cpu

Change 3709633 by Rolando.Caloca

	DR - vk - Compile fix

Change 3710454 by Mark.Satterthwaite

	Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D.
	- Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load.
	- RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders).
	- Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>.
	- Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics.
	- Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore.
	- Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way).
	- STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else.
	- Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes.

Change 3710456 by Mark.Satterthwaite

	Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups.

Change 3710457 by Mark.Satterthwaite

	DX11 texture formats for Mac Metal please!

Change 3710480 by Mark.Satterthwaite

	Permit RHI thread and parallel execution in Mac -game mode again.

Change 3710522 by Mark.Satterthwaite

	MSVC type-mismatch error fixes.

Change 3710580 by Mark.Satterthwaite

	Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10).

Change 3710616 by Mark.Satterthwaite

	Missing file.

Change 3712972 by Guillaume.Abadie

	Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass.

Change 3712979 by Guillaume.Abadie

	Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale.

Change 3713406 by Mark.Satterthwaite

	Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now.

Change 3713494 by Richard.Wallis

	Fix for hitch when PIE unloading sublevel.  PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads.  However they all just need to read the data not change it.  Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention.

	Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too.

	Also tested again repro in linked bug UE-24711.

	#jira UE-40533

Change 3713612 by Mark.Satterthwaite

	Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744

	This should make Light Propagation Volumes potentially viable on non-Microsoft platforms.

Change 3713623 by Mark.Satterthwaite

	Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal.

	Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be.

Change 3713636 by Mark.Satterthwaite

	Enable LPVs for Mac Metal.
	- Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation.
	- MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible.
	- Turn on LPVs for Metal as it works now.

Change 3714049 by Guillaume.Abadie

	Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer.

Change 3714306 by Guillaume.Abadie

	Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries.

Change 3714714 by Mark.Satterthwaite

	Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains.

Change 3716104 by Mark.Satterthwaite

	Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update.

Change 3716120 by Mark.Satterthwaite

	Silence static-analysis.

Change 3716158 by Guillaume.Abadie

	Rewrites editor primitive compositing to support TAA upsample.

	This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.

Change 3716271 by Daniel.Wright

	Lightmass correctness fixes
	* After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions
	* Photon density trimming intended for direct photons was affecting indirect photons as well.  This caused high noise for point / spot lights with a large attenuation radius.  Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality.
	* Removed legacy fudge factor on point / spot light photon energy
	* Spotlights no longer emit based on indirect photon paths.  Fixes excessive photon energy from spot lights as they were emitting outside of the cone.
	* Fixed photons computing one more bounce than requested.
	* Added an option to use the Radiosity solver for all multibounce, replacing photons.  Useful as a reference but generally too much noise indoors.
	* Fixed visualization of photons without final gather

Change 3716434 by Mark.Satterthwaite

	Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds.

Change 3716491 by Chris.Bunner

	Fixing up an edge-case on a recent optimization.

Change 3716611 by Guillaume.Abadie

	Allows secondary screen percentage >= 100%.

Change 3716977 by Guillaume.Abadie

	Back out changelist 3716158 to unblock QA pass.

	#jira UE-51580

Change 3717111 by Arne.Schober

	Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/
	Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small.
	CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready.

Change 3717127 by Mark.Satterthwaite

	Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice.

Change 3717178 by Mark.Satterthwaite

	Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken.

	#jira UE-51583

Change 3717476 by Marcus.Wassmer

	Fix PS4 compile.  funciton local statics not allowed on PSSL
	Also enabled the new atomics method for LPVs for all platforms

Change 3717502 by Arne.Schober

	DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries)

Change 3717601 by Arne.Schober

	DR - Move cycle counter into more meaningfull locations.

Change 3718054 by Guillaume.Abadie

	Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method.

Change 3718066 by Guillaume.Abadie

	Reland: Rewrites editor primitive compositing to support TAA upsample.

	This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.

Change 3718589 by Mark.Satterthwaite

	Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled).

Change 3718633 by Guillaume.Abadie

	Fixes temporal instability issue of TAA upsample with secondary screen percentage.

Change 3718658 by Arne.Schober

	DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on.

Change 3718818 by Mark.Satterthwaite

	Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero.

Change 3719004 by Guillaume.Abadie

	Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample.

Change 3719375 by Mark.Satterthwaite

	Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression.

Change 3720099 by Mark.Satterthwaite

	Make the left-hand arguments work in airdiff.

Change 3720413 by Mark.Satterthwaite

	Support standalone compute shaders in the mtlpp compiler test app.

Change 3721232 by Mark.Satterthwaite

	No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available.

Change 3721244 by Mark.Satterthwaite

	Fix incorrect enum handling for Metal features due to overflow.

	#jira UE-51643

Change 3721338 by Mark.Satterthwaite

	MIssing file from 3721232

Change 3721818 by Mark.Satterthwaite

	Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead.

Change 3722139 by Arne.Schober

	DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one

	#jira UE-51602

Change 3722165 by Rolando.Caloca

	DR - Default -opengl to GL4

Change 3722682 by Guillaume.Abadie

	Fixes wrong clear color in SSR important for VR that has a HMD mesh.

Change 3722766 by Rolando.Caloca

	DR - Fix static analysis

Change 3722943 by Mark.Satterthwaite

	Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders.

Change 3723100 by Mark.Satterthwaite

	Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version.

Change 3723121 by Mark.Satterthwaite

	Fix build error.

Change 3723245 by Daniel.Wright

	Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling
	Reflection captures with no data use an array index of 0, instead of -1.  Might avoid reading uninitialized memory on PS4.

Change 3723387 by Arne.Schober

	DR - Metal already applies the instance and vertexoffset in the shader

Change 3723393 by Mark.Satterthwaite

	More fixes to the mtlpp compiler test application.

Change 3725258 by Guillaume.Abadie

	Improves fast TAA upsample shader permutation by 15% on console.

Change 3725555 by Chris.Bunner

	[Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200.

Change 3726845 by Guillaume.Abadie

	Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss.

	#jira UE-51428

Change 3728014 by Guillaume.Abadie

	Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision.

	#jira UE-51428

Change 3728053 by Richard.Wallis

	Duplicate CL 3727958: Crash fix when using shared material libraries.  Initial shader code library offset is not zero'd so all entry offsets were garbage.

Change 3728339 by Guillaume.Abadie

	Adds project setting for TAA upample, and officialises TAA upsampling CVar.

Change 3728549 by Guillaume.Abadie

	CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers.

Change 3728752 by nick.bullard

	Built and re-saved QA-MeshPaint
	#jira UE-50978

Change 3728775 by Guillaume.Abadie

	Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage.

Change 3729224 by Uriel.Doyon

	Hidden levels now keep their last build data when using lighting scenarios.
	Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios.

	#jira UE-40454
	#jira UE-38131

Change 3729243 by Marcus.Wassmer

	Update Ansel to 1.4
	#github 4159
	#jira UE-51545

Change 3729325 by zachary.wilson

	Adding indirect lighting to TM-LightingChannels
	#jira UE-47069

Change 3729485 by zachary.wilson

	Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof.
	#jira UE-50972

Change 3729629 by Uriel.Doyon

	Fixed crash when using debug view modes.
	Fixed d3ddebug error when clearing quad overdraw buffer.

	#jira UE-51836

Change 3730053 by Guillaume.Abadie

	Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera.

Change 3730308 by Guillaume.Abadie

	Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization.

Change 3730355 by Guillaume.Abadie

	Sacrifices consistency for good cvar name for TAA upsample.

Change 3731403 by Daniel.Wright

	Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values.

Change 3731404 by Daniel.Wright

	Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture'

Change 3731407 by Daniel.Wright

	Must opt-in for FDistanceFieldSceneData::VerifyIntegrity

Change 3731517 by Guillaume.Abadie

	Freezes dynamic resolution heuristic when doing pause.

Change 3732168 by Guillaume.Abadie

	Renames TAA upsampling cvar.

Change 3732295 by Guillaume.Abadie

	Lets the scene texture's size and texel size return the correct sizes after TAA upsample.

Change 3732313 by Guillaume.Abadie

	Implements SceneTexture material expressions' automated tests.

Change 3734928 by Guillaume.Abadie

	Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic.

Change 3735966 by Ryan.Vance

	Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac.

Change 3736104 by Guillaume.Abadie

	Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way.

Change 3736346 by Daniel.Wright

	Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results.  Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred.
	Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly

Change 3736348 by Daniel.Wright

	Forward shadowing of directional light for translucency
	 * Static shadowing and CSM supported with minimal filtering (1 PCF)
	 * Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode.  Forward renderer: affects all translucency.

Change 3736650 by Rolando.Caloca

	DR - vk - # of desc pools

Change 3737985 by Guillaume.Abadie

	Fixes pixel inspector with primary and secondary screen percentage.

Change 3738638 by Michael.Lentine

	Compile fix due to unclear operator precendence.

Change 3739417 by Daniel.Wright

	Fixed a few issues with irradiance cache visualization

Change 3739447 by Daniel.Wright

	Skip forward static shadowing in projects with static lighting disabled

Change 3739595 by Daniel.Wright

	ConditionalPostLoad DistanceFieldReplacementMesh.  Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use.

Change 3739598 by Daniel.Wright

	Disable capsules shadows on lowest shadow quality

Change 3739611 by Daniel.Wright

	Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features
	New Lighting Feature show flags for RTDF shadows and Capsule Shadows

Change 3740516 by Guillaume.Abadie

	Fixes VR editor rendering only on eye with TAA upsample.

	#jira UE-52016

Change 3740580 by Guillaume.Abadie

	Fixes chromatic aberration with TAA upsample and multiple view rendering.

	#jira UE-51993

Change 3740588 by Guillaume.Abadie

	Gives to FXAA a more explicit draw event name for easier UDN support.

Change 3740845 by Michael.Lentine

	Fix shipping build.

Change 3740903 by Guillaume.Abadie

	Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor.

Change 3741355 by Daniel.Wright

	Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component

Change 3741357 by Daniel.Wright

	More info on volumetric lightmap import failure

Change 3742535 by Ryan.Vance

	Fix for view rect changes.

Change 3743282 by Guillaume.Abadie

	Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react.

Change 3743559 by Michael.Lentine

	Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated.

Change 3743679 by Guillaume.Abadie

	Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144.

	#jira UE-51569

Change 3743906 by Ryan.Brucks

	BlueprintMaterialAndTextureNodes Plugin:  Fix for clamping sampled HDR render target values by setting  ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax

Change 3744096 by Ryan.Brucks

	BlueprintMaterialAndTextureNodes Plugin:  removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading.

Change 3744253 by Guillaume.Abadie

	Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages.

Change 3744953 by Chris.Bunner

	Crash workaround.

Change 3745628 by Marcus.Wassmer

	Temporarily disable recalctangent normal-smoothing

	#jira UE-52166

Change 3745942 by Guillaume.Abadie

	Fixes a todo in FCommonViewportClient

Change 3746005 by Guillaume.Abadie

	Fixes stat UnitGraph on high DPI monitor.

Change 3746029 by Guillaume.Abadie

	Oups.... Fix compilation. :D

Change 3748322 by Guillaume.Abadie

	Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands.

Change 3748346 by Chris.Bunner

	Potential static analysis fix.

Change 3748349 by Chris.Bunner

	Mac feature support flag fix on versions < 10.30.

Change 3749336 by Guillaume.Abadie

	Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel!

Change 3749374 by Guillaume.Abadie

	Adds a black background on the stat unitgraph so timing curves can be seen no matter the content.

Change 3749437 by Guillaume.Abadie

	Final UI polish up for `stat unitgraph`

Change 3749719 by Guillaume.Abadie

	Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage.

Change 3750243 by Chris.Bunner

	Increasing controller's automated test timeout to allow for slower machines to complete the longest tests.

	#jira UE-48494, UE-51907

Change 3750728 by Guillaume.Abadie

	Fixes merge collision in chromatic aberration.

	#jira UE-52282

Change 3750791 by Guillaume.Abadie

	Fixes chromatic baerration R and G channel swap.

Change 3751246 by Guillaume.Abadie

	Bypasses screen percentage apply with mobile LDR rendering.

	#jira UE-52089

Change 3752624 by Guillaume.Abadie

	Simplies dyn res state's event interface to a single virtual method.

Change 3753766 by Chris.Bunner

	Rebuilt volumetric baked lighting test map and updated screenshots.

	#jira UE-52322

Change 3755108 by Guillaume.Abadie

	Fixes a bug where default dynamic resolution state was created at startup of server build.

	#jira UE-52345

Change 3755267 by Mark.Satterthwaite

	Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems.

	#jira UE-52301

Change 3755811 by Chris.Bunner

	Disable some new logging that was causing a stack overflow during EnginePreInit.

	#jira UE-52345

Change 3756983 by Mark.Satterthwaite

	Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities.

	#jira UE-52073

Change 3757156 by Guillaume.Abadie

	Fixes editor compositing with wireframe rendering.

	#jira UE-52017

Change 3757435 by Mark.Satterthwaite

	Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer.
	#jira UE-52327

Change 3757523 by Uriel.Doyon

	Fixed d3ddebug warning with unused inputs

Change 3758318 by Guillaume.Abadie

	Cleaner fix for mobile scene captures.

	#jira UE-52327

Change 3759541 by Mark.Satterthwaite

	Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes.

Change 3695086 by Guillaume.Abadie

	Render thread dynamic resolution & TAA upsample.

	Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/...

	New features breakdown:
	- TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles;
	- Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly;
	- Material texture per view mip bias to produce sharper images with TAA upsample;
	- Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics);
	- Dynamic resolution in PIE and game builds;
	- Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can  exactly associate GPU frame times with screen percentages in its history;
	- Game user settings to enable/disable dynamic resolution;
	- In editor viewport screen percentage config to previsualise and test content at different screen percentage.

	Fixes:
	- Various fixes for algorithms producing different outputs at different screen percentage.
	- Various fixes for algorithms sampling outside view rects.

	Refactors:
	- TAA shader
	- Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing.

	Aknowledgements:
	- VR plugins are broken
	- DFAO still have some artifacts

	Premiliminary review: Marcus.Wassmer
	Review for TAA refactor and TAA upsample shader: Brian.Karis
	Review for dynamic resolution: Brian.Karis

[CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
Ben Marsh
d832dacf48 Merging //UE4/Release-4.18 @ CL 3709383 to Release-Staging-4.18 (//UE4/Release-Staging-4.18)
#rb none
#jira

[CL 3715930 by Ben Marsh in Staging-4.18 branch]
2017-10-24 10:14:07 -04:00