#preflight 61fb0dab9a71b11fd39403c7
#rb christina.tempelaarl
#ROBOMERGE-AUTHOR: mike.zyracki
#ROBOMERGE-SOURCE: CL 18866104 via CL 18866486 via CL 18866615 via CL 18866677 via CL 18868621 via CL 18869604
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18869685 by mike zyracki in ue5-main branch]
#rnx
#rb none
#jira:none
#ROBOMERGE-SOURCE: CL 13044249 via CL 13044251 via CL 13044252
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13048225 by michael daum in Main branch]
#jira:none
#rb matt.kuhlenschmidt
#rnx
#ROBOMERGE-SOURCE: CL 13008152 via CL 13009104 via CL 13009309
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v683-13008971)
[CL 13009382 by michael daum in Main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870586 by ryan durand in Main branch]
#jira UE-75424
#rb max.chen
#ROBOMERGE-SOURCE: CL 7773010 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v385-7708028)
[CL 7773028 by mike zyracki in Main branch]
#jira UE-75800
#rb chris.gagnon
[FYI] krzysztof.narkowicz
#ROBOMERGE-SOURCE: CL 7233765 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v367-6836689)
[CL 7233767 by alexander sanoja in Main branch]
MouseDeltaTracker: ConvertMovementDeltaToDragRot .. Added FSceneView parameter since we need to pass that down to the UnrealWidget when rotating arcball/screen which we do in world space for robustness.
EditorViewportClient:
When rotating the arcball/screen we want to show the hand cursor There is one function (IsUsingAbsoluteTranslation) that's used to show the cursor, pick the cursor to use, and do a seperate absolute translation path when dragging. Since we just want one we added a parameter to the function, IsUsingAbsoluteTranslation(bool bAlsoCheckAbsoluteRotation).
FWidget:
To support the above added a function to say we are in absolute rotation mode (AllowsAbsoluteRotationMovement), which happens if we are in Rotate and XYZ. Also contains changes to Render_Rotate, and Drag functions to move the gizmos. We need to the last drag position so we cache that now.
Finally in order to draw the transaprent sphere added a DrawSphereColored function since I couldn't get transparent to work with the default materials.
Added a toggle to Editor Preferences-> Level Editor-> Look and Feel for Enable Arcball Rotate and Enable Screen Rotate (Seemed best place since Enable Combined Translate/Rotate Widget) is also there.
#jira UE-74790
#rb chris.gagnon
[CL 6610128 by Mike Zyracki in Dev-Sequencer branch]
Fix rotation widget no longer correctly displaying rotation label while rotating in high dpi
#rb none
#jira UE-58983
#ROBOMERGE-SOURCE: CL 4097296 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
[CL 4097297 by matt kuhlenschmidt in Staging-4.20 branch]
#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]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3495522 by Rolando.Caloca
DR - Enable gpu skinning on Vulkan
Change 3681208 by Jian.Ru
Force bCastShadowAsMasked to false for opaque materials;
Disable UI check box of bCastShadowAsMasked when blend mode is opaque or modulated
Change 3682631 by Rolando.Caloca
DR - Copy 3682626
Fix recompute tangents not being applied to different sections
Change 3684812 by Arne.Schober
DR - Fix a crash and a Masterfile issue
Change 3684833 by Marcus.Wassmer
Fix more non-unity issues
Change 3685236 by Arne.Schober
DR - Fix some issues with Particles e.g stride was meant to be set to repeat and also subUV needs to be taken care of
Change 3685247 by Arne.Schober
DR - accidentally removed bracket
Change 3686764 by Daniel.Wright
In uncooked Feature Level ES2, fixed reflection capture data getting tossed in PostLoad when it is needed for encoding in OnRegister.
Change 3686775 by Marcus.Wassmer
Fix bad merge
Change 3687022 by Marcus.Wassmer
Fix Win32 compiles
Change 3687355 by Rolando.Caloca
DR - Copy 3687334
Fix for odd Vulkan crash
Change 3687537 by Arne.Schober
DR - Making StaticArray faster as PSO descriptor uses them intensively (5ms in one infiltrator scene on PS4)
Rewrote integer sequence to use fewer template instantiations for faster compile times and larger sequence support.
Change 3687546 by Arne.Schober
DR - Remove unnecessary virtuals and recounts
Change 3688128 by Rolando.Caloca
DR - Fix Linux compile error, rename Elements macro to GetNumArrayElements
Change 3688140 by Rolando.Caloca
DR - Linux warning fix
Change 3688190 by Mark.Satterthwaite
Use the correct #define for determining whether we are compiling for Metal in general, rather that only doing so for Metal + Mobile rendering. Should fix the skin-cache rendering.
#jira UE-50912
Change 3688689 by Chris.Bunner
Static analysis fixes.
Change 3688948 by Chris.Bunner
More static analysis fixes.
Change 3689116 by Arne.Schober
DR - [UE-51015] - moving alignment specifier
Change 3690645 by Marcus.Wassmer
Restore per-element align for TStaticArray
Change 3690801 by Jian.Ru
Marcus's fix FStaticMeshVertexFactories::ReleaseResources
#jira UE-51093
Change 3690809 by Rolando.Caloca
DR - Copy 3690806
Fix Anisotropic not working on Vulkan
Change 3690874 by Benn.Gallagher
Fix for index buffer overflow and clothing upgrade warnings.
#jira UE-51026
Change 3691221 by Jian.Ru
Fix log spam when -d3ddebug
#jira UE-50977
Change 3691291 by Marcus.Wassmer
Move global dynamic buffer commits to before GPU FX rendering.
Fixes d3derror in ES2 preview. The more subtle issue I believe is that the d3d11statecache is leaving streams bound for too long, but that requires more investigation
#jira UE-51058
Change 3691361 by Rolando.Caloca
DR - Fix resources not getting destroyed at RHI destruction time
#jira UE-51057
Change 3691607 by Arne.Schober
DR - interface change requested by Steve
Change 3691662 by Marcus.Wassmer
Fix one bit of d3dwarning. Need a 16 byte minimum to make 0 stride vbuffer happy for colors.
Change 3692268 by Rolando.Caloca
DR - vk - Keep a reference to a buffer to avoid deletion - Fixes crash in Paragon
Change 3692403 by Jian.Ru
Marcus's fix on automation test failure
Change 3692443 by Jian.Ru
Back out changelist 3692403
Change 3692455 by Marcus.Wassmer
Fix automation failure in tile rendering.
Can't setdata for vertexfactories on the gamethread
Change 3692566 by Marcus.Wassmer
Fix clang compiles
Change 3692664 by Chris.Bunner
Updated default editor skeletal mesh.
Change 3692675 by Marcus.Wassmer
Make the behavior of FCanvasTileRendererItem::FRenderData actually match the comment.
Fixes automation crash.
Change 3692692 by Jian.Ru
Fix a bug where only the first slice of 3d textures are cleared on XboxOne; Fix a rendering artifact when r.TranslucentLightingVolume is 0
#jira UE-50636
Change 3693043 by Arne.Schober
DR - [UE-51173]- Fixing Instanced Rendering Vertexbuffer SRV Resources not getting initzialized and re-set onto the vertexfactory after the Buffer has been updated
Change 3693284 by Marcus.Wassmer
Duplicate 3682248.
Fix for debug canvas draw randomly corrupting memory
Change 3693360 by Rolando.Caloca
DR - Fix material events not showing up in RenderDoc
Change 3693549 by Marcus.Wassmer
Fix incorrect flag check
Change 3693575 by Arne.Schober
DR - null size check on StaticMeshVertexData
Change 3693677 by Marcus.Wassmer
Make double plus sure the copy is a valid size
Change 3694155 by Marcus.Wassmer
Generate correct strides for vertexfactories depending on whether color will be overridden or not by the component. Fixes WEX and probably other similar bugs.
ALSO fix horrible longstanding bug in OpenGL VertexDeclaration cache. Strides not part of the operator== of the key so collisions/map walks would sometimes return the wrong decl with the wrong set of streamstrides.
D3D has the same problem, causing spurious D3D warnings but I haven't fixed it yet.
Change 3694156 by Marcus.Wassmer
This doesn't really matter because the decl is created dynamically but the stream elements might as well be right if we're gonna have them
Change 3694470 by Benn.Gallagher
Fixed crash fixing up clothing sections index buffers in specific Unreal Tournament asset with modified oversized index buffer.
#jira UE-51207
Change 3694557 by Chris.Bunner
Static analysis and potential memory leak fix.
Change 3684284 by Arne.Schober
Manual Vfetch for StaticMeshes
Skelmeshes also use the new Layout
Skelmeshes use DDC
Copying //UE4/Dev-Rendering-PSO to Dev-Rendering (//UE4/Dev-Rendering)
Change 3689555 by Arne.Schober
DR - Fix performance regession cause by not sharing VertexFactory ptr in the static drawlist
[CL 3694667 by Marcus Wassmer in Main branch]
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3388286 on 2017/04/11 by Chris.Bunner
Fix mips in texture GnmUAV creation.
Change 3388287 on 2017/04/11 by Chris.Bunner
Improved PS/CS code sharing for TemporalAA.
Change 3388291 on 2017/04/11 by Chris.Bunner
HLODs now correctly hide their children in shadow maps.
Propagate bCastFarShadow flag on HLOD generation.
#jira UE-42254
Change 3388448 on 2017/04/11 by Brian.Karis
Better handle divide by zero
Change 3388449 on 2017/04/11 by Brian.Karis
Optimizations to shading model math.
PR #3340: Bug fixes related to shader TODOs (Contributed by vgfx)
Change 3388455 on 2017/04/11 by Uriel.Doyon
Changed Remove for RemoveSwap when clearing dynamic component references
Change 3388612 on 2017/04/11 by Simon.Tourangeau
Support shaders in projects and in plugins
When searching for a shader it will
- First look in Engine/Shaders as usual
- Then in project's Shader folder
- Then in all enabled plugin Shader folders
Project or plugin must be loaded in PostConfigInit phase
Tested in PIE, engine (cooked, packaged)
Change 3388819 on 2017/04/11 by Arne.Schober
DR - Faster MorpthTarget implementation. Changed the previous Gather aproach to a scatter based one. Reaching about 110GB/s on PS4 which is up to 4x faster than the previous implementation. On PC DX11 the impact is lower due to unecessary UAV barriers but still 2x faster on AMD and up to 6x faster on Nvidia Hardware.
#RB Lina.Halper, Rolando.Caloca
Change 3388862 on 2017/04/11 by Guillaume.Abadie
Allows Motion Blur and TAA in scene capture 2d.
Change 3388953 on 2017/04/11 by Uriel.Doyon
Fixed issue where lights from hidden levels where affecting the lighting build, by checking if the light is registered before adding it.
#UE-43220
Change 3389138 on 2017/04/11 by Arne.Schober
DR - Fix crash when opening a Level without Contentbrowser open.
#RB Matt.Kuhlenschmidt
Change 3389400 on 2017/04/11 by Uriel.Doyon
- Renamed FMaterialResource::IsSeparateTranslucencyEnabled() to FMaterialResource::IsTranslucencyAfterDOFEnabled()
- Removed different logic to determine if translucency after DOF was enabled, and centralized it into a single function: FSceneViewFamily::AllowTranslucencyAfterDOF()
- FSceneRenderTargets::FinishRenderingSeparateTranslucency() now only resolves a single view, allowing better Begin/Finish scopes.
- Renamed FSceneRenderTargets::SeparateTranslucencyDepthRT into FSceneRenderTargets::DownsampledTranslucencyDepthRT since this one is only allocated when rendering in downsampled mode.
- Standard translucency is now rendered in the same resolution than translucency after DOF. (downsampled or full resolution)
- Removed RenderTranslucencyParallel and merged it's logic into RenderTranslucency. Renamed DrawAllTranslucencyPasses to RenderViewTranslucency and added a parallel version RenderViewTranslucencyParallel.
- Moved all debug draw logic (VisualizeLPV, ViewMeshElements and SimpleElementCollector) to a common place.
- New option "r.AllowDownsampledStandardTranslucency" to control the downsampling of standard translucency. Affect blend module materials
#jira UE-39505
Change 3389860 on 2017/04/12 by Richard.Wallis
UE-41407 Cable actor does not render correctly in viewport on Mac.
Build the mesh at creation time - call into exisiting mesh create function.
Change 3390933 on 2017/04/12 by Arne.Schober
DR - potential fix for UE-43125 where the this pointer might get invalidated in the middle of the function
#RB Marcus.Wassmer
Change 3391010 on 2017/04/12 by Ben.Marsh
Compile UE4Game non-unity for Mac as part of nightly builds in //UE4/Dev-Rendering.
Change 3391412 on 2017/04/12 by Uriel.Doyon
Mesh Decals are now sorted according to the component TranslucencySortPriority.
#jira UE-43053
Change 3392117 on 2017/04/13 by Guillaume.Abadie
Integrates Raven's experimental PCSS for cascaded shadow map hidden behind a CVar.
Change 3392179 on 2017/04/13 by Guillaume.Abadie
Attempts to fix linux compilation by removing mistakenly submitted dead code.
Change 3392231 on 2017/04/13 by Guillaume.Abadie
Fixes a wrong enum value real quick in FRenderingObjectVersion I introduced after main integration... Oups...
Change 3393879 on 2017/04/14 by Guillaume.Abadie
Attempts to fix linux compilation warning.
Change 3393881 on 2017/04/14 by Guillaume.Abadie
Back out changelist 3393879
Change 3393882 on 2017/04/14 by Guillaume.Abadie
Attempts #2 to fix linux compilation error.
Change 3394100 on 2017/04/14 by Chris.Bunner
Corrected material shared sampler usage with mip-biasing.
Change 3394174 on 2017/04/14 by Rolando.Caloca
DR - Change ensure to warning
Change 3394221 on 2017/04/14 by Marcus.Wassmer
Fix poseable mesh bounds calculation.
Change 3396238 on 2017/04/17 by David.Hill
Fix Bloom with LensFlare
Duplicating fix - will also fix directly in 4.16
#jira 44050
Change 3397055 on 2017/04/17 by Joe.Graf
Fixed Windows specific assumptions in Slate File Dialog Window's file filtering that lead to crashes
#CodeReview: matt.kuhlenschmidt
#rb: n/a
Change 3397921 on 2017/04/18 by Joe.Graf
Rewrote SlateFileDlgWindow's file filtering to allow for extensionless file selection and to remove the O(n^2) file filtering
#CodeReview: arciel.rekman, matt.kuhlenschmidt
#rb: n/a
Change 3398406 on 2017/04/18 by Rolando.Caloca
DR - Fix shaders in plugins on Mac
Change 3399546 on 2017/04/19 by Benjamin.Hyder
Updating content for test levels (HDR, Bloom_FFT, DistanceFields_IndirectShadows)
Change 3399725 on 2017/04/19 by Guillaume.Abadie
Avoids compiling PCSS shaders for SM4.
Change 3400295 on 2017/04/19 by Michael.Trepka
Fixed metal shader compile errors in MorphTargets.usf
Change 3400457 on 2017/04/19 by Michael.Trepka
Merged Rolando's shader fixes
Change 3400473 on 2017/04/19 by Arne.Schober
DR - provide Aftermath Reason when init failed.
#RB none
Change 3400699 on 2017/04/19 by Arne.Schober
DR - Fixed Text macro
#RB none
Change 3402280 on 2017/04/20 by Simon.Tovey
Minor cascade fix
#tests no crash
#jira UE-41560
Change 3402517 on 2017/04/20 by Arne.Schober
DR - Fix static analysis warning
#RB none
Change 3403897 on 2017/04/21 by Arne.Schober
DR - [UE-43898] - Someone missed a shaderversion bump which poisoned the DCC
#RB None
#jira UE-43898
Change 3404591 on 2017/04/21 by Olaf.Piesche
#jira UE-41979
Should never be crashing there, unless the mesh is changed after Init of the effect instance; this change safeguards against the number of mesh sections (and hence materials) changing after creation of the dynamic data to avoid the crash.
Change 3407451 on 2017/04/25 by Daniel.Wright
Fixed Indirect Lighting Cache updates caused by capsule indirect shadows forcing point samples, breaking primitives using ILCQ_Volume
Change 3407452 on 2017/04/25 by Daniel.Wright
Added r.AOJitterConeDirections, although disabled by default because it requires the temporal filter to be much stronger
Change 3408397 on 2017/04/25 by Daniel.Wright
ViewFamily.bRealtimeUpdate is set to false if Slate is throttling (like when toggling show flags). Volumetric fog discards the temporal history when not realtime, so you can see changes immediately.
Change 3408428 on 2017/04/25 by Daniel.Wright
Changed 'r.AOMaxObjectsPerCullTile' default back to 512 as 256 causes artifacts with RTDF shadows
Change 3409764 on 2017/04/26 by Daniel.Wright
Force dumping shader debug info for Global shaders when r.ShaderDevelopmentMode is enabled. Most of the shaders you want to look at in a GPU capture are global shaders, and global shaders create few debug files. 'recompileshaders global' time 35s -> 38s for SM5.
Change 3411659 on 2017/04/27 by Daniel.Wright
[Copy] Set Xbox One engine default screen percentage to 83.33 (1600x900), as ESRAM choices are dependent on this
Change 3411660 on 2017/04/27 by Daniel.Wright
[Copy] Global distance field composite shader has a version for each flattened axis, which improves efficiency when updating a slab which is what camera movement typically causes
Change 3411667 on 2017/04/27 by Daniel.Wright
[Copy] Discard distance field AO history buffer if it doesn't match the new buffer size. This prevents reading uinitialized data after a scene render target resize.
Change 3411668 on 2017/04/27 by Daniel.Wright
[Copy] Better indirect capsule shadow draw event info
Change 3411669 on 2017/04/27 by Daniel.Wright
[Copy] Pass down FeatureLevel to AddSubjectPrimitive and GatherShadowsForPrimitiveInner instead of calling the scene's virtual function. Showed up prominently in a sampling profile.
Change 3411755 on 2017/04/27 by Daniel.Wright
[Copy] Occlusion queries are now always done before the base pass if a nearly full prepass is being used(DDM_AllOccluders or DDM_AllOpaque)
* Removed r.OcclusionQueryLocation
Change 3411827 on 2017/04/27 by Daniel.Wright
[Copy] Much cheaper implementation of IsForwardShadingEnabled which showed up prominently in sampling profiles - inlined function and no more unnecessary thread safety overhead
Change 3411829 on 2017/04/27 by Daniel.Wright
Added an ensure to console manager when doing FindTConsoleVariableData* on a FAutoConsoleVariableRef
Change 3411837 on 2017/04/27 by Daniel.Wright
[Copy] Worked around slow memcpy's being used to sort FSortedLightSceneInfo
Change 3411838 on 2017/04/27 by Daniel.Wright
[Copy] Skip tracking MaterialRenderProxyMap on cooked platforms
Change 3411843 on 2017/04/27 by Daniel.Wright
[Copy] Fixed r.ParallelShadows on PS4 and enabled by default engine-wide (saves 5ms RT with CSM)
* Gnm was not tracking DepthClearValue when a depth target was set but not cleared
* Gnm has a bug where TargetsNeedingEliminateFastClear does not persist across commandlist breaks. Moved FinishRenderingGBuffer before RenderShadowDepthMaps to workaround (accidentally not in this changelist)
* Shadow depth rendering was not using BindClearMRTValues to populate GNM parallel commandlist TargetsNeedingEliminateFastClear values
Change 3411873 on 2017/04/27 by Daniel.Wright
[Copy] Deferred uniform expression caching. Setting multiple parameters on a material only causes its uniform expressions to be recached once.
* 280 calls to CacheUniformExpressions -> 120 during Fortnite combat (6.5ms -> 3.4ms)
Change 3411891 on 2017/04/27 by Daniel.Wright
[Copy] GatherShadowPrimitives optimizations
* Total GatherShadowPrimivies went from 2.3ms -> 1.3ms on PS4 with these changes in GPUPerfTest (duplicated 3x)
* Much flatter primitive octree (16 -> 256 max primitives)
* Primitives are culled against the shadow frustum before FPrimitiveSceneInfo or FPrimitiveSceneProxy are dereferenced in FilterPrimitiveForShadows
* FilterPrimitiveForShadows work is done in a ParallelFor. Primitive octree nodes are processed in different jobs.
* StaticMeshWholeSceneShadowBatchVisibility now only stores entries for meshes with bRequiresPerElementVisibility (landscape). Previously it was allocating and zeroing 500Kb 3x per frame (main view + 2 cascades) which cost ~.8ms on PS4.
Change 3412192 on 2017/04/27 by Michael.Trepka
Fixed Clang compile errors in FortniteGame, partial copy of CL 3313426
Change 3412547 on 2017/04/27 by Daniel.Wright
Fixed leak of FShadowMapAllocation and FLightMapAllocation's found by licensee
Change 3414239 on 2017/04/28 by Arne.Schober
DR - UE-44500 - Removed use of Structured Buffer from MorphTargets due to HLSLCC not supporting it.
#RB none
#jira UE-44500
Change 3414754 on 2017/04/28 by Daniel.Wright
Added VolumetricFogEmissive to ExponentialHeightFogComponent
* Volumetric fog does not yet support precomputed lighting, so this is the only way to get an ambient lighting term
Change 3416859 on 2017/05/01 by Arne.Schober
DR - Remove FeatureLevel from the Clear Functions to reduce area of error
#RB Rolando.Caloca
Change 3420750 on 2017/05/03 by Arne.Schober
DR - [UE-44497] - Fix several PS4 validation layer issues
#RB Marcus.Wassmer
Change 3422869 on 2017/05/04 by Benjamin.Hyder
Fix compile error from merge.
Change 3423938 on 2017/05/04 by Marc.Olano
[UE-44453] Fix bloom problems by moving saturate after vector math
Change 3424494 on 2017/05/04 by Olaf.Piesche
#jira UE-44589
When using FindTCosoleVariableData, the CVar can not be an FAutoConsoleVariable.
#tests as described in jira ticket
Change 3424754 on 2017/05/04 by Uriel.Doyon
Fixed call to get texture compressor module outside the main thread.
#jira UE-42168
Change 3425447 on 2017/05/05 by Uriel.Doyon
#buildfix
Change 3427042 on 2017/05/05 by Arne.Schober
DR - Fix one of my typos
#RB none
Change 3428119 on 2017/05/08 by Marcus.Wassmer
Fix UE-44733
static analysis warning.
Change 3428222 on 2017/05/08 by Uriel.Doyon
Fixed bad condition in translucency rendering
#jira UE-44452
Change 3429794 on 2017/05/08 by Uriel.Doyon
Fixed issues with lightshafts and low res translucency.
#jira UE-44452
Change 3430921 on 2017/05/09 by Rolando.Caloca
DR - Get additional function pointers for D3DReflect, Compile and Disassemble instructions from the same DLL when compiling D3D11 shaders.
- Also fixes using the correct fxc.exe path to match the DLL we distribute.
Change 3431156 on 2017/05/09 by Rolando.Caloca
DR - Remove unused code
Change 3431396 on 2017/05/09 by David.Hill
Copy of changes made directly in 4.16 ( CL 341037 )
to be submitted to dev-rendering
#jira UE-44641
Change 3431400 on 2017/05/09 by Rolando.Caloca
DR - Fix typo
Change 3431527 on 2017/05/09 by David.Hill
#rb: none
Oops.
comment out r.ShaderDevelopmentMode =1
Change 3431590 on 2017/05/09 by Daniel.Wright
Removed early return landmine in USceneCaptureComponent2D::Serialize
Change 3431591 on 2017/05/09 by Daniel.Wright
Disallow map building while in PIE, or PIE while buildling lighting
Change 3431594 on 2017/05/09 by Daniel.Wright
Added RenderTargetFormat to UTextureRenderTarget2D, with choices of 8 bit, 16fp, 32fp and 1, 2 or 4 channels.
Change 3431667 on 2017/05/09 by Daniel.Wright
Volumetric fog now supersamples lighting when the history is not available, reducing noise on areas that just came on-screen or after a camera cut.
* The number of samples is controlled by r.VolumetricFog.HistoryMissSupersampleCount, defaults to 4, cinematic scalability uses 16
* Under fast camera movement, volumetric fog cost went from 1.79ms -> 1.97ms with 4 samples, on a 970GTX
Change 3432366 on 2017/05/10 by Richard.Wallis
Fix for MetalRHI Asserts When Using "Profile GPU" With RHI-Thread/Parallel-Execution. Don't insert events when not in RHIThread or the actual single-threaded-render thread.
#jira UE-36006
Change 3432367 on 2017/05/10 by Richard.Wallis
Fix for Metal ReStartRenderPass assert with profiling. macOS metal asserts when using "profileGPU" even with -norhithread argument set.
Added no action to the allowed render pass restart store actions for the depth buffer avoiding the assert. Interested to know the details if this is not a valid assumption to make - throwing away the depth buffer after a render pass I think would be a common case.
#jira UE-44322
Change 3432409 on 2017/05/10 by Richard.Wallis
Merged across CL 3415890 from Release-4.16 fix for (jira UE-43895)
Fix for deferred store actions getting cleared when we don't have a valid render target.
Change 3432833 on 2017/05/10 by Daniel.Wright
Fixed Ocean compile error
Change 3432874 on 2017/05/10 by Marc.Olano
Improved captions for Noise and VectorNoise material nodes
Change 3432947 on 2017/05/10 by Richard.Wallis
Fix for shared Material Native Shader Libraries Don't Function With Iterative Cooking. Keep latest versions of shader byte code in native shared material packaged build in an intermediate directory than can be reused on a later iterative cook.
- Doesn't handle deletion of the intermediate directory contents. Assumed to be a higher level requirement on non iterative cook flag.
#jira UE-44657
Change 3433484 on 2017/05/10 by Arne.Schober
DR - UE-44393 - Move ShaderPlatform into TShaderMap for extra debuginformation when it fails to find a proper shader. Also log when Gobalshaders are verified and recompiled.
#jira UE-44393
#RB Daniel.Wright
Change 3433515 on 2017/05/10 by Arne.Schober
DR - Fix a bug where recompileshaders changed while compiling causes a crash where the chached local vertex factories are mutated while been used.
#RB Daniel.Wright
Change 3433606 on 2017/05/10 by Daniel.Wright
Fixed static shadowing of volumetric fog and translucency causing shadowing past the lightmass importance volume.
Change 3433619 on 2017/05/10 by Daniel.Wright
Skip recapturing reflection captures when PropagateLightingScenarioChange is being called for a level unload. This leaves stale results in reflection captures around when hiding a level in the editor, but avoids the double recapture that happens when swapping lighting scenarios in game, and the unnecessary reflection capture update when exiting PIE.
Change 3433795 on 2017/05/10 by Arne.Schober
DR - add cmdline to select a GPU vendor when multiple GPUs from differnt Vendors are installed into the same Machine
#RB marcus.Wassmer
Change 3433941 on 2017/05/10 by Daniel.Wright
Cone vs tile bounding sphere intersection tests for Light Grid culling of spotlights, which provides much tighter culling than just View space tile AABB vs light bounding sphere.
* Forward shading BasePass 3.7ms -> 2.4ms in a scene with 24 spotlights on 970GTX
* Volumetric fog 2.87ms -> 2.09ms in the same scene
Change 3435139 on 2017/05/11 by Daniel.Wright
Restored GTextureRenderTarget2DMaxSizeX which is used by Ocean
Change 3435297 on 2017/05/11 by Arne.Schober
DR - Remove manual AlignOf and use C++11 keyword instead
#RB Steve.Robb
Change 3435367 on 2017/05/11 by Daniel.Wright
Circle vertex buffer for slightly tighter voxelization of volumetric fog shadowed lights
* 1.5ms -> 1.38ms on 970 GTX with 24 spotlights
Change 3435522 on 2017/05/11 by Brian.Karis
Dither opacity mask now stacks properly for non parallel polys. Dither is randomized by triangle normal.
Change 3436063 on 2017/05/11 by Daniel.Wright
Disabled CLB_AggressiveBatching for PC d3d12 as it causes flickering artifacts in lighting
Change 3436269 on 2017/05/11 by Uriel.Doyon
Fixed UVChannel data possibly not up-to-date depending on user manips.
Change 3436611 on 2017/05/12 by Simon.Tovey
Improved name and tooltip for static mesh property controlling generation of alias tables for uniform sampling.
Change 3436676 on 2017/05/12 by Simon.Tovey
Fix for fixed bounds being "invalid" unless set via the toolbar option.
Change 3436700 on 2017/05/12 by Simon.Tovey
Crash fix.
Issue found in https://udn.unrealengine.com/questions/355944/crash-in-fdynamicspriteemitterdatagetdynamicmeshel.html
Particle proxies would have stale material resource pointers if the material is changed while the system was invisible.
If the old material is freed during this time, the next time the system renders it will crash.
Change 3437367 on 2017/05/12 by Brian.Karis
Fixed bug with small UV charts not packing.
Change 3437860 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI alignment is 4 for int64
#RB none
Change 3437972 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI function calls cannot take alingned structures. In all of the cases the copy was completely unnecessary.
#RB none
Change 3437975 on 2017/05/12 by Chris.Bunner
Added calculation for MaterialParamsEx to MeshDecals.usf.
#jira UE-43052
Change 3438109 on 2017/05/12 by Rolando.Caloca
DR - Support for -nomcpp on SCW
Change 3438889 on 2017/05/15 by Chris.Bunner
Nullptr check in a few material uniform expressions.
Change 3439351 on 2017/05/15 by Chris.Bunner
Added tooltip to Power material expression.
Change 3439763 on 2017/05/15 by Daniel.Wright
Apply passed in DistanceBiasSqr to line lights - allows volumetric fog to reduce aliasing on line lights
Change 3439764 on 2017/05/15 by Daniel.Wright
Fixed order of operations with bTreatMaxDepthUnshadowed - manifested as unfiltered static shadow depth lookups
Change 3440722 on 2017/05/16 by Guillaume.Abadie
Exposes Scene capture's FOV to blueprints
Change 3441680 on 2017/05/16 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3441884 on 2017/05/16 by Uriel.Doyon
Fixed StreamingDistanceMultiplier not being applied to the texture streaming data.
Change 3442800 on 2017/05/17 by Gil.Gribb
Fixed botched merge.
Change 3442896 on 2017/05/17 by Gil.Gribb
UE4 - Allowed the possibility of running the RHI "thread" on task threads instead and cleaned up and unified the conditionals involved. By default we still have a dedicated RHI thread because it tested slightly faster.
Change 3443951 on 2017/05/17 by Richard.Wallis
Added Apple override allocator macro - each command encoder type needs it's own allocator queue.
Change 3444787 on 2017/05/17 by Daniel.Wright
Fixed DBuffer decal default normal (used when DBuffer decals enabled, but not decals rendered) not reconstructing zero properly, adding -.008 to WorldNormal which then caused artifacts with forward lighting specular on materials with roughness near 0.
Change 3444882 on 2017/05/17 by Daniel.Wright
Added comment to FClearValueBinding::DefaultNormal8Bit to make the dependency on shader decode clear
Change 3444883 on 2017/05/17 by Brian.Karis
Improved contact shadows
Change 3445048 on 2017/05/17 by Daniel.Wright
Fixed particle lights in forward shading, they were not setting the lighting channel mask properly
Change 3445107 on 2017/05/17 by Michael.Trepka
Changed the order of operations in FMetalStateCache::SetRenderState to work around an issue with some Intel drivers where they would not recalculate the raster state in some edge cases.
#jira UE-43725
Change 3445212 on 2017/05/17 by Uriel.Doyon
Added a -CSV option to ListTextures command
Change 3445947 on 2017/05/18 by Richard.Wallis
Clone of Release-4.16 Stream CL 3437181 and CL 3442450 - fix(s) for black rendering on macOS El Cap with Nvidia GPU. Move sampling of EyeAdaption texture to pixel shader for Mac Metal using shader language version <= 1 only.
Change 3446545 on 2017/05/18 by Chris.Bunner
Removed hardcoded (and unused) MRT write from Decal shaders.
#jira UE-45095
Change 3446568 on 2017/05/18 by Marc.Olano
Sobol and image-based importance sampling C++ functions and blueprint nodes
Change 3446988 on 2017/05/18 by Marc.Olano
Fix build error: missing include
Change 3446990 on 2017/05/18 by Marc.Olano
Cell-indexed Sobol sampling for shaders (in MonteCarlo.usf) and materials (Sobol and TemporalSobol nodes)
Change 3447142 on 2017/05/18 by Rolando.Caloca
DR - RWLock instead of mutex for PSO cache
Change 3447144 on 2017/05/18 by Uriel.Doyon
Moved shading model code to SetGBufferFromShadingModel(). This allows the code to be reused in other shader files.
Change 3447794 on 2017/05/18 by Brian.Karis
Virtual texturing foundation code
Change 3448944 on 2017/05/19 by Arciel.Rekman
Fix non-unity Linux (and Mac, etc) builds.
- Mac fix is tentative, did not try.
Change 3449183 on 2017/05/19 by Marcus.Wassmer
Duplicate fix for reflection captures to happen after sequencer updates.
Change 3449196 on 2017/05/19 by Uriel.Doyon
Handling RCM_MinMax when reading FloatRGBA textures.
This fixes pixel inspector always reading 1 for scene color values greater than one.
Change 3451652 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45245
Change 3451660 on 2017/05/22 by Chris.Bunner
Additional compile fix.
#jira UE-45245
Change 3451897 on 2017/05/22 by Daniel.Wright
Moved RTDF shadow project back after the base pass, since it samples the GBuffer for subsurface shadowing. Removed r.DFShadowAsyncCompute which was relying on the previous ordering.
Change 3452055 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
#jira UE-45265
Change 3452089 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452108 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452179 on 2017/05/22 by Brian.Karis
Exposed dimensions. Fixed static analysis.
Change 3452734 on 2017/05/22 by Daniel.Wright
When post processing is disabled, TPT_TranslucencyAfterDOF translucency gets forced into the standard translucency pass.
Change 3452770 on 2017/05/22 by Daniel.Wright
Static light source shapes drawn into reflection captures handle SourceLength via scaled sphere
Change 3452861 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
Change 3452952 on 2017/05/22 by Brian.Karis
Small VT fixes
Change 3453647 on 2017/05/23 by Richard.Wallis
Fix for tessellation shaders on Mac (Metal v1.2) failing to compile.
#jira UE-45227
Change 3454844 on 2017/05/23 by Uriel.Doyon
Fixed extra X16 on some point lights
#jira UE-45250
Change 3454934 on 2017/05/23 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3457131 on 2017/05/24 by Arne.Schober
DR - [UE-45317] - Fix Depthbuffer not available for resolve in Forward mode
#jira UE-45317
#RB Chris.Bunner
Change 3457141 on 2017/05/24 by Marc.Olano
Sobol bug fixes
Change 3457953 on 2017/05/24 by Brian.Karis
Fix static analysis
#jira UE-45315
#jira UE-45314
#jira UE-45313
Change 3459064 on 2017/05/25 by Chris.Bunner
Fix for out of bounds material translation crash.
#jira UE-45406
Change 3459700 on 2017/05/25 by Brian.Karis
Revert using sprite index buffer because the vert order is different.
Change 3459847 on 2017/05/25 by Chris.Bunner
Fixing ensure in RenderTestMap.
[CL 3461201 by Chris Bunner in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3168749 on 2016/10/20 by Richard.TalbotWatkin
Fixed bug in csgRebuild where dynamic brushes from the whole world are rebuilt instead of just those from the current level. csgRebuild is supposed to act only on the current level's geometry.
#jira UE-37376 - csgRebuild builds dynamic brushes from the whole world, instead of just the current level
Change 3169740 on 2016/10/20 by Nick.Darnell
Automation - Removing old screenshots, working on new naming convention.
Change 3169796 on 2016/10/20 by Nick.Darnell
Automation - Adding new screenshots.
Change 3169800 on 2016/10/20 by Nick.Darnell
Automation - Working on improvements to screenshot comparions, now using the Unique device id instead of adapter name. Working on better metadata based matching for which screenshot to use, stubbing in support for adding alternative versions of screenshots.
Change 3169901 on 2016/10/20 by Nick.Darnell
Automation - More fixes / refinements to the way we add alternatives and replace old versions of screenshots.
Change 3169926 on 2016/10/20 by Cody.Albert
Added extension point for level editor viewport's Show and Camera menus
Change 3170053 on 2016/10/20 by Cody.Albert
Back out changelist 3169926
Change 3170067 on 2016/10/20 by Cody.Albert
Added extension point for level editor viewport's Show and Camera menus
Change 3170382 on 2016/10/21 by Michael.Dupuis
#jira UE-36585 Added Copy/Paste to Material list/item, section list/item to StaticMeshEditor and Persona Editor
Change 3170520 on 2016/10/21 by Alex.Delesky
#jira UE-36510 - You can now toggle if combo boxes can receive keyboard focus from the Widget Blueprint
Change 3170522 on 2016/10/21 by Alex.Delesky
#jira UE-33031 - Buttons will no longer remained in a hovered state on mobile devices if the user drags their finger into a button, and then lifts their finger without dragging it outside of the button.
Change 3170524 on 2016/10/21 by Alex.Delesky
#jira UE-25591 - Static Mesh LODs can now be removed from the editor without a mesh reduction tool like Simplygon configured for use in the editor.
Change 3170530 on 2016/10/21 by Alex.Delesky
Moved the HasKey method from UMapProperty to FScriptMapHelper, and moved the HasElement property from USetProperty to FScriptSetHelper
#jira none
Change 3170768 on 2016/10/21 by Cody.Albert
Back out changelist 3170067
Change 3170795 on 2016/10/21 by Nick.Darnell
JsonObjectConverter - By default UStructToJsonAttributes now skips transient properties.
Change 3170797 on 2016/10/21 by Nick.Darnell
Automation - Fixing several warnings dealing with fbx testing.
Change 3170921 on 2016/10/21 by Nick.Darnell
Automation - Fixing more warnings with FBX tests.
Change 3171109 on 2016/10/21 by Cody.Albert
Added extension point for level editor viewport Show menu
Change 3171812 on 2016/10/24 by Jamie.Dale
Back out changelist 3163044
This broke wrapping for Japanese and Chinese.
Change 3171842 on 2016/10/24 by Michael.Dupuis
#jira UE-36400
Name each Parameter uniquely either from copy/paste of any creation menu
Changed the default value for Scalar and Vector Parameter to 1 and 1,1,1,1
Added a Promote To Parameter when clicking on an Input pin that will generate proper node type based on type pin type
When editing a color property update the material expression preview
Change 3171958 on 2016/10/24 by Alex.Delesky
#jira UE-37444 - The Primitive Stats browser (and other statistics browsers) can now sort columns based on singular objects or object types as well as texture dimensions.
Change 3171969 on 2016/10/24 by Nick.Darnell
Slate - Adding some code to prevent crashes if bogus user indexes are passed into SlateApplications GetUser functions.
Change 3171970 on 2016/10/24 by Matt.Kuhlenschmidt
PR #2885: Fixed Stretched Landscape Editor Icons (Contributed by teessider)
Change 3172035 on 2016/10/24 by Alex.Delesky
Fix to build warning for 3171970
#jira none
Change 3172078 on 2016/10/24 by Michael.Dupuis
#jira UE-37626 Fetch property node from property handle if there is no property editor
Change 3172143 on 2016/10/24 by Jamie.Dale
Line-break iterators will now avoid breaking words in Hangul
The default behavior for wrapping Hangul is to use Western-style wrapping (where words are kept as-is) rather than East Asian-style (where words are broken by syllables). This behavior can be controlled by the Localization.HangulTextWrappingMethod CVar in-case you were dependant on the old behavior, but since modern Hangul uses spaces, the per-word wrapping is preferred by native speakers.
Change 3172418 on 2016/10/24 by Michael.Dupuis
Fixed Static Analysis error
Change 3173389 on 2016/10/25 by Michael.Dupuis
#jira UE-9284 Make the UI appear only on hover and change icons size
Change 3173918 on 2016/10/25 by Alex.Delesky
#jira UE-37753 - WidgetBlueprints saved without a root widget (e.g., by deleting the starting Canvas panel) will no longer set a Canvas panel as the root widget. New WidgetBlueprints will still contain a Canvas Panel when created.
Change 3173966 on 2016/10/25 by Alex.Delesky
#jira UE-20891 - SpinBox now receives MouseMove events while simulating touch events using the mouse.
Change 3174847 on 2016/10/26 by Alex.Delesky
#jira UE-36371 - Windowed Fullscreen will now expand to fit the entirety of the current window and will not be displaced when the Windows taskbar is docked on the top or left sides of the screen.
Change 3174916 on 2016/10/26 by Alexis.Matte
When re-importing fbx file, always log to the message log.
#jira UE-37639
Change 3174940 on 2016/10/26 by Alex.Delesky
Back out changelist 3174847 at request of platforms team. Was fixed on Main.
Change 3174995 on 2016/10/26 by Matt.Kuhlenschmidt
Import commandlet fixes
- Fixed crash when source control could not be contacted
- Fixed assets not importing correctly if they depended on other assets in a previous import group within the automated import
Change 3175217 on 2016/10/26 by Alexis.Matte
The FBX reimport animation code now return false if there was an error when importing
#jira UE-37755
Change 3175728 on 2016/10/26 by Alexis.Matte
Log a message when importing a skeletal mesh with more bone influence then the maximum supported
#2875
#jira UE-37613
Change 3177997 on 2016/10/28 by Nick.Darnell
Editor - Prevent re-entrant calls when EndPlayMap is called.
Change 3178429 on 2016/10/28 by Nick.Darnell
Engine - Bumping BaseEngine.ini to IOS_8, MinimumiOSVersion, as that is now the minimum allowed to fix an error on startup. Tweaking the location of where some importing files go when they're imported.
Change 3179774 on 2016/10/31 by Matt.Kuhlenschmidt
Guard against bad render targets in Slate RHI
#jira UE-37905
Change 3179900 on 2016/10/31 by Matt.Kuhlenschmidt
Added logging to track https://jira.it.epicgames.net/browse/UE-37900
#jira UE-37900
Change 3179920 on 2016/10/31 by Alex.Delesky
Removing LODs from skeletal meshes is now a transacted action and can be undone. Related to UE-25591.
#jira none
Change 3179921 on 2016/10/31 by Alex.Delesky
#jira UE-37725 - Adding safeguard against a potential crash in FTextureEditorViewportClient caused by a texture not having a valid texture resource
Change 3180119 on 2016/10/31 by Alexis.Matte
fbx importer avoid asset creation name clash
#jira UE-35100
Change 3181905 on 2016/11/01 by Alexis.Matte
Paint tool now allow users to paint on any vertex if they need it.
#jira UE-8372
Change 3182355 on 2016/11/01 by Alexis.Matte
We now support FBX LODs export for the asset exporter from the content browser.
#jira UE-35302
Change 3183286 on 2016/11/02 by Alexis.Matte
Make sure static mesh build settings are set properly when we re-import with different options. Specifically the normals, tangents and tangent space are dependent on the import options.
#jira UE-37520
Change 3183567 on 2016/11/02 by Shaun.Kime
#jira UE-38019
The Content Browser's View Options originally included both Engine and GameProject plugins only when clicking Show Plugin Content. Since there are quite a few Engine plugins, this produces quite a bit of content in the Folders panel. Most of the Engine plugins have classes or content that isn't really meant to be user-facing, so the experience of hunting for a game plugin-in's content is poor.
The new behavior is that GameProject plugins are controlled by the "View Plugin Content" option. In order to see the Engine plugins you'll need both Engine Content and Plugin Content checkboxes enabled. By default, the editor should enable the "View Plugin Content" checkbox since it should be limited to just the content in the game's Plugins folder.
Change 3184002 on 2016/11/02 by Jamie.Dale
Fixed crash during TSF IME shutdown
#jira UE-38073
Change 3185126 on 2016/11/03 by Shaun.Kime
Some of the plugin templates define Editor specific plugins. If created and a Standalone build is run, the application will attempt to link in editor libraries in game mode and will run into issues when you hit any key. The fix is to specify an Editor module description for these plugins.
Additionally, there appears to be a mismatch in pathing types when dealing with plugin path and GameDir. Plugin path is absolute and GameDir is relative by default. We check to see if the gameDir is a subset of the plugin path, but this fails due to the mismatch. The fix is to force both to be absolute (enforcing normalization of both paths as well).
#jira UE-38065
#jira UE-37645
Change 3185278 on 2016/11/03 by Nick.Darnell
UMG - Fixing some issues with HDPI mode in the widget designer.
Change 3185355 on 2016/11/03 by Nick.Darnell
UMG - Widget Component's Draw At Desired size now should also work correctly if it's in screenspace.
Change 3185510 on 2016/11/03 by Nick.Darnell
UMG - Restoring the ability of the Widget Component to directly recieve hardware input. The Widget Interaction Component is great for just about every interaction use case - the one it's not is when you actually want the 3D widgets to take focus, and to be able to be typed directly into by the user. The kind of situation where you might want to use them as a 3D menu, in a non-VR environment. By default - Widget Components will not behave in this manner, but you can now use the option bReceiveHardwareInput to enable the ability for Widget Components to function more like a widget in the screenspace of the viewport.
Slate - The scene viewport now correctly takes scale into account when drawing the 'software cursor', this fixes an issue with HDPI mode, and the cursor not being restored to the same location after moving a gizmo.
Change 3185514 on 2016/11/03 by Nick.Darnell
UMG - Fixing some HDPI mode problems with widget position calculation when projecting world to viewport / screen, absolute spaces.
Change 3185652 on 2016/11/03 by Nick.Darnell
Slate - Exposing a cached version of the widget geometry that comes in during Tick. Also performed a bit of optimization work on the class to make some space for the geometry object we now cache, by compacting the pointer event delegates we were storing.
Change 3185952 on 2016/11/03 by Nick.Darnell
UMG - Fixing another build error relating to local widget geometry.
Change 3185953 on 2016/11/03 by Nick.Darnell
UMG - Fixing a mac compiler warning.
Change 3186886 on 2016/11/04 by Matt.Kuhlenschmidt
Fixed collapse all hiding everything in the settings editors
#jira UE-38151
Change 3187014 on 2016/11/04 by Matt.Kuhlenschmidt
Fixed new assets opening in a minimized window not restoring that window.
Change 3187026 on 2016/11/04 by Shaun.Kime
UUnrealEdEngine::edactDeleteSelected calls out to FBlueprintEditorUtils::FindActorsThatReferenceActor. This checks the entire world for each actor to be deleted. When you have tens of thousands of actors in the world and are deleting tens of thousands of actors, this can take minutes. This change amortizes the cost of finding the actor references once for the world and for each actor to be deleted, we query the cached list of references. This brings the deletion time down to seconds.
#jira UE-38094
Change 3187073 on 2016/11/04 by Nick.Darnell
Automation - Changing the code that writes out json to force no BOM as is the json standard.
Change 3187113 on 2016/11/04 by Jamie.Dale
Removed double look-up in UTextProperty::SerializeItem
Change 3187114 on 2016/11/04 by Jamie.Dale
Feedback context now uses culture correct percentage formatting
Change 3187273 on 2016/11/04 by Alexis.Matte
Fbx importer for static mesh, make sure that we order the materials array to follow the section order.
Add also some fbx automation test
#jira UE-38242
Change 3187276 on 2016/11/04 by Matt.Kuhlenschmidt
Fix crash when an actor picker shows up in the struct editor. Structs do not have root property nodes
#jira UE-38268
Change 3187463 on 2016/11/04 by Nick.Darnell
Automation - Updating the blessed screenshots, and fixing the BOM issues with the json.
Change 3188638 on 2016/11/07 by Shaun.Kime
Making the UI for adding/removing parameters in custom blueprint functions behave similarly to the struct creation dialog in the content browser. There are no longer "New" buttons at the bottom of the panel and the parameter moving controls have been moved onto the main parameter row instead of being nested inside the collapse panel. A tooltip will now let you know the full parameter name and type when you hover over the editable name field. Made the move up/down icons more legible by increasing contrast between the arrow and the light grey background.
#jira UE-38240
Change 3189056 on 2016/11/07 by Nick.Darnell
Core/Editor - UObject::IsAsset() now returns false if the outermost package is RF_Transient. Also updating the creation of the transient package to be RF_Transient. This makes it so transient packages created by UMG or some other editor for things like previewing a streamed in level instance, no longer show up in the content browser.
Change 3189147 on 2016/11/07 by Jamie.Dale
Fixed potential race-condition where a UFont object could be GC'd while the loading screen was using the font cache
This queues up the pending removal until it's safe to execute it (by a thread that fully owns Slate rendering).
#jira UE-38309
Change 3189344 on 2016/11/07 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3189380 on 2016/11/07 by Matt.Kuhlenschmidt
Guard against null object when creating details panel
Change 3190017 on 2016/11/08 by Alexis.Matte
FrontX support for scene importer
#jira UETOOL-1061
Change 3190058 on 2016/11/08 by Matt.Kuhlenschmidt
Fixed misaligned button in the new blueprint class dialog
Change 3190086 on 2016/11/08 by Nick.Darnell
UMG - Fixing the calculation for widget componets screen position if the camera aspect is constrained.
Change 3190159 on 2016/11/08 by Nick.Darnell
UMG - We no longer also take the platform DPI scale into account when applying UMG's UI scale. Since UMG already provides a DPI scaling system, compounding it with the native OSes produces undesirable results, since the DPI scale curve does not take into account some unknown platform scale set by a user.
Change 3190161 on 2016/11/08 by Nick.Darnell
UMG - UWidget is now Blueprintable. Improving some doc.
Change 3190545 on 2016/11/08 by Alexis.Matte
Support scaling when exporting skeleton (bind pose) to FBX
#jira UE-36120
Change 3191614 on 2016/11/09 by Simon.Tourangeau
Fix cooking crash after fbx import of a scene without meshes
#jira UE-38264
Change 3191659 on 2016/11/09 by Simon.Tourangeau
Cleanup Persona LOD section button layout
#jira UE-38339
Change 3191882 on 2016/11/09 by Jamie.Dale
Changed FBlackboardKeySelector::AddObjectFilter to use MakeUniqueObjectName so it generates more stable names, rather than relying on a static counter.
Also updated FBlackboardKeySelector::AddClassFilter, FBlackboardKeySelector::AddEnumFilter, and FBlackboardKeySelector::AddNativeEnumFilter to use MakeUniqueObjectName to ensure they don't conflict.
Change 3192092 on 2016/11/09 by Jamie.Dale
Deleting some test assets that were accidentally checked in, some of which no longer load
Change 3192281 on 2016/11/09 by Alex.Delesky
#jira UE-31866 - Widget Blueprints will no longer experience compile issues when dragging widgets between the hierarchy views of different Widget Blueprints.
Change 3192365 on 2016/11/09 by Shaun.Kime
Adding support for MaterialParameterCollections to Slate UI objects. For reasons of Blueprint controls amongst other things, MPC's are owned by individual UWorlds and transferred over to their respective Scenes. Since we want the latest values from those in-UWorld representations, Slate needs to know about the Scene on the render thread to properly map the materials to their MPC inputs. This involved keeping Scene arrays synchronized between the game logic thread and render thread, and adding a Scene index field to each batched draw element in Slate. SceneViewports are now responsible for registering their associated Scenes with the SlateRenderer. Since RetainerBoxes also draw their content as well, they too need to register their Scenes.
#jira UE-19022
Change 3192494 on 2016/11/09 by Alex.Delesky
#jira UE-37829 - Dynamically changing an option in the style for an Editable Text Box or Multiline Editable Text Box will now update it correctly.
Change 3193183 on 2016/11/10 by Alexis.Matte
When doing FBX scene re-import, the new staticmesh asset was not mark as dirty. So the system was not saving the new asset.
#jira UE-38450
Change 3193419 on 2016/11/10 by Alex.Delesky
Fixing UnrealTournament build error in SUTChatEditBox
#jira none
Change 3193456 on 2016/11/10 by Alex.Delesky
Fix to build warning C6011 in SWidgetHierarchyItem
#jira none
Change 3193704 on 2016/11/10 by Simon.Tourangeau
Create Cinematic Camera when importing camera from fbx
#jira UE-37764
Change 3194593 on 2016/11/11 by Nick.Darnell
Slate - Fixing the window reshaping logic to avoid work if we don't need to do it, rather than external calls attempting to do the check (poorly). This appears to fix the problem with popup menus being slightly off in size, creating scrollbars. This also prevents constant reshaping of windows, due to people performing the wrong checks over and over, because they were comparing against non-truncated or rounded values against truncated/rounded values.
Change 3194595 on 2016/11/11 by Nick.Darnell
Slate - Simplifying the Menu Anchor popup code for new Windows, and correcting it so that it does not take non-DPI scale into account when calculating the size of the window. Otherwise, popup menus on say, the blueprint editor change size depending upon the scale of the area.
Change 3194830 on 2016/11/11 by Richard.TalbotWatkin
Optimized pasting brushes, so geometry is not constantly rebuilt for every brush that's added. This improves performance by a couple of orders of magnitude!
#jira UE-38524 - Moving many brushes to another level is very slow
Change 3194859 on 2016/11/11 by Alexis.Matte
Fix fbx skeletal mesh cleanup material crash
#jira UE-38525
Change 3195199 on 2016/11/11 by Nick.Darnell
UMG - Updating the bindable widget searching code in sequencer to use the WidgetTree traversing code, instead of something custom. This fixes the issue where it wasn't finding widgets inside of named slots.
#jira UE-38536
Change 3196579 on 2016/11/14 by Matt.Kuhlenschmidt
Guard against rendering crashes when a mesh with no lod resources is opened.
#jira UE-38520
Change 3196614 on 2016/11/14 by Nick.Darnell
Slate - The ignore incoming scale option for the scale box should now behave as expected in more cases. It required modifying the GetRelativeLayoutScale function to also pass down the prepass scale, otherwise it can't extract out the incoming scale ahead of time before text is measured ahead of time.
Change 3196624 on 2016/11/14 by Matt.Kuhlenschmidt
PR #2927: UE-38473: Shadow outline color uses shadow color (Contributed by projectgheist)
Change 3196770 on 2016/11/14 by Matt.Kuhlenschmidt
Ensure instead of crash when updating the selection pivot if a component's actor is not selected (this is non fatal)
#jira UE-38544
Change 3196863 on 2016/11/14 by Nick.Darnell
Slate - Allowing font outline settings to be specified in native code when constructing a SlateFontInfo via a ctor.
Change 3196900 on 2016/11/14 by Nick.Darnell
Slate - Upgrading some cases that were using the older version of GetRelativeLayoutScale.
Change 3196947 on 2016/11/14 by Matt.Kuhlenschmidt
Guard against crashes in the details panel when an OS message causes the tree to refresh when a previous event has invalidate the contents of the details panel.
#jira UE-36499, UE-38497
Change 3197028 on 2016/11/14 by Alexis.Matte
Shift Drag is not moving the camera when the user is dragging the 3 axis in same time.
#jira UE-38382
Change 3197167 on 2016/11/14 by Matt.Kuhlenschmidt
Removed pivot updating code per frame for now. It changes on selection so I cant see a reason why it is needed every frame
Change 3197227 on 2016/11/14 by Nick.Darnell
UMG/Blueprint - Exposing a way to set the default schema a blueprint editor derivation uses. Updating all widget blueprints to finally use the WidgetGraphSchema.
Change 3197239 on 2016/11/14 by Nick.Darnell
UMG - Improving the ReceiveHardwareInput option to limit exposure of widgets to hit testing that did not register for it.
Change 3197538 on 2016/11/14 by Nick.Darnell
UMG - Making some progress on converting the schema over on load, now appear to correctly be loading it in time to be able to perform node conversions to convert older nodes to newer nodes. Required changing the UBlueprint interface to have a virtual for upgrading nodes, that could be overriden in WidgetBlueprint to make sure the schemas have all been updated, as Serialize is too early, and PostLoad is too late.
Change 3198211 on 2016/11/15 by Matt.Kuhlenschmidt
Guard against reimport factories being deleted while in use
#jira UE-37577
Change 3198589 on 2016/11/15 by Alex.Delesky
#jira UE-38527 - Curves editors will no longer crash when trying to scale to fit after resetting the curve to its default values. This also fixes an issue where selecting a key before resetting the curve to default would sometimes cause the timestamp to display for a now-invalid key.
Change 3198783 on 2016/11/15 by Nick.Darnell
The Widget Component's Allow Hardware Input should now correctly convert coordinates coming from a viewport scaled up by the OS DPI scaling code.
Change 3198933 on 2016/11/15 by Jamie.Dale
Changing the package localization ID used by a package now marks the package as dirty
Change 3198942 on 2016/11/15 by Jamie.Dale
Clearing the package localization ID used by a package now marks the package as dirty
Change 3200241 on 2016/11/16 by Shaun.Kime
Now allowing users to customize the Class Browser/Picker to filter out developer folders as well as hide internal use classes via INI settings. A ViewOptions button has been added to allow users to choose whether or not these filters are enabled.
By default, internal only classes will be hidden and you will be limited to your own developer folder.
Example change to DefaultEngine.ini or BaseEngine.ini to hide some classes as internal use
[/Script/ClassViewer.ClassViewerProjectSettings]
+InternalOnlyPaths=(Path="/Engine/VREditor")
+InternalOnlyClasses=/Script/VREditor.VREditorBaseUserWidget
The InternalOnlyPaths example will hide any classes in the VREditor folder or subfolders.
The InternalOnlyClasses example will hide any classes that derive from VREditorBaseUserWidget.
Both can be edited by the project settings UI so no manual INI tweaking is required. Please go to Project Settings->Class Viewer->Class Visibility Management
#jira UE-38313
Change 3200621 on 2016/11/16 by Matt.Kuhlenschmidt
Adding missing change needed post merge from main
Change 3200968 on 2016/11/16 by Jamie.Dale
Fixed localization gather including texts that were instanced or otherwise unchanged
- It now uses the archetype when exporting to diff against the default property value, and will only gather text that has changed from the default.
- UMG widgets that are instanced from another UMG asset now only gather overridden values, and skip all child instances.
Change 3201033 on 2016/11/16 by Cody.Albert
Fixed source control to properly notify when files need to be checked out if a blueprint node is dragged
Change 3201829 on 2016/11/17 by Shaun.Kime
Fixing issue where GEngine is null in early game loading, potentially causing a crash.
Change 3201832 on 2016/11/17 by Matt.Kuhlenschmidt
Fix build warning
Change 3201835 on 2016/11/17 by Nick.Darnell
Slate - Making it so explictly focusing a slate user that does not yet exist, creates the slate user so that the state is properly maintained in prepartion for that user's arrival / input.
Change 3201947 on 2016/11/17 by Matt.Kuhlenschmidt
Fix streaming pause rendering starting a movie if a movie was already playing
Change 3202089 on 2016/11/17 by Nick.Darnell
Editor - When replacing references, code that was added in 2729702, was allowing redirectors to be created that then might be abandoned and not renamed later if there was a collision on object name. There's no problem if two objects have the same name, as long as they have different paths (except for classes). So now the code records object paths in a seperate set, and avoids reprocessing / and creating multiple redirectors for the same objects, instead of just using object name.
Change 3202139 on 2016/11/17 by Jamie.Dale
Fix for adjusting text spacing when lines are removed from TextLayouts
Change 3202398 on 2016/11/17 by Cody.Albert
Updated UMG Sequencer to properly fire events once per loop
Change 3202591 on 2016/11/17 by Shaun.Kime
Fixing coding standards violations.
Change 3202744 on 2016/11/17 by Shaun.Kime
StaticMeshComponent's OverriddenLightMapRes current displays the value it was set to, even when the bOverrideLightMapRes is false. The behavior within UStaticMeshComponent::GetLightMapResolution is to use the LightMapResolution on the StaticMesh member instead when bOverrideLightMapRes is false. The UI was adjusted to reflect the more accurate behavior.
#jira UE-38315
Change 3203009 on 2016/11/17 by Alex.Delesky
Backing out changelist 3170522 per request
#jira UE-33031
Change 3204077 on 2016/11/18 by Nick.Darnell
Automation - Updating several bits of the screenshot automation piece to work a bit better, show names if we have them, and show preview dialogs for images.
Change 3204086 on 2016/11/18 by Jamie.Dale
Added FGCObjectScopeGuard and TStrongObjectPtr as a convenient way to keep a UObject alive without having to add it to the root-set
Both use FGCObject internally to reference the object and keep it alive.
FGCObjectScopeGuard is designed to be lean and used as a guard for an existing pointer, whereas TStrongObjectPtr is more "full-fat" and designed to be a replacement for a raw-pointer.
You should prefer FGCObjectScopeGuard where possible. Also note that TStrongObjectPtr isn't supported by UHT/UPROPERTY as you should just use a raw-pointer in that case (it would do the same thing).
Change 3204189 on 2016/11/18 by Alex.Delesky
Removing content from dev folder
Change 3204205 on 2016/11/18 by Jamie.Dale
Fix for being unable to delete folders that still have sub-folders in the Content Browser
#jira UE-38752
Change 3204270 on 2016/11/18 by Simon.Tourangeau
Fix StaticMesh socket reimports
- socket transforms are now updated correctly on reimport
- deleted socket from source will be removed on reimport
- fix SocketManager refresh after import
#jira UE-38195
Change 3204283 on 2016/11/18 by Alex.Delesky
#jira UE-38314 - Undoing a change in the Preview Scene Viewer in Static Mesh Editor will now properly update changes within the scene itself.
Change 3205757 on 2016/11/21 by Jamie.Dale
PR #2923: Slate: Fixed bug where NumCharactersInGlyph was set incorrectly for TAB characters (Contributed by pluranium)
Change 3205759 on 2016/11/21 by Matt.Kuhlenschmidt
PR #2958: Handle legacy Windows exe icon location (Contributed by projectgheist)
Change 3205816 on 2016/11/21 by Matt.Kuhlenschmidt
PR #2956: Add plane to basicshapes (Contributed by tommybear)
Change 3205831 on 2016/11/21 by Jamie.Dale
Speculative fix for UE-38492
This guards against null objects being passed to FAssetDeleteModel, as well as objects that become null due to the GC that happens in FAssetDeleteModel.
#jira UE-38492
Change 3205869 on 2016/11/21 by Alex.Delesky
#jira UE-38227 - Trying to transform a component on a blueprint while a spline mesh actor has the transform gizmo active in the editor will no longer modify the spline mesh actor
Change 3205873 on 2016/11/21 by Alex.Delesky
#jira UE-38379 - When editing a row in the data table, clicking on a different row before committing changes will now switch to that row. This also fixes the issue of data tables constantly regenerating cell widgets on data changes.
Should also address the issue mentioned in #jira UE-32965
Change 3205954 on 2016/11/21 by Shaun.Kime
Reverting changes from 3202744 that allowed override properties to show up as real properties in the list. There are several detail panel customizations that don't deal with this properly and rather than force everyone to upgrade, we'll just modify the static mesh detail customization to do the work.
#jira UE-38315
Change 3205965 on 2016/11/21 by Alex.Delesky
#jira UE-38749, UE-38755 - Space and Enter should now fire button OnClicked events when a button is focused
PR #2942
Change 3207157 on 2016/11/22 by Chris.Wood
Added UnrealWatchdog tool, run by the Editor, to improve abnormal shutdown tracking.
[UE-32952] - Watchdog - Show CRC when reporting abnormal shutdowns in internal builds
Change 3207344 on 2016/11/22 by Matthew.Griffin
Added UnrealWatchdog to the Binary Release
Change 3207396 on 2016/11/22 by Ben.Marsh
Add UnrealWatchdog to UGS precompiled binaries for Odin and Orion.
Change 3207418 on 2016/11/22 by Matt.Kuhlenschmidt
Redid blur changes from Paragon Dev-General
Blur widget updates
- Renamed to SBackgroundBlur/UBackgroundBlur
- Split SBackgroundBlur out into its own file
- Added bApplyAlphaToBlur - when true, the strength of the blur is modulated by the widget alpha
- Updated BlurRadius to be TOptional, so we auto-calculate radius when it isn't set
- Added a UBackgroundBlurSlot, but left it unattached so it can be done in dev-editor (and update based on the engine version)
- Updated OrionBlurWidget to export dll symbols and set up default low quality fallback image
Change 3207443 on 2016/11/22 by Chris.Wood
Fix CIS error on Mac from my change CL 3207157
Change 3207702 on 2016/11/22 by Matt.Kuhlenschmidt
Added missing files
Change 3207958 on 2016/11/22 by Matt.Kuhlenschmidt
Guard against crash clearing scenes from the slate RHI renderer during movie loading code.
Change 3207962 on 2016/11/22 by Matt.Kuhlenschmidt
Added a guard against the rendering thread timing out while on a breakpoint by checking if the debugger is present before performing the timeout check
Change 3208194 on 2016/11/22 by Matt.Kuhlenschmidt
Actually call correct method of checking for a debugger
Change 3209139 on 2016/11/23 by Cody.Albert
Adding support for "Show Only Modified Properties" filter to DetailWidgetRow
Change 3209206 on 2016/11/23 by Jamie.Dale
Moving folders now removes the old folder from disk if it's empty
This had already been done for deleting folders, but moving them was missed.
#jira UE-11796
Change 3209281 on 2016/11/23 by Jamie.Dale
PR #2932: Fix crash while updating cursor highlight (Contributed by nakosung)
Change 3210383 on 2016/11/25 by Chris.Wood
Documented Crash Report Client analytics events
[UE-32787] - Document Crash Report Client analytics events in code
Change 3210385 on 2016/11/25 by Alexis.Matte
Make sure the combine mesh option of the staticmesh import is stored in staticmeshimportdata so the re-import know if it must re-import in combined or not
#jira UE-38925
Change 3210983 on 2016/11/28 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3211001 on 2016/11/28 by Matt.Kuhlenschmidt
Fix build errors
Change 3211009 on 2016/11/28 by Matt.Kuhlenschmidt
PR #2960: Git plugin: multiline initial commit message and other connect screen cleanup (Contributed by SRombauts)
Change 3211017 on 2016/11/28 by Matt.Kuhlenschmidt
Fix ATSC texture compression quality tooltip
#jira UE-38996
Change 3211045 on 2016/11/28 by Matt.Kuhlenschmidt
Fix compile errors
Change 3211081 on 2016/11/28 by Matt.Kuhlenschmidt
Fix post process anim blueprints on skeletal meshes not being clearable
#jira UE-39017
Change 3211094 on 2016/11/28 by Matt.Kuhlenschmidt
Added more logging for jira UE-39000
#jira UE-39000
Change 3211284 on 2016/11/28 by Matt.Kuhlenschmidt
Redid fix for UE-35822 in dev-editor
Change 3211544 on 2016/11/28 by Matt.Kuhlenschmidt
Fix deprecation warning
Change 3211769 on 2016/11/28 by Matt.Kuhlenschmidt
Disable motion blur in editor views by default
#jira 38424
Change 3211776 on 2016/11/28 by Matt.Kuhlenschmidt
Fix PS4 compile errors
Change 3211949 on 2016/11/28 by Matt.Kuhlenschmidt
Details panels changes
- Added the ability to create groups within groups in details panel customizations
- Added the ability for struct customizations to add categories to the parent
Change 3211954 on 2016/11/28 by Matt.Kuhlenschmidt
Reorganized the post process settings so they appear as categories in the parent and so that they have better categories to make it clear what all the settings do.
Change 3213158 on 2016/11/29 by Jamie.Dale
Updated User Defined Enum display names to use real FText instances so they can have stable keys
This avoids the issue where the FText display names were cached from an FString, resulting in them having a different identity each time they were re-cached, which lead to localization and deterministic cooking issues.
User Defined Enums no longer use meta-data to store their display names, and instead use a TMap in UUserDefinedEnum to map the raw enum entry name to its friendly display name. In addition to this, the enum editor has been updated to use STextPropertyEditableTextBox, which will keep the keys used by the display names stable where possible (allowing for delta-localization and historic tracking).
#jira UE-26274
Change 3213172 on 2016/11/29 by Jamie.Dale
Adding experimental support for content hot-reloading
The underlying support for this is in CoreUObject (see ReloadPackage and ReloadPackages in UObjectGlobals.h/.cpp), with editor specific support being added via PackageTools::ReloadPackages, and also hooks registered with FCoreUObjectDelegates::OnPackageReloaded (eg, UEditorEngine::HandlePackageReloaded).
The basic workflow for package reloading is as follows:
1) The current package is renamed, and the RF_NewerVersionExists flag is added to it and all its sub-objects.
2) The new package is loaded. Should this fail the old package is renamed back, and the RF_NewerVersionExists flag is removed.
3) We generate a mapping between objects in the old package and objects in the new package (see UObject::BuildSubobjectMapping).
4) We enumerate every object in memory, and fix-up any serialized or ARO object pointers referencing something from the old package, to reference the equivalent object from the new package (or null if no object could be found).
5) We run a GC, and verify that the old package was purged (printing any lingering references if it wasn't).
For efficiency reasons package reloading may be run in batches (the editor uses batches of 500), as this allows package reloading to happen faster (as the reference fix-up and GC only happens once per-batch) at the cost of consuming more memory.
In-editor there is an experimental setting to enable content hot-reloading. When this is enabled the SCC operations in the Content Browser will use content hot-reloading, rather than attempt to unload the reload the package as separate operations (which often fails). In order to allow the external SCC program to overwrite the files on disk, the linkers are detached from any packages that will be replaced prior to invoking the internal SCC operation.
Change 3213428 on 2016/11/29 by Jamie.Dale
Implemented clamping on FTextInputMethodContext::SetSelectionRange to fix an issue where composition could provide an invalid range if the text was changed while composing
#jira UE-37746
Change 3213442 on 2016/11/29 by Jamie.Dale
Workaround for a bug in TSF based MS IMEs on Windows 8+
They omit calling GetSelection and instead expect QueryInsert to return the current selection range. This also seems to fix an issue where composition no longer worked once some text had been deleted.
#jira UE-37309
Change 3213603 on 2016/11/29 by Cody.Albert
Changed PanelWidget::RemoveChildAt to not release slate resources if the child is a UserWidget
#jira UE-39106
Change 3213633 on 2016/11/29 by Matt.Kuhlenschmidt
Attempt to fix includetool cis warning
Change 3215159 on 2016/11/30 by Jamie.Dale
Fixing MakeShared forward declaration
Change 3215220 on 2016/11/30 by Alex.Delesky
#jira UE-38698 - Deleting a widget from the Widget Blueprint Hierarchy (or adding a new widget to the hierarchy directly) will no longer cause the scroll bar to return to the top of the hierarchy view.
Change 3215390 on 2016/11/30 by Jamie.Dale
Maps now end a hot-reload batch
Change 3215394 on 2016/11/30 by Matt.Kuhlenschmidt
Updating guard to track down worlds that have no package as an outer
#jira UE-35712
Change 3215500 on 2016/11/30 by Alexis.Matte
Color grading widget customization
#jira UETOOL-1070
Change 3215519 on 2016/11/30 by Jamie.Dale
Fixed crash caused by using TextNamespaceUtil::EnsurePackageNamespace in 'game' mode
Change 3215556 on 2016/11/30 by Cody.Albert
Fixed issue where check-out toast would not disappear
#jira UE-39146
Change 3215585 on 2016/11/30 by Jamie.Dale
Adding an explicit ESPMode to MakeShared to try and placate Android
Change 3215737 on 2016/11/30 by Alexis.Matte
Fix build warning
Change 3215748 on 2016/11/30 by Matt.Kuhlenschmidt
Guard against crashes due to duplicate items in the scene outliner if actors somehow end up attached to themselves
#jira UE-35935
Change 3215758 on 2016/11/30 by Ben.Marsh
Add a 'Custom...' build type for Dev-Editor.
Change 3216183 on 2016/11/30 by Alexis.Matte
Fix win32 build error
Change 3216362 on 2016/11/30 by Matt.Kuhlenschmidt
Fix mac build error.
Change 3216828 on 2016/12/01 by Jamie.Dale
Fixing MakeShared on Android
#jira UE-39204
Change 3216839 on 2016/12/01 by Matt.Kuhlenschmidt
PR #2997: Spelling fix for Actor.h's description of bEnableAutoLODGeneration. (Contributed by hgamiel)
Change 3216842 on 2016/12/01 by Matt.Kuhlenschmidt
Remove the ensure when pushing absolute transforms onto a canvas matrix stack. We can handle this properly now by just adding the transform to the stack if the stack is empty
#jira UE-36496
Change 3216874 on 2016/12/01 by Matt.Kuhlenschmidt
Fix a number of keybindings problems
- Removed editor keybindings from project settings. It should not have been in there (already in editor settings)
- Removed duplicate registration of editor keybindings from editor settings
- Fixed memory leak regenerating keybinding widgets when ending PIE world.
- Cleaned up styling a bit to make keybindings widgets clearer.
#jira UE-39211, UE-38718
Change 3216881 on 2016/12/01 by Shaun.Kime
Added support for reroute nodes to the material editor. These nodes should function identically to their counterparts in Blueprints. A new UMaterialExpression, UMaterialExpressionReroute has been added. It inserts no HLSL code, and instead just moves along its input to find the real UMaterialExpression that it is ultimately bound to.
Since the material system serializes its data as UMaterialExpressions, a more generalized approach across graph types isn't available as only the visual UI layer is shared between blueprints and material graphs.
Also modified the material palette and popup material expression menu to allow for c++ based material name and description customization. If we choose to expand this, it would make the C++ material nodes more discoverable and understandable.
Manually pulled in CL 3200823 and 3208490 to get bugfixes around material attribute usage.
Adding an reroute node should function identically to Blueprints (ie double-click on connection to add or Utility\Add Reroute Node from palette). You should be able to add as many reroute nodes as you want in a chain. A reroute node that only has a connected output and not an input should behave as if there were no reroute node present (i.e. triggering constants on Add). It should be possible to use reroute nodes between any two supported node types if they are connectable in isolation. Where possible, we should show the same type mismatch errors that you'd see if connecting nodes directly (ie dragging a boolean constant into a reroute node connected to an Add should result in a Float/Bool mismatch). A reroute node is purely visual, it should have no impact on the final instruction count.
In the event that an incomplete reroute input was completed by dragging to an invalid type, I tried to guarantee that the compiler would generate the appropriate errors. This can happen because we only know the inputs to a given node in code. If a reroute node doesn't have an input, it does not know what type it should be. However, the compiler should still detect these bad cases and error out.
#jira UE-6882
Change 3216968 on 2016/12/01 by Jamie.Dale
Syncing via source control now unloads (rather than reloads) packages that have been deleted from disk
Change 3216970 on 2016/12/01 by Jamie.Dale
Reverting files now uses hot-reloading (if enabled)
Change 3217233 on 2016/12/01 by Jamie.Dale
You can now choose to reload dirty packages via content hot-reloading
This will revert any in-memory changes to the asset, which may be useful when you want to roll it back to its initial state without restarting the editor.
Change 3217244 on 2016/12/01 by Matt.Kuhlenschmidt
WindowsMoviePlayer: Initialize the movie player texture on first frame regardless of whether or not the decoder has a sample ready. This prevents a white texture from showing up for a frame.
Change 3217466 on 2016/12/01 by Jamie.Dale
Fixed a bug where FTextFormatData::ConditionalCompile_NoLock would always compile the text even if it was up-to-date
Change 3217572 on 2016/12/01 by Jamie.Dale
Using FText::Format with an invalid argument no longer strips any associated argument modifier data from the resultant formatted text
Change 3217688 on 2016/12/01 by Jamie.Dale
Fixed crash reloading the active world package when it was dirty
#jira UE-39250
Change 3217978 on 2016/12/01 by Matt.Kuhlenschmidt
Fixed crash where the slate renderer holds into scenes during maps are loaded causing access to deleted data after the load is complete. We clean up cached scenes each frame but if slate doesnt tick the scenes are not cleaned up. This change moves the CleanupScenes code to a location that is called each tick and during map loads
#jira UE-39243
Change 3218834 on 2016/12/02 by Alexis.Matte
move some scene conversion import fbx options to staticmesh, skeletalmesh and animation import data so the re-import will have acces to those import options
#jira UE-38672
Change 3218838 on 2016/12/02 by Matt.Kuhlenschmidt
Fixed editing static mesh settings manually in the details panel not visually refreshing the collision primitives
#jira UE-39246
Change 3218864 on 2016/12/02 by Matt.Kuhlenschmidt
Fixed basic cube shape having a convex hull instead of a box for collision
Change 3218900 on 2016/12/02 by Matt.Kuhlenschmidt
Move static mesh collision properties to the collision category
Change 3219143 on 2016/12/02 by Michael.Dupuis
#jira UE-39124 We can now place single mesh at a time
#jira UE-39125 We can paint on the current level of the level containing the mesh we're painting on
Change the way GetRandomVectorInBrush generate the Start/end position to use the BrushNormal instead of the BrushDirection
Change 3219199 on 2016/12/02 by Matt.Kuhlenschmidt
Fixed a crash when changing Physical Surface Name and reassigning it on a physical material that uses it
#jira UE-37452
Change 3219358 on 2016/12/02 by Alexis.Matte
Fix fbx automation tests
Change 3219362 on 2016/12/02 by Alexis.Matte
Support for MAX multisub material
#jira UE-38467
#jira UE-38471
Change 3219774 on 2016/12/02 by Jamie.Dale
PR #2888: Add a setting to allow the Sources Panel to expand by default (Contributed by BhaaLseN)
Change 3219793 on 2016/12/02 by Jamie.Dale
SWindow now restores focus back to the widget that last had focus when it was deactivated
#jira UE-38965
Change 3221272 on 2016/12/05 by Matt.Kuhlenschmidt
UI background blur tweaks
- Adjust the downsample amount for lower kernel sizes
- Flush post process memory used by the blur when switching levels
Change 3221273 on 2016/12/05 by Matt.Kuhlenschmidt
Added guards against accesing scene caching methods of the slate resource manager on the rendering thread
Change 3221392 on 2016/12/05 by Matt.Kuhlenschmidt
Added basic support for playing safe movies very early in the engine startup sequence. A movie is considered safe to play very early if it is just a movie file and not some complex slate based UI loading screen
no platform actually supports this yet as none of the movie streamer modules are loaded early enough and many platforms cant render this early
Set PLATFORM_SUPPORTS_EARLY_MOVIE_PLAYBACK to 1 for your platform if it supports early loading
Change 3221831 on 2016/12/05 by Jamie.Dale
Fixed UNumericProperty::ReadEnumAsUint8 not considering enum redirects when resolving the name
Change 3221986 on 2016/12/05 by Jamie.Dale
Added an "Inline" font loading method
This can be used in a cooked build to store the font data within the Font Face asset itself (rather than a separate .ufont file) in order to guarantee a hitch free load, at the cost of potentially using more memory up-front.
The existing "PreLoad" loading method has been renamed to "LazyLoad" to better reflect what it actually does.
This also fixes a bug where FFontData::Serialize could try and use the referenced Font Face asset before it had been fully loaded.
Change 3222065 on 2016/12/05 by Jamie.Dale
Added log warning to detect hitches when lazily loading fonts
Change 3222225 on 2016/12/05 by Jamie.Dale
Fixing style-set typo
#jira UE-39333
Change 3223169 on 2016/12/06 by Matt.Kuhlenschmidt
Fix autosaving prompting to check out built data if the built data asset was dirty during autosave
#jira UE-39295
Change 3223184 on 2016/12/06 by Alexis.Matte
Support LOD group and combine mesh
#jira UE-1088
Change 3223212 on 2016/12/06 by Alex.Delesky
#jira UE-39260 - TMap and TSet struct values should now be editable when editing a component's properties.
Change 3223215 on 2016/12/06 by Alex.Delesky
#jira UE-38594 - The Widget Interaction Component will now default to tick while paused. Widget Components now contain a flag that will either allow or disallow interacting with them while the game is paused, which defaults to false.
Change 3223249 on 2016/12/06 by Matt.Kuhlenschmidt
Added back in missing code that was lost in a merge
Change 3223271 on 2016/12/06 by Alex.Delesky
#jira UE-38786 - The Color Picker will no longer stretch across the screen when exceptionally long strings are either entered or pasted inside one of the spin boxes. This also fixes an issue with editable text fields not validating string input on paste and will now prevent invalid data from being pasted inside a editable text block (e.g., pasting the string "I am a float" inside a spin box).
Change 3223275 on 2016/12/06 by Matt.Kuhlenschmidt
Fixed a race condition in WEX where the loading screen would render an external UI window that was referencing deleted materials
Change 3223276 on 2016/12/06 by Alexis.Matte
Staticmesh socket fbx import.
#jira UE-38284
Change 3223363 on 2016/12/06 by Alexis.Matte
Reimport must ask for missing file when re-importing a old asset that has no source files
#jira UE-39356
Change 3223423 on 2016/12/06 by Chris.Wood
Added option to place canvas panel children in same layer using explicit ZOrder setting.
[UETOOL-935] - Figure out a solution for canvas panel batching
Change 3223551 on 2016/12/06 by Alexis.Matte
UI mesh paint optimization, the slider now do not destroy the paint geometry adapter if the painted LOD has not change
#jira UE-39383
Change 3223844 on 2016/12/06 by Matt.Kuhlenschmidt
Back out change to change the defaults on vector and scalar expressions because this affects existing expressions that have not overridden the default
Change 3223880 on 2016/12/06 by Matt.Kuhlenschmidt
Update doc links for maps and sets
Change 3224746 on 2016/12/07 by Michael.Dupuis
#jira UE-39409 : Was'nt calling EndFoliageBrushTrace causing the transaction to never finish causing both jiras
#jira UE-39410 : Was'nt calling EndFoliageBrushTrace causing the transaction to never finish causing both jiras
Change 3224826 on 2016/12/07 by Michael.Dupuis
#jira UE-39095 : If a tool is active we simply consider inputs as handled to prevent this kind of behavior
Change 3224827 on 2016/12/07 by Simon.Tourangeau
Improve search for material match on fbx mesh import
- Add option to specify material search locations on mesh import
- On Import it will now perform a first match material search in the following order (suppose we are importing into /Game/Content/Assets/Meshes/MyMesh)
- Using Local as a search location will provide same behavior as before (search non recursively in /Game/Content/Assets/Meshes)
- If option is UnderParent or more, search recursively in destination folder (search recursively in /Game/Content/Assets/Meshes)
- If option is UnderParent or more, then recursively from parent folder (search recursively in /Game/Content/Assets)
- If option is UnderRoot or more, search recursively from root folder (search recursively in /Game)
- If option is AllAssets, search in every asset folder (Search recursively everywhere)
#jira UE-39020
Change 3224989 on 2016/12/07 by Chris.Wood
Fixed black callstack text in CrashReportClient.
[UE-38987] - CrashReportClient Callstack text is rendering Black
Change 3225142 on 2016/12/07 by Jamie.Dale
Added collapsing methods when exporting text for translation
You can now choose how to collapse your text for translation from three export modes:
- ELocalizedTextCollapseMode::IdenticalTextIdAndSource - Collapse texts with the same text identity (namespace + key) and source text (default 4.15+ behavior).
- ELocalizedTextCollapseMode::IdenticalPackageIdTextIdAndSource - Collapse texts with the same package ID, text identity (namespace + key), and source text (4.14 behavior).
- ELocalizedTextCollapseMode::IdenticalNamespaceAndSource - Collapse texts with the same namespace and source text (legacy pre-4.14 behavior).
The new default allows you to re-use the same text identity in different packages without having to translate the same text multiple times, and you can also now opt to get back to the legacy pre-4.14 behavior of collapsing all identical texts within the same namespace (in case you were reliant on that behavior).
You can change this setting via the Localization Dashboard, or add it to your gather configs as "LocalizedTextCollapseMode" (this needs to go into any configs that deal with exporting or importing PO files - the default if nothing is specified is "ELocalizedTextCollapseMode::IdenticalTextIdAndSource").
Change 3225509 on 2016/12/07 by Simon.Tourangeau
Static analysis fix, false positive
Change 3225859 on 2016/12/07 by Matt.Kuhlenschmidt
Fix broken physical surface details customization
- Scrolling now works properly
- Edit boxes dont change size while editing
- properly checks out or makes file writable once an edit has been made
#jira UE-39279
Change 3226840 on 2016/12/08 by Jamie.Dale
Fixing a bug in FText formatting where it would ignore the rebuild and Rebuild as Source arguments for the format string itself
#jira OPP-6485
Change 3226940 on 2016/12/08 by Alexis.Matte
Avoid changing the W value when playing with the color grading wheel.
#jira UE-39473
Change 3227814 on 2016/12/08 by Matt.Kuhlenschmidt
Temp disable lazy load font warnings to prevent infinite recursion crashes at startup
Change 3228010 on 2016/12/08 by Matt.Kuhlenschmidt
Fix for iOS compiling
Change 3228597 on 2016/12/09 by Jamie.Dale
Removed hard dependency between UFont and UFontFace during struct serialization as it doesn't work with the EDL
#jira UE-39529
Change 3228607 on 2016/12/09 by Jamie.Dale
Fixed infinite recursion caused by logging while the output log font was still being loaded
#jira UE-39523
Change 3228770 on 2016/12/09 by Jamie.Dale
Fixed UUserDefinedEnum::GetEnumText
it was using GetNameByIndex (which includes C++ scoping), rather than GetEnumName (which doesn't). This was causing all name look-ups to fail.
#jira UE-39531
Change 3228785 on 2016/12/09 by Matt.Kuhlenschmidt
Fix static analysis warning
[CL 3229477 by Matt Kuhlenschmidt in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3122543 on 2016/09/13 by Ben.Woodhouse
Override HasOcclusion for Widget3DComponentProxy to detect if the material is has depth testing enabled.
#jira UE-35878
Change 3122544 on 2016/09/13 by Ben.Woodhouse
Shadow stencil optimisation with cvar (enabled by default)
Avoids redundant clearing the stencil buffer for per-object and pre shadows by zeroing the stencil during testing, following discussion on UDN.
This means we don't benefit from Hi Stencil on GCN for the shadow projection draw calls, but it's still faster in all the cases I could find, including for the player character where the bounding box is quite large. (Note: early stencil still works fine, according to PIX)
Shadow projection GPU time profiling :
Test map with 35 characters, stationary directional light
- 4ms-2ms on XB1
- 2.5ms to 0.9ms on PC (r9-390X)
- 3ms-2ms on PS4
Paragon PS4 (roughly 20% reduced - from ~0.39ms)
Change 3122687 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix ES31 crash
Change 3122691 on 2016/09/13 by Rolando.Caloca
DR - vk - Fixes for SDK 1.0.26.0
Change 3122778 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix number of layers on barrier
Change 3122921 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix ES3.1
Change 3122925 on 2016/09/13 by Ben.Woodhouse
Fix sky lighting issue with skin and re-enable non-checkerboard lighting by default (fallout from lightaccumulator refactor)
#jira UE-35904
Change 3123016 on 2016/09/13 by Chris.Bunner
Fixed adaptive tessellation, broken by CL 3089208 refactor.
#jira UE-35341
Change 3123079 on 2016/09/13 by Rolando.Caloca
DR - vk - Force StoreOp store instead of DontCare everywhere (temporarily)
Change 3123503 on 2016/09/13 by David.Hill
#jira UE-25623
converted a check() to checkf() to include better diagnostic information.
Change 3123617 on 2016/09/13 by Guillaume.Abadie
Fixes artifact when the camera direction is almost parallel to a wide plane with SSR.
#jira UE-35128
Change 3123743 on 2016/09/13 by Brian.Karis
Separate mesh reduction interfaces for static and skeletal.
Zero bad tangents from input mesh.
Change 3125378 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Extract all the State which is necessary to execute the DebugTextDrawingDelegate from the SceneProxy into its own Helpers to be drawn to the canvas later on. The issue was that the SceneProxys are only owned by the RT after their creation and the GT should avoid reading from or writing state to them.
Change 3125527 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix UT build and mac
Change 3125741 on 2016/09/14 by Rolando.Caloca
DR - Extra debug mode for tracking down SCW crashes (r.DumpSCWQueuedJobs=1)
Change 3125763 on 2016/09/14 by Rolando.Caloca
DR - vk - Added new Renderpass cache
- Fix buffer barrier warning
Change 3125769 on 2016/09/14 by Rolando.Caloca
DR - Renamed cvar to r.DumpSCWQueuedJobs
Change 3125771 on 2016/09/14 by Rolando.Caloca
DR - Added support for SV_ClipDistance on GL3 & 4
Change 3125792 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix Odin and PS4
Change 3125880 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix Fortnite
Change 3125968 on 2016/09/14 by Brian.Karis
Removed comment
Change 3126315 on 2016/09/15 by Ben.Woodhouse
GPU profiler robustness
- Change stat gathering update to handle multiple views and non-scenerenderer stats (such Slate) properly
- Simplify gathering logic
- Fix race condition where we could read back queries before they're submitted on the RHI thread.
- Fix for movie player stat gathering - disable gathering outside of the main engine tick
#jira UE-35975
Change 3126792 on 2016/09/15 by Rolando.Caloca
DR - vk - Release render pass cache
Change 3126804 on 2016/09/15 by Rolando.Caloca
DR - vk - Fix UpdateTexture2D()
#jira UE-34151
Change 3126884 on 2016/09/15 by Rolando.Caloca
DR - vk - Compile fix
Change 3126953 on 2016/09/15 by Rolando.Caloca
DR - Enable GPU capture when running OpenGL under RenderDoc
- Will also set the memory mode to non coherent so not to kill performance on RenderDoc
Change 3126966 on 2016/09/15 by Rolando.Caloca
DR - Allow cooking for Vulkan SM4 to help with packaging
Change 3127082 on 2016/09/15 by Guillaume.Abadie
Wraps up contact shadows for release fixing different artifacts and handling correctly their screen space length.
#jira UE-35367, UE-33602, UE-33603, UE-33604
#review-3125887 @brian.karis
Change 3127130 on 2016/09/15 by Mark.Satterthwaite
Add overloads to as* functions in hlslcc - HLSL allows you to call these on variables of the same type, in which case it simply returns the existing value but we had only defined the float<->u/int conversions, so hlslcc added implicit casts that broke such cases (i.e. asuint(uint) -> floatBitsToUint(float(uint))). This change defines the missing overloads as returns with regular casts.
#jira FORT-25869
#jira UE-34263
Change 3127475 on 2016/09/15 by Rolando.Caloca
DR - vk - Debug dump
Change 3128131 on 2016/09/16 by Ben.Woodhouse
(Integrated from //UE4/Private-Partner-NREAL/...)
Alpha output support for postprocess materials (optional via a parameter)
Needed for end of frame compositing. Could be used to pass intermediate data from one blendable postprocess to another (e.g edge detection)
Change 3128135 on 2016/09/16 by Ben.Woodhouse
GPU profiler (PS4) - remove bubbles between commandlist submissions from query times
Use r.ps4.AdjustRenderQueryTimestamps cvar to enable/disable (defaults to on)
Also fixes some potential precision issues with unit GPU timing
Change 3128247 on 2016/09/16 by Rolando.Caloca
DR - vk - Cache framebuffers
Change 3128593 on 2016/09/16 by Rolando.Caloca
DR - vk - Fix for crash loading map
#jira UE-36072
Change 3128759 on 2016/09/16 by Mark.Satterthwaite
Back out changelist 3127130 - its causing a build failure in FPostProcessVelocityScatterVS because hlslcc is picking the wrong as_* overload.
Change 3130236 on 2016/09/19 by Chris.Bunner
Exposed full SceneCaptureComponent classes instead of select methods.
#jira UE-35996
Change 3130388 on 2016/09/19 by Rolando.Caloca
DR - Avoid crash when adding dynamic primitives
#jira UE-35327
Change 3130393 on 2016/09/19 by Marc.Olano
Improve vector noise tooltips & documentation
Change 3130547 on 2016/09/19 by Ben.Woodhouse
Fix for ensure fail when initializing point light shadowmaps.
This came about because cubemap rendertargets always have Extents of (Resolution, 0). The Y component was implicitly used to determine if it was a cubemap, which is odd... The fix was to make the definition explicit via a flag and initialize both the X and Y parameters.
I suspect the ensure started happening recently due to a more recent change, but fixing the underlying logic seems like the correct fix.
#jira UE-35837
Change 3130578 on 2016/09/19 by Daniel.Wright
Workaround OpenGL/NVidia bug with non-power-of-2 textures by disabling CSM atlassing if we're using OpenGL
Change 3130682 on 2016/09/19 by Rolando.Caloca
DR - Better fix for UE-35327
#jira UE-35327
Change 3130767 on 2016/09/19 by Uriel.Doyon
Better handling of color array in VisualizeComplexity code to prevent assert.
#jira UE-29332
Change 3130965 on 2016/09/19 by Arne.Schober
DR - [UE-35679] - the crash was caused by the Resource of the UTexture being Null. And one of the Kismet Nodes calling a function on that resource. The solution was to disable that call from Kismet when only cooking.
Change 3130967 on 2016/09/19 by Chris.Bunner
Hid redundant texture sampler properties from texture object parameter.
Hid redundant texture property input on texture parameter nodes.
Fixed copy-paste error in expression texture parameter docs.
#jira UE-32724
Change 3131118 on 2016/09/19 by Mark.Satterthwaite
Second attempt - this time with the correct input types. Add overloads to as* functions in hlslcc - HLSL allows you to call these on variables of the same type, in which case it simply returns the existing value but we had only defined the float<->u/int conversions, so hlslcc added implicit casts that broke such cases (i.e. asuint(uint) -> floatBitsToUint(float(uint))). This change defines the missing overloads as returns with regular casts.
#jira FORT-25869
#jira UE-34263
Change 3131153 on 2016/09/19 by Rolando.Caloca
DR - Fix recompute normals when triangles have a LHS tangent basis
Integrate from 3028634
- Also make meshes that don't have morphs be able to run through the recompute normals path
#jira UE-35472
Change 3131228 on 2016/09/19 by Mark.Satterthwaite
Duplicate CL #3114668: Always disable asynchronous shader compilation for the global shader map on Metal as some of them are needed very early.
#jira UE-35240
Change 3131246 on 2016/09/19 by Rolando.Caloca
DR - Shrink gpu skinning permutations
Change 3131261 on 2016/09/19 by Mark.Satterthwaite
Fix Metal validation failures due to particle rendering not binding buffers to all buffer inputs declared in the shader.
ContentExamples Effects no longer aborts complaining that the particle system didn't bind a required buffer.
Change 3131265 on 2016/09/19 by Mark.Satterthwaite
Fix FMetalDynamicRHI::RHIReadSurfaceData for shared textures on iOS.
Change 3131271 on 2016/09/19 by Mark.Satterthwaite
Use private memory for the Metal stencil SRV workaround needed on El Capitan.
Change 3131273 on 2016/09/19 by Mark.Satterthwaite
Disable the lazy-encoder construction in Metal for AMD - there is a situation that causes the lazy construction to perform a clear that isn't wanted and so far this hasn't been tracked down and fixed. Until then, this will render correctly.
Change 3131280 on 2016/09/19 by Mark.Satterthwaite
For GLSL interpolation mode flags must come before storage mode flags and you can't redeclare the system variable gl_Layer to use a differing interpolation mode.
Change 3131283 on 2016/09/19 by Mark.Satterthwaite
Change the ShaderCache to not cache resource bindings in the draw states for shader platforms that don't care - reduces the number of draw states considered significantly without reducing effectiveness. We can support ShaderCache with Metal SM5 but not the RHI thread enabled so change when we enable it and make sure we load the binary shader cache.
Change 3131402 on 2016/09/19 by Rolando.Caloca
DR - Disambiguate callstack
#jira UE-34415
Change 3131469 on 2016/09/19 by Rolando.Caloca
DR - vk - Check if we can allocate descriptors off a pool
Change 3131482 on 2016/09/19 by Rolando.Caloca
DR - vk - Remove unused var
Change 3131506 on 2016/09/19 by Mark.Satterthwaite
With permission from Josh.A & Michael.T, deprecate Mac OpenGL support. For now this just means visibly warning users with message boxes - but in a future release OpenGL support will be removed from macOS.
Change 3131536 on 2016/09/19 by Rolando.Caloca
DR - vk - Compile fix
Change 3131564 on 2016/09/19 by Rolando.Caloca
DR - vk - Submit Hint
- Disable framebuffer recycling as its causing a hang
Change 3131625 on 2016/09/19 by Mark.Satterthwaite
Inside MetalRHI add an optional cache for disposed texture objects so we may reuse them - controlled by CVAR rhi.Metal.TextureCacheMode which must be set prior to running as it can't be changed at runtime. Settings: 0 = off, 1 (default) = will attempt to reuse private memory texture objects within the frame they are released otherwise they are disposed of as before. Setting 2 extends the caching to all textures - though Managed/Shared textures cannot be reused until after the frame in which they were released has been processed on the GPU. In this mode id<MTLTexture> objects are never returned to the OS so in order to conserve VRAM calls to setPurgeableState are made to allow the driver to reclaim unusued memory if required.
Change 3131630 on 2016/09/19 by Mark.Satterthwaite
More statistics in Metal added to track down where performance was going in a particular project but which may be more generally useful.
Change 3131955 on 2016/09/20 by Gil.Gribb
Merging //UE4/Dev-Main@3129758 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3131978 on 2016/09/20 by Gil.Gribb
CIS fix
Change 3132584 on 2016/09/20 by Ben.Woodhouse
Add some additional checks to help track down a rare crash with terrain rendering and shader recompiling
#jira UE-35937
Change 3132696 on 2016/09/20 by Mark.Satterthwaite
Use set*Bytes to handle uploading buffers < 4Kb when available - this is faster than lots of small Metal buffers and reduces the amount of GPU heap fragmentation. Where the API feature isn't available or hasn't been tested yet we'll use another ring-buffer inside the MetalCommandEncoder to emulate it.
Change 3132772 on 2016/09/20 by Mark.Satterthwaite
Rework Metal's handling of RHISetStreamSource calls that override the stride of vertex declarations to be much more efficient.
Change 3132870 on 2016/09/20 by Ben.Woodhouse
Fix mac compile error
Change 3133049 on 2016/09/20 by Brian.Karis
Changed light source shapes in reflection captures to use alpha
Change 3133057 on 2016/09/20 by Brian.Karis
Alphaed out on spot light cone as well.
Change 3133263 on 2016/09/20 by Rolando.Caloca
DR - vk - Debug names for objects
Change 3133292 on 2016/09/20 by Rolando.Caloca
DR - vk - Fix SRGB upload/formats
Change 3133395 on 2016/09/20 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3134026 on 2016/09/21 by Gil.Gribb
Merging //UE4/Dev-Main@3133983 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3134730 on 2016/09/21 by Arne.Schober
DR - [UE-34481] - Fix minor brokenness found by Gil
Change 3134792 on 2016/09/21 by Chris.Bunner
Fixed compile errors for non-editor builds.
Change 3135214 on 2016/09/21 by Rolando.Caloca
DR - vk - Fix visualize texture
- Dump memory when OOM (to track leaks)
Change 3135225 on 2016/09/21 by Rolando.Caloca
DR - vk - Ensure on exit if mem leak
- Update fences if running wait for idle
Change 3135672 on 2016/09/22 by Gil.Gribb
Merging //UE4/Dev-Main@3135568 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3135793 on 2016/09/22 by Rolando.Caloca
DR - vk - Set dynamic state after binding pipeline or on a fresh cmd buffer
Change 3135816 on 2016/09/22 by Rolando.Caloca
DR - Add names for d3d on renderdoc
Change 3135894 on 2016/09/22 by Chris.Bunner
Fixed initialization order warning.
Change 3136024 on 2016/09/22 by Rolando.Caloca
DR - vk - Fix stencil faces
Change 3136042 on 2016/09/22 by Marcus.Wassmer
Fix compile error
Change 3136046 on 2016/09/22 by Chris.Bunner
Renamed material for PostTonemapHDRColor visualization to reflect actual usage.
Change 3136308 on 2016/09/22 by Uriel.Doyon
Changed how the component relative rotation is computed, in order to have more consistency after blueprint rescript.
#jira UE-36094
Change 3136798 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
Change 3137092 on 2016/09/22 by Rolando.Caloca
DR - vk - Rename pipeline to gfx pipeline
Change 3137263 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135157:
Fix one cause of Metal crashes loading into a zone - the PlanarReflection shader code needs to always set the IsStereoParameter so that the shader can perform the if-test without causing an invalid GPU access.
#jira FORT-30061
Change 3137265 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135169:
Correct Metal texture creation for AVF media framework - we can't provide a render-targetable version of the texture without blitting. The native texture we get is a GPU copy that can be made CPU accessible (i.e. it is not tiled).
Change 3137266 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135237:
Metal validation layer fix: under Metal if there are no reads from the vertex stage-in buffers we should use the Empty vertex declaration, not the filter declaration, otherwise we have to bind a redundant vertex stream buffer to silence the validation layer.
Change 3137268 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3136033:
To fix the Fortnite login screen force Nvidia Macs to use the set*Bytes API for small buffer updates even on El Capitan. We can't do this globally as Intel didn't implement these functions until macOS Sierra.
Fix GPU selection code in MetalRHI to confirm everything is working.
#jira FORT-30385
Change 3137269 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3137164:
Add stats to track exactly how many command buffers are allocated and committed each frame to work out why Fortnite on AMD is hanging, which turns out to be because each texture update/reallocation ends up in its own command-buffer. This needs to be rethought to pack these into fewer command buffers with the same synchronisation requirements to minimise command-buffer splits but for now we'll just make the default sufficiently large that we shouldn't see the hang until the work is done. Also ensure that command-buffer failure is always fatal - there is no way to recover or continue if a command-buffer fails.
#jira FORT-30377
Change 3137606 on 2016/09/23 by Gil.Gribb
Merging //UE4/Dev-Main@3137560 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3137936 on 2016/09/23 by Rolando.Caloca
DR - Split RHICmdList clear into color & ds in prep for changes
Change 3138346 on 2016/09/23 by Rolando.Caloca
DR - vk - Some renaming and splitting classes in prep for compute
Change 3138628 on 2016/09/23 by Rolando.Caloca
DR - vk - Fix mem leak on framebuffers
Change 3138721 on 2016/09/23 by Daniel.Wright
Better comment for r.DefaultFeature.AntiAliasing
Change 3138722 on 2016/09/23 by Daniel.Wright
Fixed assert from decals with MSAA due to binding the Scene Depth Texture instead of surface
Change 3138723 on 2016/09/23 by Daniel.Wright
Corrected GC doc
Change 3138892 on 2016/09/23 by Daniel.Wright
Fixed instanced static meshes being unbuilt after a lighting build if you ever cancelled a previous lighting build
Change 3138905 on 2016/09/23 by Daniel.Wright
"Optimizations" -> "Optimization Viewmodes"
Change 3138939 on 2016/09/23 by Daniel.Wright
Disabled the stationary light overlap viewmode with forward shading
Change 3139710 on 2016/09/26 by Rolando.Caloca
DR - Rename and added texture RHIClearDepthStencil -> RHIClearDepthStencilTexture
Change 3139820 on 2016/09/26 by Rolando.Caloca
DR - Remove prefix from shader frequency strings
Change 3139828 on 2016/09/26 by Marcus.Wassmer
Add SetShaderValue() specialization for bools on AsyncCompute commandlists to match the Gfx specialization.
Change 3139840 on 2016/09/26 by Benjamin.Hyder
Adding VectorNoise Examples to TM-Noise map
Change 3139862 on 2016/09/26 by Rolando.Caloca
DR - Better log to track down crash
#jira UE-36271
Change 3140142 on 2016/09/26 by Rolando.Caloca
DR - Fix clang warning
Change 3140145 on 2016/09/26 by Rolando.Caloca
DR - Rename RHIClearColor(MRT) to RHIClearColorTextures and pass textures as parameters
Change 3140360 on 2016/09/26 by Daniel.Wright
Lighting Scenarios and lightmaps moved to separate package
* Levels can be marked as lighting scenarios (eg Day, Night). Lighting is built separately for each lighting scenario with actors / lights in all other scenario levels hidden. Only one lighting scenario level should be visible at a time in game, and its lightmaps will be applied to the world.
* Most outputs of the lighting build now go into a separate _BuiltData package. This improves level Save and AutoSave times as the separate package will only be dirtied after lighting rebuilds.
* If a lighting scenario is present, all lightmaps are placed inside it's _BuiltData package. This means that only the currently loaded lighting scenario's lightmaps will be loaded (Day or Night, but not both). This also means that lightmaps for a streaming level will not be streamed with it.
* For backwards compatibility, existing lightmaps are moved to a new _BuiltData package on load.
* Reflection captures and precomputed visibility were not moved to the separate package. Reflection captures are force updated on load of a lighting scenario level, which can increase load times.
Change 3140361 on 2016/09/26 by Daniel.Wright
Lighting Scenarios UI
Change 3140582 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140166
Fix the video playback in Fortnite - bind our shader resource texture as the render-target texture as for some reason the playback code expects it there, even though we could never provide one.
#jira FORT-30551
Change 3140584 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140131:
Fix crash under the validation layer & Nvidia's El Capitan (10.11) drivers when distance field particle collisions are used without any scene distance fields available - bind the black volume texture when that is the case to avoid bad access on the GPU.
#jira FORT-30622
Change 3140586 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140450:
Fix launching the game on Intel GPUs by disabling Tiled Reflections on Intel for macOS Sierra like we did for El Capitan as there's currently a driver bug to means it doesn't work properly.
#jira FORT-30649
Change 3140594 on 2016/09/26 by Zabir.Hoque
Fix benchmark shaders register bindings. TEXCOORD0 was bound to register 1 in VS and then register 0 in PS. DX12 treats this a PSO creation failuer unlike DX11 this was an error.
Change 3140601 on 2016/09/26 by Marcus.Wassmer
New 'Cinematic' Scalability level. Remove unused 'new' motionblur CVAR
Change 3140602 on 2016/09/26 by Zabir.Hoque
CreateTexture3D on XB1 DX11 was leaking ESRAM by reserving it but not allocating to it.
#Tests: Fix was tested by licensee (GearBox).
Change 3140622 on 2016/09/26 by Rolando.Caloca
DR - vk - More prep for sm5
Change 3140765 on 2016/09/26 by Rolando.Caloca
DR - Fix ensure from bad clear depth surface
Change 3141251 on 2016/09/27 by Rolando.Caloca
DR - vk - Rename & cleanup
Change 3141394 on 2016/09/27 by Rolando.Caloca
DR - vk - Compute pipeline state
Change 3141463 on 2016/09/27 by Mark.Satterthwaite
Fix the include order to avoid compile errors on Mac.
Change 3141529 on 2016/09/27 by Gil.Gribb
Merging //UE4/Dev-Main@3139632 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3141830 on 2016/09/27 by zachary.wilson
Adding testing content for lighting scenarios to collaborate with Ben
Change 3141941 on 2016/09/27 by Olaf.Piesche
Speculative fix for UE-34815; have yet to repro this but there's really only so many things it could be. I currently don't see how the sim resources could go away after queueing, so I'm replacing the check with an ensure and null checking the resource pointer.
Change 3142035 on 2016/09/27 by Olaf.Piesche
Fix compiler error from silly leftover bit of code.
Change 3142065 on 2016/09/27 by Benjamin.Hyder
Updating Lighting Scenario map
Change 3142262 on 2016/09/27 by Mark.Satterthwaite
Change Apple RHI initialisation to select the first compatible shader platform to decide which RHI to initialise. Internally in MetalRHI we must gracefully fallback to a lower feature-level when this initial selection is not available on the current device/OS, in which case we need to validate that the selected shader platform was actually packaged. The order of initialisation is different per-platform:
On Mac: Order of initialisation is the order listed in TargetedRHIs .ini specifications.
On iOS/tvOS: Order is explicit: Metal MRT > Metal ES 3.1 > OpenGL ES 2
#jira UE-35749
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3142397 on 2016/09/27 by Mark.Satterthwaite
Update hlslcc for Mac including RCO's changes in CL #3142292.
#jira UE-31438
Change 3142438 on 2016/09/27 by Daniel.Wright
UMapBuildDataRegistry's created for legacy lightmap data are placed in the map package, which avoids problems with cooking
Change 3142452 on 2016/09/27 by Rolando.Caloca
DR - Proper support for int defines
Change 3142519 on 2016/09/27 by Arne.Schober
DR - [UE-33438] - Added a Project Setting to enable Skincache Shader Permuations. The Default value for the Skincache mode was changed to enabled. The reasoning behind this was that it will be auto disabled when Skincache Shaders are disabled, and runtime toggle is a debuging feature that mainly programmers are dealing with. The Recompute Tangents option in the Skinned Mesh is now automatically grayed out when no Skincache Shader Permuations are available.
Change 3142537 on 2016/09/27 by Daniel.Wright
Fixed r.ScreenPercentage with MSAA - a scissor rect was being setup during the resolve and not reset
Change 3142691 on 2016/09/27 by Daniel.Wright
Disabled renaming of legacy ULightmap2D's to the separate package since UMapBuildDataRegistry is no longer put in a separate package for legacy content
Change 3142711 on 2016/09/27 by Daniel.Wright
GComponentsWithLegacyLightmaps entries get handled by USceneComponent::AddReferencedObjects, fixes a crash when you open a map directly from the content browser
Change 3142712 on 2016/09/27 by Daniel.Wright
Separate category for ParticleCutout properties
Change 3142762 on 2016/09/27 by Uriel.Doyon
Added per static mesh and per skeletal mesh UV density data. The data is now saved and available in cooked builds.
The density are computed by the engine but can be overridden by the user in the material tabs.
Texture streaming intermediate component data is now per material instead of per lod-section.
New ViewModeParam in FSceneViewFamily allowing context specific param per viewmode.
This is currently used to show which UV channel and which texture index is being
shown in the texture streaming accuracy viewmodes.
This replaces r.Streaming.AnalysisIndex
Renamed texture streaming viewmodes:
MeshTexCoordSizeAccuracy -> MeshUVDensityAccuracy
MaterialTexCoordScalesAccuracy -> MaterialTextureScaleAccuracy
MaterialTexCoordScalesAnalysis -> OutputMaterialTextureScales
Improved UV density computation and viewmode.
LightmapUVDensity is now computed separately from UVChannel Density.
Fixed texture streaming for instanced static mesh component and derived types.
Change 3143464 on 2016/09/28 by Daniel.Wright
Removed 'experimental' from forward shading setting
Change 3143508 on 2016/09/28 by Chris.Bunner
Added component type handling to FoldedMath and Length material expressions.
#jira UE-36304
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3143563 on 2016/09/28 by Rolando.Caloca
DR - vk - Force hlslcc re-link
Change 3143648 on 2016/09/28 by Daniel.Wright
Moved GetMeshMapBuildData to UStaticMeshComponent since FStaticMeshComponentLODInfo::OwningComponent can't be initialized reliably in the case of SpawnActor off of a blueprint default that has LODData entries already.
Change 3143661 on 2016/09/28 by Chris.Bunner
Warning fix.
Change 3143723 on 2016/09/28 by Daniel.Wright
DumpUnbuiltLightIteractions after lighting build for debugging
Change 3143822 on 2016/09/28 by Arne.Schober
DR - Refactoring of the ViewMatrices. Moved the Derived Matrices into the FViewMatrix struct. Made all members private do emphasize the static constness of that struct after creation. Renamed the heavy weight members on this struct to Compute*. Methods that modify The ViewMatrices have been renamed to Hack* to discurage their use in the future until a better solution for those problems is found. The ViewMatrix modification is especially misleading because it only changes the State of the ViewMatrices to read their Position from the Material Editior as if coming from the Lightsource (mainly for manual bilboards) as well as doing someting similar to generate CPU bilboards for shadows.
Change 3143860 on 2016/09/28 by Benjamin.Hyder
Updating TM-Noise map to include 3d noise examples
Change 3143939 on 2016/09/28 by Rolando.Caloca
DR - vk - Better debugging of submissions
- Added r.Vulkan.IgnoreCPUReads to help track down hangs on some ihvs
Change 3144006 on 2016/09/28 by Brian.Karis
Fixed PixelError not being set correctly with LOD groups.
Removed unneeded Simplygon references.
Mesh reduction module can now be chosen by name with r.MeshReductionModule
Change 3144026 on 2016/09/28 by Benjamin.Hyder
Updating QA-Effects map to correct numbering issue
Change 3144098 on 2016/09/28 by Arne.Schober
DR - ViewMatrices Refactoring - Fix UT
Change 3144158 on 2016/09/28 by Rolando.Caloca
DR - Undo splitting RHI command context
Change 3144952 on 2016/09/29 by Rolando.Caloca
DR - vk - Missing swapchain flag
Change 3145064 on 2016/09/29 by Olaf.Piesche
#jira UE-36091
Pulling range update for vector distributions even when UDist is not dirty; some content has a lookup table and a clean dist, but the range values have not been baked; always pulling them should be safe and not significantly costly.
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3145485 on 2016/09/29 by Daniel.Wright
Made SeamlessTravelLoadCallback handle legacy lightmaps
Change 3145527 on 2016/09/29 by Daniel.Wright
Don't clear legacy lightmap annotations on each map - fixes lighting unbuilt when doing seamless travel
Change 3145530 on 2016/09/29 by Simon.Tovey
UE-36188 - Editor crash when updating hierarchical instance static mesh component
Dirtied render state rather than unsafe update of bounds.
Change 3145608 on 2016/09/29 by Gil.Gribb
Attempt to fix a random compiler error under win32
Change 3145749 on 2016/09/29 by Uriel.Doyon
Fix for static analysis warning
Change 3146091 on 2016/09/29 by Zabir.Hoque
RHI Interface changes to support PSO based APIs
Change 3146092 on 2016/09/29 by Zabir.Hoque
D3D12 RHI support for PSO based APIs.
Change 3146590 on 2016/09/30 by Gil.Gribb
Merging //UE4/Dev-Main@3146520 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3146731 on 2016/09/30 by Rolando.Caloca
DR - Fix merge conflicts
Change 3146778 on 2016/09/30 by Rolando.Caloca
DR - More integration compile fixes
Change 3146790 on 2016/09/30 by Rolando.Caloca
DR - Integration fix
Change 3146849 on 2016/09/30 by Rolando.Caloca
DR - Final integration fix
Change 3146899 on 2016/09/30 by Daniel.Wright
Static analysis fix for dereferencing World
Change 3147020 on 2016/09/30 by Rolando.Caloca
DR - vk - Fix depth issue on AMD cards
- Added VULKAN_KEEP_CREATE_INFO to help debugging creation
- Added num color attachments to pipeline key
Change 3147034 on 2016/09/30 by Rolando.Caloca
DR - Fix Kite crash where shader pipelines were optimizing non-tessellation pipelines
#jira UE-36277
#jira UE-36500
Change 3147080 on 2016/09/30 by Rolando.Caloca
DR - vk - Disable debug info by default
Change 3147082 on 2016/09/30 by Chris.Bunner
Allow tessellation to be used with DrawTile calls by swapping fixed mesh to triangle list.
#jira UE-36491
Change 3147388 on 2016/09/30 by Chris.Bunner
Blacklisted Nvidia driver 372.70 as it has known stability issues skewing our top crashes list. Also updated recommended version numbers.
#jira UE-35288
Change 3147394 on 2016/09/30 by Chris.Bunner
Additional logging for rare error.
#jira UE-35812
Change 3147459 on 2016/09/30 by Rolando.Caloca
DR - vk - Some more srgb formats
Change 3147537 on 2016/09/30 by Rolando.Caloca
DR - vk - Standarize srgb flag like D3D11
- Minor FVulkanShader cleanup
Change 3147620 on 2016/09/30 by Olaf.Piesche
#jira UE=34486
particle component tick function task can be invalid during pause; add check
Change 3148028 on 2016/10/01 by Daniel.Wright
Renamed RenderingSettings.cpp to match header
Change 3148059 on 2016/10/01 by Daniel.Wright
Disabled reparenting in the profiler which is disorienting
Change 3148067 on 2016/10/01 by Daniel.Wright
Support for ReflectionEnvironment and light type show flags with ForwardShading
Change 3148069 on 2016/10/01 by Daniel.Wright
Added CapsuleIndirectShadowMinVisibility to SkinnedMeshComponent, so artists have control over indirect capsule shadow darkness without changing cvars
Change 3148072 on 2016/10/01 by Daniel.Wright
Added a rendering setting to disable the new lightmap mixing behavior, where smooth surfaces don't have any mixing. r.ReflectionEnvironmentLightmapMixBasedOnRoughness
Change 3148073 on 2016/10/01 by Daniel.Wright
r.VertexFoggingForOpaque only affects forward shading - manual copy of Ben's fix from Orion stream
Change 3148074 on 2016/10/01 by Daniel.Wright
Enabled planar reflection receiving on the material used for the preview of a APlanarReflection
Change 3148084 on 2016/10/01 by Daniel.Wright
Fixed reflections on Surface TranslucencyVolume in deferred
Change 3148085 on 2016/10/01 by Daniel.Wright
Fixed planar reflection composite being done too many times in stereo deferred
Change 3148086 on 2016/10/01 by Daniel.Wright
Clamp IndirectLightingQuality to 1 in preview builds - keeps preview useful even with IndirectLightingQuality jacked up to 10.
Change 3148107 on 2016/10/01 by Daniel.Wright
CIS fix
Change 3148113 on 2016/10/01 by Daniel.Wright
Translucency lighting modes for forward shading
* Per-vertex modes use GetSimpleDynamicLighting since they can't support specular anyway
Change 3148306 on 2016/10/02 by Rolando.Caloca
DR - vk - Fix for some NV drivers on Win10
Change 3148307 on 2016/10/02 by Rolando.Caloca
DR - vk - Compute pipeline
Change 3148358 on 2016/10/02 by Rolando.Caloca
DR - vk - Consolidate and renumber enum for binding types
Change 3148396 on 2016/10/03 by Rolando.Caloca
DR - vk - Warning fix
Change 3148697 on 2016/10/03 by Benjamin.Hyder
Submitting M_Chromebal after enabling planar reflectionsl
Change 3148799 on 2016/10/03 by Rolando.Caloca
DR - vk - static analysis fix
Change 3148934 on 2016/10/03 by Chris.Bunner
Added pre-skinned local position material graph node, vertex shader only.
Change 3148994 on 2016/10/03 by Chris.Bunner
Added missing header file.
Change 3149085 on 2016/10/03 by Daniel.Wright
Support for ReflectionEnvironment show flag in base pass reflections without any shader overhead
Change 3149095 on 2016/10/03 by Rolando.Caloca
DR - vk - Disable new render passes
Change 3149125 on 2016/10/03 by Rolando.Caloca
DR - vk - Fix for multiple memory types
Change 3149181 on 2016/10/03 by Rolando.Caloca
DR - Better message when missing pipelines
Change 3149215 on 2016/10/03 by Rolando.Caloca
DR - RHIClearColor -> RHIClearColorTexture
#tests Orion Editor run match on Agora_P
Change 3149288 on 2016/10/03 by Chris.Bunner
Added PreTonemapHDRColor for buffer visualization and target output.
#jira UE-36333
Change 3149402 on 2016/10/03 by Daniel.Wright
Light attenuation buffer is now multisampled, fixes preshadows with MSAA (depth testing failed during stencil pass) but adds a resolve (.12ms at VR res)
Change 3149403 on 2016/10/03 by Daniel.Wright
Forward lighting supports lighting channels
Change 3149574 on 2016/10/03 by Marcus.Wassmer
PR #2817: Ansel/Photography system (Contributed by adamnv)
Modified to become a plugin
Change 3149615 on 2016/10/03 by Rolando.Caloca
DR - vk - Fix PF_G16R16 which fixes reflections
Change 3149639 on 2016/10/03 by Olaf.Piesche
Adding more ensures to catch NaNs occasionally appearing in particle locations early
Change 3149745 on 2016/10/03 by Uriel.Doyon
Moved UVDensity computation in the staticmesh DDC.
Change 3149749 on 2016/10/03 by Daniel.Wright
Fixed lightmaps on BSP, which was fallout from Lighting Scenarios backwards compatibility
Change 3149755 on 2016/10/03 by Benjamin.Hyder
Checking in built lighting for QA-postprocessing
Change 3149758 on 2016/10/03 by Benjamin.Hyder
re-submitting built lighting for QA-PostProcessing
Change 3149940 on 2016/10/04 by Gil.Gribb
Merging //UE4/Dev-Main@3149754 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3150098 on 2016/10/04 by Marcus.Wassmer
Fix some clang and win32 errors
Change 3150323 on 2016/10/04 by Rolando.Caloca
DR - vk - Static analysis fix
Change 3150456 on 2016/10/04 by Daniel.Wright
Revert temp logs
Change 3150731 on 2016/10/04 by Daniel.Wright
Static lights now add a dummy map build data entry for their ULightComponent::IsPrecomputedLightingValid
Change 3150795 on 2016/10/04 by Marcus.Wassmer
Fix RHIClearUAV and Drawindirect bugs on PS4.
Also fix PS4 compile error from bad merge.
Change 3151065 on 2016/10/04 by Ben.Marsh
Merging //UE4/Dev-Main to Dev-Rendering (//UE4/Dev-Rendering)
Change 3151134 on 2016/10/04 by Brian.Karis
Fixed corrupt mesh generation from quadric simplifier due to uninitialized color array.
Change 3151201 on 2016/10/04 by Marcus.Wassmer
Nvidia approved icon for ansel plugin.
Change 3151240 on 2016/10/04 by Marcus.Wassmer
Fix string concat build error.
Change 3151258 on 2016/10/04 by Ben.Marsh
Fix compile error.
Change 3151290 on 2016/10/04 by Marcus.Wassmer
Bumping static mesh DDC key to hopefully fix distancefield crashes after brian's quadric simplifier fix.
Change 3152104 on 2016/10/05 by Chris.Bunner
Workaround for legacy BreakMA material node invalid component masks.
#jira UE-36832
Change 3152130 on 2016/10/05 by Ben.Woodhouse
Fix issue with skylight SH and fast semantics on DX11. We need to clear the cube scratch textures before writing to them to avoid issues when reading them back for mip downsampling
#jira UE-35890
Change 3152240 on 2016/10/05 by Rolando.Caloca
DR - Fix for missing gizmo colors
#jira UE-36515
Change 3152338 on 2016/10/05 by Daniel.Wright
Hopeful fix for FDistanceFieldVolumeTexture assert in the cooker
Change 3152833 on 2016/10/05 by Brian.Karis
Improved precision of quadrics. Fixes bad triangles on large meshes
Change 3153376 on 2016/10/06 by Rolando.Caloca
DR - Fix for SM4 missing pipelines fallout
Change 3153650 on 2016/10/06 by Gil.Gribb
Merging //UE4/Dev-Main@3153068 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3153656 on 2016/10/06 by Uriel.Doyon
Fixed main integration compilation issues.
Some of the Mesh UVDensity UI is temporary disabled.
Change 3153725 on 2016/10/06 by Uriel.Doyon
Fixed crash when source data is missing for lightmaps
#jira UE-36157
Change 3153998 on 2016/10/06 by Gil.Gribb
Merging //UE4/Dev-Main to Dev-Rendering@3153705 (//UE4/Dev-Rendering)
Change 3154056 on 2016/10/06 by Marcus.Wassmer
Fix compile errors from merge. Also restore some light scencario code
Change 3154176 on 2016/10/06 by Marcus.Wassmer
Fix deprecation warning
Change 3154252 on 2016/10/06 by Marcus.Wassmer
Fix more deprecation warnings
Change 3154632 on 2016/10/07 by Chris.Bunner
Fix for incorrect re-entrant detection with a function called twice in a row. The function input Preview expression is overridden when the function is called to link it into the caller graph, but it was restored too late for chained calls to the same function.
#jira UE-37002
[CL 3154728 by Gil Gribb in Main branch]