Commit Graph

15 Commits

Author SHA1 Message Date
Ola Olsson
2164aab249 Fix depth bias direction on cube maps at shadow quality <= 2
#rb andrew.lauritzen

[CL 14507777 by Ola Olsson in ue5-main branch]
2020-10-16 06:47:50 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
Marc Audy
360d078ca3 Second batch of remaining Engine copyright updates.
#rnx
#rb none

[CL 10871248 by Marc Audy in Main branch]
2019-12-27 09:26:59 -05:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00
Rolando Caloca
1c9ffe06d9 DR - Revert all the float3->float4 conversions. Will fix properly on hlslcc
#rb none
#rnx

[CL 4662040 by Rolando Caloca in Dev-Rendering branch]
2018-12-14 11:54:34 -05:00
Rolando Caloca
8586df0055 DR - Convert all global float3/half3/uint3 to float4/half4/unit4
#rb none
#rnx

[CL 4659439 by Rolando Caloca in Dev-Rendering branch]
2018-12-13 16:33:43 -05:00
Marcus Wassmer
b5d7db3689 Copying //UE4/Dev-Rendering-HLR@4650617 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none

[CL 4651635 by Marcus Wassmer in Dev-Rendering branch]
2018-12-11 22:25:04 -05:00
Marcus Wassmer
8522799c64 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4072632)
#lockdown Nick.Penwarden

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

Change 3870267 by Arne.Schober

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

Change 3872507 by Arne.Schober

	Back out changelist 3870267

Change 3988916 by Marcin.Undak

	Quail/Linux compilation fix #rb none #codereview arciel.rekman

Change 4042277 by Rolando.Caloca

	DR - Clear UBs between PSOs on D3D to help track down not setting resources

Change 4042297 by Arne.Schober

	DR - Fix case where LPV requires SSAO to run but no GBuffer is available in formward mode. In this case we force the behaviour to use the simple AO (as ASyncAO pass)
	#jira UE-42135

Change 4042404 by Jian.Ru

	Fix a race condition when RT is disabled and then re-enabled
	#jira

Change 4042437 by Richard.Wallis

	Mac Localization - Mac now uses FUICommand and NSLOCTEXT to build main menu items.  Don't fetch menu items using name since that could change.  Lookup using ID's.

	Note:
	New CB function binding system in *FStartupApplicationToMacMenuBinder*.  Added to simplify the existing and new CB function binding.

	Update:
	Application menu now also gets an update on runtime langauge changed event.  Other menu's get updated anyway as per runloop updates.

	#jira UE-49526

Change 4042602 by Guillaume.Abadie

	Adds support for alpha channel in DOF.

Change 4042603 by Guillaume.Abadie

	Gates global sampler behind SUPPORTS_INDEPENDENT_SAMPLERS for nicer error messsage on platform that do not support them.

Change 4042671 by Guillaume.Abadie

	Massages DOF's shader code for HLSLCC.

Change 4042772 by Mark.Satterthwaite

	Expose the MTLComputePipelineState's label string.

Change 4043013 by Juan.Canada

	Fixed bounds of skeletal meshes could be inverted (min > max) with negative scaling. That was breaking occlusion tests in some scenes, creating flicking issues.
	#jira UE-49290

Change 4043171 by Rolando.Caloca

	DR - Workaround crash on hlslcc

Change 4043182 by Uriel.Doyon

	Fixed skylight issues when using pre-exposure.
	Improved IndirectIrradiance gbuffer encoding when using pre-exposure.

Change 4043452 by Mark.Satterthwaite

	Extensively refactor the MetalRHI GPU profiling code. There is now a "MetalProfiler Start/Stop/Frames=X" in-game command that will spit out JSON files similar to the platform-agnostic TracingProfiler, but this displays the command-buffer encoding and execution which actually makes sense with Metal where we can't arbitrarily insert requests for time-stamps and breaking command-buffers/encoders is expensive.

Change 4044732 by Richard.Wallis

	Fix for macOs restoring to fullscreen results in render with large black border.  Also tested that is fix doesn't seem to re-introduce UE-51270 (CL 3696161).  There appears to be an edge case that can cause the toogleFullScreen: method to not correctly expand window frame to the full screen size - we end up with a frame size of the previous setting.  Forcing the correct values doesn't fix the issue - the only consistant fix seems to be to re-introduce the - (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize delegate method.

	#jira UE-57549

Change 4044741 by Guillaume.Abadie

	Fixes a couple of regressions in DOF when using temporal upsampling.

Change 4044753 by Guillaume.Abadie

	Fixes a bug in WaveBroadcastIntrinsics.ush

Change 4045010 by Guillaume.Abadie

	Creates TM-DepthOfField in QAGame to test DOF.

Change 4045417 by Jian.Ru

	Prevent recursive flush
	#jira

Change 4045923 by Mark.Satterthwaite

	Further insulate private plugin usage within MetalRHI.

Change 4046006 by Mark.Satterthwaite

	Simplify dependency on the private module and hope it now builds properly.

Change 4046612 by Mark.Satterthwaite

	Apple A9 introduced support for baseVertex & baseInstance, earlier GPUs don't support it at all. The code was incorrectly compiling shaders assuming they did at given Metal shader standard versions. Instead we always compile mobile shaders assuming they don't support base index & vertex and for dektop shaders we now need an A9 or better GPU for it to work.

	#jira UE-55234

Change 4047504 by Mark.Satterthwaite

	Supress warnings about the missing module when not available or enabled. Also make it work on all Metal platforms.

Change 4048765 by Uriel.Doyon

	Fixed compilation issue from CL 4048308

Change 4048776 by Guillaume.Abadie

	Fixes a static pixel projection regressions in TAA caused by alpha channel support in DOF.

Change 4049059 by Mark.Satterthwaite

	Thread names in the MetalProfiler output and don't load the private module when selecting a device as it isn't useful anymore.

Change 4050290 by Mark.Satterthwaite

	Sort out the timebase for all the different Metal clocks when profiling - everything is now in microseconds and seems to line up! Need to rework all the other timing code similarly - but not in this commit.

Change 4050822 by Mark.Satterthwaite

	Partial custom counter support - still has bugs.

Change 4051210 by Guillaume.Abadie

	Dumps PermutationID of shader when shader compile worker crashes.

Change 4051652 by Guillaume.Abadie

	Optimises DOF's reduce with wave broadcast instrinsics.

Change 4051839 by Mark.Satterthwaite

	Tiny fix to changing custom counters.

Change 4052553 by Guillaume.Abadie

	Implements GATHER_INPUT_LAYOUT_RGB_SEPARATE_COC to save texture bandwidth in gather pass.

Change 4052611 by Guillaume.Abadie

	Fixes a crashes in light shaft.

Change 4052916 by Mark.Satterthwaite

	Extend the Mac & iOS Frame-Pacer API to proivde the target output time and the intended duration so that the MetalProfiler can record the display V-Blank window.

Change 4053111 by Rolando.Caloca

	DR - hlslcc - RequiresNegateDDY()

Change 4053402 by Mark.Satterthwaite

	Add instrumentation for buffer & texture allocation and shader & pipeline compilation to MetalProfiler. Everything that I personally care to track should now be in place but the implementation details are grim so there's still plenty of room for improvement.

Change 4053454 by Mark.Satterthwaite

	More attempts to allow the builders to compile for Mac in such a fashion that the private module's perfectly innocuous headers don't cause an error.

Change 4053765 by Guillaume.Abadie

	Fixes a failure in DOFGather's ShouldCompilePermutation() caused by R11G11B10 change.

Change 4053911 by Marcus.Wassmer

	Copying //Tasks/UE4/Dev-Rendering-RectLight@4053906 to Dev-Rendering (//UE4/Dev-Rendering)

Change 4053915 by Marcus.Wassmer

	Attempt to fix what looks like some unity build rearrangement issue.

Change 4053916 by Marcus.Wassmer

	Fix PS4 shader compile issues.  Point seems to be a reserved keyword in PSSL

Change 4054642 by Rolando.Caloca

	DR - Fix SCW not showing correct callstack/exception info on crashes

Change 4054661 by Mark.Satterthwaite

	Make thre MetalBackend convert depth texture sampls to float4 from float to match the expected return type and fix compiler errors.

	#jira UE-58670

Change 4054780 by Guillaume.Abadie

	Cuts number of shader permutation for DOF's gather pass from 138 to 41.

Change 4054950 by Rolando.Caloca

	DR - vk - Fix negated ddy

Change 4055019 by Guillaume.Abadie

	Cuts number of shader permutation for tonemapper from ~2k to 64.

Change 4055144 by Guillaume.Abadie

	Adds an ensure to catch when there is too many permutations on a global shader.

Change 4055240 by Krzysztof.Narkowicz

	Checkboard subsurface fix for resolutions non divisible by 2. Align up subsurface prepare buffer, so downsampling always pickups correct pixel from the full-res buffer.
	#jira FORT-79981

Change 4055323 by Rolando.Caloca

	DR - Fix GLSL-based platforms

Change 4055387 by Guillaume.Abadie

	Adds a point mirror between foreground and background bokeh to be phisically accurate.

Change 4055403 by Rolando.Caloca

	DR - Fix uninitialized var causing crash

Change 4055709 by Guillaume.Abadie

	Fixes a crash in SunTemple.

Change 4055771 by Guillaume.Abadie

	Fixes DOF's reduce pass being compiled for SM4.

	#jira UE-58714

Change 4055876 by Rolando.Caloca

	DR - hlslcc - Fix crash during loop analysis on empty if() blocks

Change 4056026 by Rolando.Caloca

	DR - Enable volumetric fog on Vulkan

Change 4056272 by Guillaume.Abadie

	Exposes new DOF settings in post process settings.

Change 4056460 by Brian.Karis

	Fix uniform buffer assert.

Change 4057151 by Guillaume.Abadie

	Fixes a bug in DOF's temporal stability gathering pass.

Change 4057220 by Guillaume.Abadie

	Cherry-picks and reworks experimental AO decal from GDC 2017's The Human Race demo.

	AO decal are on purpose not supported with ASync AO, because the proper way location to do that would be right before whenever a pass use it, but is currently challenging to track down considering the screen space AO buffer is used a by a lot of different passes through the scene texture uniform buffer.

	#jira UE-53997

Change 4057587 by Rolando.Caloca

	DR - Enable Diaphgram DOF on Vulkan

Change 4058022 by Guillaume.Abadie

	Exposes new DOF settings to UCineCameraComponent

Change 4058136 by Guillaume.Abadie

	Replaces Circle DOF with Diaphragm DOF on supported platforms by default, with renderer settings to fallback.

Change 4058338 by Jostin.Bilyeu

	Checking in new map for verifying Mobile rendering features in conjunction with TAAU

Change 4058352 by Matt.Collins

	Wrapped NSString for lambda capture.

Change 4058500 by Rolando.Caloca

	DR - Fix bad normals & tangents on GL mobile

	#jira UE-57769

Change 4058723 by Rolando.Caloca

	DR - vk - Split device pipeline cache off generic cache file

Change 4058782 by Mark.Satterthwaite

	Rebuild Mac hlslcc for 4055876

Change 4058791 by Mark.Satterthwaite

	Force MetalBackend to pick up new hlslcc.

Change 4058840 by Guillaume.Abadie

	Fixes a bug in DOF's scalability setting groups

Change 4058928 by Daniel.Wright

	Fixed dangling FSceneViewStateReference references getting created when scene capture reallocates its ViewStates array

Change 4059141 by Marcus.Wassmer

	PR #3799: Fix for leak in BatchedLines (Contributed by DSDambuster)

Change 4059227 by Brian.Karis

	Fix for simple forward

Change 4059269 by Marcus.Wassmer

	Update test screenshots to account for minroughness changes from devrectlight

Change 4059478 by Mark.Satterthwaite

	It looks like FMetalCompiledShaderCache was misusing FRWScopeLock in ways that I can't believe even compiled - it looks like it ended up creating and destroying the scope-lock as a temporary rather than treating it as a block-local variable.

	#jira UE-58773

Change 4059870 by Guillaume.Abadie

	Works arround an HLSLCC bug in DOF's recombine pass that was using a AtomicMax(asfloat(MyFloat)).

	#jira UE-58850

Change 4060324 by Rolando.Caloca

	DR - Very minor render pass

Change 4060328 by Rolando.Caloca

	DR - vk - Fix crash when running with r.Vulkan.DelayAcquireBackBuffer=0

Change 4060461 by Jostin.Bilyeu

	Updated test map for use during Mobile Rendering based testing. Map name TM-Mobile_TAAU

Change 4060698 by Marcus.Wassmer

	Merging xbox compile fix

Change 4060930 by Marcus.Wassmer

	Fix android compile

Change 4060971 by Mark.Satterthwaite

	Some missing #defines to guard functions that require an external plugin.

	#jira UE-58910

Change 4061104 by Guillaume.Abadie

	Whitelists mobile tonemapper's high number of permutation in mean time it gets fixed by UE-58014.

	#jira UE-58900

Change 4061364 by Jostin.Bilyeu

	updated Test map TM-TAAU_Mobile to added lighting importance volume, reflection spheres etc.

Change 4061743 by Mark.Satterthwaite

	Fix another build error for iOS.

	#jira UE-58827

Change 4061753 by Arne.Schober

	DR - Higher precision (16bit per channel) for RecomputeTangent and Skincache
	#jira UE-58525

Change 4062236 by Mark.Satterthwaite

	AppleTV doesn't appear to support the set*Bytes APIs in Metal.

	#jira UE-58580

Change 4062320 by Guillaume.Abadie

	Enables bokeh simulation on scattered bokeh on Epic post process settings.

Change 4062402 by Guillaume.Abadie

	Phiscally animates the rotation of the bokeh as aperture changes.

Change 4062587 by Mark.Satterthwaite

	Fix another Ocean compile error.

	#jira N/A

Change 4062811 by Marcus.Wassmer

	Only do newton iterations for area lights
	Fixes a host of AMD-only bugs

Change 4063174 by Marcus.Wassmer

	Workaround shipping build compile error for all clang platforms.

Change 4063760 by Guillaume.Abadie

	Changes the default number of diaphragm blades to 7.

Change 4063992 by Marcus.Wassmer

	Fix DX12 crash when depthboundstest not available.

Change 4064233 by Rolando.Caloca

	DR - Proper fix for GL changes related to tangents

	#jira UE-58948

Change 4064323 by Uriel.Doyon

	Increase the max number of uavs to 16

	#jira 58898

Change 4064428 by Guillaume.Abadie

	Fixes a crashes on XB1 when doing async SSAO.

Change 4064525 by Uriel.Doyon

	Better logic for depth bound support in d3d12.

	#jira 58956

Change 4064694 by Jian.Ru

	Fix a bug in FMaterialBakingModule::ReadTextureOutput caused by uninitialized variables

Change 4064873 by Guillaume.Abadie

	Fixes wrong resource transitions in DOF's reduce passes.

Change 4064956 by Guillaume.Abadie

	Disables R11G11B10 optimisations on platforms that can't supports more than 8 UAVs.

Change 4065215 by Arne.Schober

	DR - Make Clang Happy the standart says: "A variable or non-overloaded function whose name appears as a potentially-evaluated expression is odr-used unless it is an object that satisfies the requirements for appearing in a constant expression (5.19) and the lvalue-to-rvalue conversion (4.1) is immediately applied."
	In English this means that when the reference is taken (or it is passed by reference) the pointers could be compared and therefore needed to be allocated.

Change 4065312 by Guillaume.Abadie

	Fixes D3D12RHI doing a draw indexed indirect behind a DrawPrimitiveIndirect()

Change 4070361 by Guillaume.Abadie

	Fixes resource transitions for PS4. PS4 RHI's logic to check for resource transition is still buggy.

Change 4070778 by Marcus.Wassmer

	Fix bad merge

Change 4071337 by Rolando.Caloca

	DR - vk - Do not spam log

Change 4048308 by Uriel.Doyon

	Merging //UE4/Partner-MGPU to Dev-Rendering (//UE4/Dev-Rendering) at CL 4047519 :
	- Fixed d3derror when resizing the window in multi-gpu.
	- Fixed d3d12 checks when exiting in multi-gpu.
	- Command context containter can now only be used with a single gpu mask. This cleans up passing the mask everywhere.
	- RenderPass now reuse the current GPUMask instead of assuming the view mask. Decoupling furter more the binding.
	- Removed of IRHIComputeContext::GetContextForGPUMask().
	- Removed GPUMask from QueueRenderThreadCommandListSubmit and QueueCommandListSubmit since it is now a member of FRHICommandListBase.
	- FRHICommandListBase::CopyContext() can not change anymore the GPUMask and the target list must have the same GPUMask as the reference one.
	- Command lists now have a GPU mask set at creation time.
	- Support for immediate command list GPU mask.
	- Using the new SCOPED_GPU_MASK where we previously used a new command list on the stack.
	- Refactored most NodeMask naming to GPUMask, and also "const FRHIGPUMask&" to "FRHIGPUMask".
	- Commandline option "-mgpu" is now replaced by "-MaxGPUCount=" and "-PresentGPU="
	- Multi-gpu modes are now controlled through  -mgpumode={ gpu0, gpu1, broadcast, avr, afr }
	- Defines WITH_SLI and WITH_MGPU now control the path to multi-gpu support in the engine.
	- Variable GNumActiveGPUsForRendering is now split in  GNumAlternateFrameRenderingGroups and GNumExplicitGPUsForRendering.

[CL 4072858 by Marcus Wassmer in Main branch]
2018-05-15 11:11:48 -04:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Chris Bunner
77adbcb22a Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3809756)
#rb None
#lockdown Nick.Penwarden

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

Change 3629223 by Rolando.Caloca

	DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847

Change 3629708 by Rolando.Caloca

	DR - vk - Redo some changes from DevMobile
	3601439
	3604186
	3606672
	3617383
	3617474
	3617483

Change 3761370 by Arne.Schober

	DR - Added CityHash to use with conatiners and stuff. It provides good performance and high quallity across multiple platforms.

Change 3761437 by Guillaume.Abadie

	Optimises motion blur compute shader for consoles.

Change 3761483 by Guillaume.Abadie

	Fixes D3D11 RHI lying to dynamic resolution heuristic with t.MaxFPS.

Change 3761995 by Mark.Satterthwaite

	Add the Metal compiler path to the local .pch filename to avoid problems when Xcode moves.

Change 3761996 by Mark.Satterthwaite

	Emit more details when a pixel shader is found to have no outputs at all which Metal doesn't permit. More likely this is a bug in the shader compiler not configuring the in-out mask correctly...

	#jira UE-52292

Change 3761999 by Mark.Satterthwaite

	No need to avoid tessellation for FMetalRHICommandContext::RHIEndDrawIndexedPrimitiveUP anymore - that was from back when the tessellation logic was replicated in each RHI*Draw* implementation.

	#jira UE-51937

Change 3762181 by Joe.Graf

	Changed MaxShaderJobBatchSize to 25 on Mac as it reduced shader compile time by 21%

Change 3762607 by Mark.Satterthwaite

	Remove accidentally included changes from 3761995.

Change 3762612 by Mark.Satterthwaite

	Enable the explicit sincos intrinsic for Metal to avoid instances of UE-52477 that can cause shaders to compile incorrectly through hlslcc.
	#jira UE-52477

Change 3762772 by Michael.Lentine

	Move RHI calls to render thread.

Change 3763021 by Richard.Wallis

	Remove shader cache tool project and implementation.
	#jira UE-51613

Change 3763082 by Guillaume.Abadie

	More SceneTexture, SceneColor and SceneDepth automated tests

Change 3763111 by Richard.Wallis

	Clone of CL 3763033 (Release-4.18):
	Fix for crash upon launching packaged game on Mac with Share Material Shader Code enabled.
	#jira UE-52121

Change 3763657 by Michael.Lentine

	Invalidate ddc for skeletal mesh render data so that the duplicated vertex render structures are properly serialized.

Change 3763727 by Jian.Ru

	Fix Player Collision view mode. It is caused by checking an uninitialized vertex buffer so the check always fail.
	#jira UE-52052

Change 3763738 by Guillaume.Abadie

	Implements SSR input post process material location.

Change 3764271 by Mark.Satterthwaite

	Allow ControlPointPatch lists to flow through MetalRHI as it was setup to handle this transparently - the VSHS compute shader will convert them to triangles to draw. Report the same warning as in the pipeline creation stage as this hasn't been formally validated.

	#jira UE-52454

Change 3764316 by Daniel.Wright

	Added AVolumetricLightmapDensityVolume - gives local control over Volumetric Lightmap density.  Dropping the top mip outside of the play area in Monolith saves 20Mb (35Mb original).
	Volumetric Lightmap no longer refines around static translucent geometry - saves 5Mb in Monolith
	Reworked brick culling by error mechanism.  Now compares error to interpolated parent lighting instead of the brick average - prevents dropping constant value bricks which are near a wall and cause leaking due to parent interpolation after being culled.

Change 3764318 by Daniel.Wright

	Missing file

Change 3764321 by Daniel.Wright

	Shader compiling memory optimizations
	* Editor memory: Sharing uniform buffer includes and GeneratedInstancedStereo.ush per FShaderType (was previously duplicated per FShader job)
	* SCW input size: Sharing uniform buffer includes and SharedEnvironment per batch
	* 7.6Gb of shader job inputs in memory -> .5Gb (13x less) when doing a full shader compile of Paragon Editor
	* 13.8Gb written into worker input files -> 2.9Gb (4.7x less).  Global shaders are never batched when sent to SCW so unoptimized by these changes.

Change 3764595 by Daniel.Wright

	Added VolumetricLightmapDensityVolume asset icons

Change 3764701 by Michael.Lentine

	Add duplicated vertices merging for meshmerge.

Change 3766002 by Guillaume.Abadie

	Fixes a crash in translucency.

Change 3766007 by Guillaume.Abadie

	Oups.... Fixes compilation failure.

Change 3766697 by Guillaume.Abadie

	Giant refactor of global shader interface for upcoming native support of permutation.

	CL generated by python script.

Change 3767205 by Chris.Bunner

	Deferring FMaterial::RenderingThreadShaderMap update to render-thread rather than assumption commands have been flushed.

	#jira UE-50652

Change 3767207 by Chris.Bunner

	Clamp fetched texture coordinates to those available on the mesh.

Change 3767209 by Chris.Bunner

	PR #4203: Early-outs in UMaterialInstance parameter setters (Contributed by stefanzimecki)

	#jira UE-52193

Change 3767772 by Mark.Satterthwaite

	MetalShaderFormat will no longer fallback to text shaders when you ask it to compile to bytecode but the bytecode compiler is not available (either locally or remotely) - this ensures that the DDC can't be poisoned by incorrectly configured clients. The Editor is already setup such that if the remote shader compiler is not configured & Xcode is not available locally the shader-compiler will be invoked to generate text shaders.

	#jira UE-52554

Change 3768604 by Guillaume.Abadie

	Polish up with new global shader function signature.

Change 3768993 by Guillaume.Abadie

	Fixes r.Upscale.Panini cvars

Change 3769478 by Mark.Satterthwaite

	Move the ue4_stdlib.metal & PCH into a temporary directory that exists for the lifetime of the SCW on the remote side as well as the local one and add this path as an include directory.
	#jira UE-52587

Change 3769703 by Mark.Satterthwaite

	For all Metal platforms >= Metal v1.2 transform mul(a,b) into fma(a,b,0) to prevent the Apple compiler reordering operations differently between the base & depth passes which results in variance in the position output.
	For iOS disable fast-math when the vertex-shader uses World-Position-Offset because there are additional problems on the iOS shader compiler that result in position variance even with the above fix - WPO performance will suffer but I don't have any alternatives.
	Remove the depth-offset hack from the depth-only vertex shader again.

	#jira UES-5651

Change 3769763 by Mark.Satterthwaite

	Handle swizzle's in the hlslcc fma identification pass so that we reduce the number of instructions and the platform compiler can't break the instructions up.

Change 3769849 by Mark.Satterthwaite

	Fix CIS error.

Change 3770517 by Richard.Wallis

	Fix for crash when creating a new media texture (AppleIntelHD5000GraphicsMTLDriver!SamplerStage::bindSamplerToTexture()).  Missing texture resource for binding.  Old InitDynamicRHI() code has been refactored out into seperate functions which leaves us on Mac with a NULL resource initially after creation which Metal doesn't like.  This fix puts InitDynamicRHI down the default setup/clear path which inits default resources - I don't think we should use a global dummy in this instance as this is a render target.

	#jira UE-51940

Change 3770688 by Uriel.Doyon

	Fixed texture resolution returning 0 when running blueprint construction scripts at cook time.

Change 3771115 by Mark.Satterthwaite

	Report errors from failed attempts to compile global shaders or we can't see why things fail on non-Windows platforms.

Change 3771263 by Mark.Satterthwaite

	Change the way ManualVertexFetch is enabled on Metal platforms so that it is enabled when targeting Metal v1.2 and higher (macOS 10.12+/iOS 10+). This brings iOS in the Desktop Forward renderer back into line with the Mac.

	#jira UERNDR-300

Change 3773472 by Guillaume.Abadie

	Fixes a crash on PIE of SimpleComposure project.

Change 3773475 by Guillaume.Abadie

	Fixes bug in editor viewport caused by SSR input changes.

Change 3774677 by Arne.Schober

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

Change 3777037 by Mark.Satterthwaite

	Remove incorrect change that caused a reference to "accurate::sincos" to appear in some Metal shaders rather than "precise::sincos".

Change 3777122 by Mark.Satterthwaite

	Back out changelist 3777037 - I'm blind and wasn't seeing the real problem was a stale shader cache...

Change 3777196 by Mark.Satterthwaite

	Fix text-shader compilation on iOS 10 - maybe iOS 9 too (untested!).

	We need our own make_scalar type-trait template for ue4_stdlib.metal so that we still compile with older iOS runtime compilers and we can't use as_type to directly implement the packHalf2x16/unpackHalf2x16 intrinsics for these older runtime compilers either.

Change 3779098 by Rolando.Caloca

	DR - vk - Fix query index

Change 3779275 by Mark.Satterthwaite

	Silence the Metal runtime compiler warning caused by use of a deprecated enum value when running text shaders compiled for Metal v1.0/1.1 on a Metal v1.2+ OS.

	#jira UE-52554

Change 3779427 by Rolando.Caloca

	DR - vk - Fix for allocator contention

Change 3779608 by Uriel.Doyon

	Fixed invalid access in the resave package commantlet when building texture streaming material data for materials enabling tesselation.

Change 3784496 by Mark.Satterthwaite

	Temporarily disable USE_OBJECT_COMPOSITING_TILE_CULLING  for Metal shader compilation only - other platforms are unaffected - as it isn't working properly for some reason. need to work out what's up but don't want Distance Fields to be completely snookered in the interim.

	#jira UE-52952

Change 3784608 by Rolando.Caloca

	DR - Copy 3784588
	- Fix for drivers returning out of date swapchains during resizes

Change 3784734 by Mark.Satterthwaite

	Real fix for UE-52952 - MetalShaderFormat wasn't propagating the full thread-group value.

	#jira UE-52952

Change 3784741 by Mark.Satterthwaite

	More Metal debugging commandline options "-metalfastmath" & "-metalnofastmath" to force fast-math on or off for all shaders, must be using runtime-compiled shaders (i.e. -metalshaderdebug or r.Shaders.Optimise=0) to take effect.

Change 3787103 by Guillaume.Abadie

	Kills BuiltinSamplers UB

Change 3787207 by Guillaume.Abadie

	Sorry, compile fix that were fine with local changes...

Change 3787396 by Marcus.Wassmer

	PR #4271: UE-52901: Set VIS_Max meta to hidden (Contributed by projectgheist)

Change 3788028 by Peter.Sumanaseni

	Working linear HDR exr output from sequencer

Change 3788536 by Mark.Satterthwaite

	Track whether the Metal shader uses the discard_fragment function as when this is used but without any other outputs we know we need to bind at least one render-target or a depth-stencil surface but we don't know which. This lets us correctly error when we encounter a shader with no outputs at all which Metal doesn't permit.
	#jira UE-52292

Change 3788538 by Mark.Satterthwaite

	Let's try mitigating UE-46604 on Nvidia by retaining resource references in the command-buffer. This shouldn't be necessary and isn't typically on other vendors but we haven't been able to reproduce this reliably enough to get to the bottom of it.

	#jira UE-46604

Change 3789083 by Guillaume.Abadie

	Implements global shader permutations. Example in ScreenSpaceReflections.cpp.

Change 3789090 by Guillaume.Abadie

	Fixes linux build.

Change 3789106 by Guillaume.Abadie

	Fixes compilation failure in niagara plugin.

Change 3789274 by Guillaume.Abadie

	Avoid hit proxies to clobber TAA's hitsory.

	#jira UE-52968

Change 3789380 by Guillaume.Abadie

	Back out changelist 3789083: global shader permutation because compilation failure in clang.

Change 3789648 by Guillaume.Abadie

	Relands global shader permutation, with clang support.

Change 3789712 by Guillaume.Abadie

	Fixes TestImage show flag with TAAU on.

	#jira UE-53061

Change 3791593 by Guillaume.Abadie

	Reinvalidates shaders with shader permutations.

Change 3791884 by Daniel.Wright

	Added BP setter for LowerHemisphereColor

Change 3791886 by Daniel.Wright

	Added LightmapType to PrimitiveComponent
	* ForceVolumetric allows forcing static geometry to use Volumetric Lightmaps, which can be useful on instanced foliage where seams are prevalent.  Lightmass internal caching still requires lightmap UVs and reasonable lightmap resolution.
	* ForceSurface replaces bLightAsIfStatic
	Improvements to Volumetric Lightmap quality needed for static geometry
	* Stationary light shadowing is now dilated inside geometry
	* Now doing two dilation passes since samples near geometry see inside due to ray start bias
	* Refinement around geometry uses an expanded cell bounds when the geometry is going to use Volumetric Lightmaps, since cross-resolution stitching causes leaking
	Lightmass debug primitives are now tied to a swarm task instead of global - allows debugging of Volumetric Lightmap tasks

Change 3792256 by Guillaume.Abadie

	Fixes a bug where permutation was not actually serialised in FShader, so was ending up recompiling shader at every load.

Change 3792884 by Marcus.Wassmer

	Copying //UE4/Partner-AMD to Dev-Rendering (//UE4/Dev-Rendering)

Change 3793200 by Marcus.Wassmer

	Copying //UE4/Partner-IDV-SpeedTree to Dev-Rendering (//UE4/Dev-Rendering)
	Speedtree 8 support

Change 3793206 by Brian.Karis

	Added color grading control BlueCorrection to correct for artifacts with "electric" blues due to the ACEScg color space. Bright blue desaturates instead of going to violet.

	Added color grading control ExpandGamut which expands bright saturated colors outside the sRGB gamut to fake wide gamut rendering.

	ACES changes.

Change 3793344 by Marcus.Wassmer

	Fix editortest compile

Change 3794285 by Guillaume.Abadie

	Serializes PermutationId according to archive rendering version to avoid issues with old material that were serializing a shader map into UObject.

Change 3794307 by Guillaume.Abadie

	Resaves uassets that were modified between 3789648 and 3794285

Change 3794627 by Mark.Satterthwaite

	Implement two components for MTLPP, an IMP cache for Objective-C selector implementations & an interposition framework for those same selectors:

	- imp_SelectorCache & friends provide the IMP caching for each of the Metal protocols which constitute most of the API, so far I've not covered the Metal classes used for the various descriptor/initializer types. Each type has its own IMPTable which caches the selector's implementation pointer and provides the mechanism to hook that implementation. As Objective-C is runtime dynamic this look up must be performed on the actual Class value returned by an object at runtime - you can't do this at compile time. Even things like NSString which appear compile-time static are really not as NSString is an alias for a class-cluster (NSString, NSMutableString, __NSInlineString and more).
	- The interpose directory contains MTI* files which are the framework for interposing all the functions in Metal's runtime API - I deliberately omit the descriptor classes & read-only functions as there's no benefit to interposing them - which I can build off to create a trace tool or a superior validation layer. Right now this is Mac only as there'll be some problems to solve for iOS/tvOS due to difference in linking requirements - not insurmountable.
	- Rebuild MTLPP's implementation of the C++ wrapper classes around the IMPTable's - this means we avoid all the objc_msgSend overhead for all the classes and functions whose implementations are cached. Right now the IMPTable is going to incur a look-up for all non-copy/move constructors which is suboptimal - ideally the Metal IMPTables would be cached in the Device object as they will be consistent within a single Device.
	- Sort out the MTLPP availability logic - it now exports the availability warnings to the caller and internally just blithely assumes it may call the functions, the caller is responsible for ensuring that calls are made only on appropriate devices & OSes. This reduces MTLPP complexity and better fits how MetalRHI works.
	- Fix a number of retain/release bugs that were lying dormant in MTLPP but exposed by the switch to IMPTables.
	- Add tvOS support.

	Next up, put this into MetalRHI and start fixing all the fallout.

Change 3794631 by Mark.Satterthwaite

	Missed updating mtlpp's build.cs for TVOS.

Change 3794651 by Uriel.Doyon

	UPointLightComponent::GetUnitsConversionFactor() now takes the cone angle as parameter. This allows to fix spotlight unit conversion when using lumens.

Change 3794720 by Guillaume.Abadie

	Fixes a bug in Global{Bilinear,Trilinear}ClampedSampler that was actually doing a Point sampling.

Change 3794749 by Mark.Satterthwaite

	Fix mtlpp.build.cs paths.

Change 3794856 by Mark.Satterthwaite

	Fix some shadowing warnings.

Change 3795484 by Daniel.Wright

	Implemented the Spherical Harmonic windowing algorithm from 'Stupid Spherical Harmonics (SH) Tricks'
	New WorldSettings Lightmass property VolumetricLightmapSphericalHarmonicSmoothing controls the global amount of smoothing applied

Change 3795590 by Brian.Karis

	Area light fixes

	Fixed order of operations. This helps mixing of SourceRadius, SourceLength, and SoftSourceRadius.

Change 3796832 by Marcus.Wassmer

	Correct shouldcache condition for new resolve shader

Change 3796884 by Marcus.Wassmer

	Doing it right this time.

Change 3797196 by Mark.Satterthwaite

	More updates to MTLPP to make things simpler and reduce the number of spurious Objective-C warnings that are emitted because of the way we are using the runtime.

Change 3797200 by Daniel.Wright

	Lightmass now uses the highest density VolumetricLightmapDensityVolume settings that affect any part of a cell

Change 3797221 by Daniel.Wright

	Reduced default SphericalHarmonicSmoothing based on RoboRecall tests.  Now only active with strong direct lighting from static lights by default.

Change 3797411 by Brian.Karis

	Disable ExpandGamut for old tone mapper.

Change 3797462 by Mark.Satterthwaite

	More build warnings silenced after changing to the lowest possible deployment target OS for each library.

Change 3797585 by Mark.Satterthwaite

	Range-based-For support in the NSArray wrapper.

Change 3797836 by Mark.Satterthwaite

	Even more forward-declarations to avoid system headers poking through to the including code from mtlpp.

Change 3798027 by Mark.Satterthwaite

	Fix handling of nil objects, on which no functions may be called, command-buffer retention and IMP declaration.

Change 3798154 by Mark.Satterthwaite

	Fix some egregious memory leaks that rewriting to use mtlpp exposed before we carry on - don't want these slipping into 4.19.

Change 3800990 by Mark.Satterthwaite

	Typedef all the completion-handler callback types in mtlpp to make future me's life easier.

Change 3801400 by Chris.Bunner

	Improving automated test errors on failure to generate report data.

Change 3801726 by Mark.Satterthwaite

	Correct some function availability and the command-buffer error status in mtlpp.

Change 3801808 by Chris.Bunner

	Added DefaultScalability.ini to EngineTest that forces all quality levels to Engine default Epic for now to improve consistency.

Change 3801862 by Marcus.Wassmer

	Update automated tests with color gamut change

Change 3802214 by Chris.Bunner

	When running automated tests in and editor-locked PIE viewport, skip resizing as the editor can't handle this.
	Added bindable delegate called when ScreenshotRequest is processed - Useful to allow screenshots to override and restore settings per capture.

	#jira UE-53188

Change 3802243 by Chris.Bunner

	Added button to automated test screenshot browser to add or replace all outstanding test reports if appropriate.
	DeleteAllReports button is now only enabled whilst there are reports in the list.

Change 3802372 by Chris.Bunner

	Updating more test screenshots.

Change 3803683 by Chris.Bunner

	Adding more logging and multiple attempts to automated test report network save.
	Added small wait on repeated operations that are known to fail.

Change 3803826 by Rolando.Caloca

	DR - vk - Fix merge issue

Change 3804181 by Chris.Bunner

	Tentative fix for CIS test failure.

Change 3804236 by Chris.Bunner

	Additional logging for case where file write silently fails, report platform-specific error.

Change 3804303 by zachary.wilson

	Cleaning up assets in QAGame saved with empty engine versions to resolve warnings seen when launching on

Change 3804410 by Chris.Bunner

	Added additional logging when automated screenshot test fails due to size mismatch.
	Mismatched bounds are colored red in the delta.

Change 3804455 by Mark.Satterthwaite

	Fix a small number of persistent memory leaks on the Mac build that slowly consume more and more memory as you use the Editor - interacting with menu's was particularly egregious as each NSMenu would leak after you move away.

	#jira NA

Change 3804667 by Chris.Bunner

	Speculative CIS fixes.

Change 3806008 by Chris.Bunner

	Partially reimplementing backed-out CL 3804181 to improve consistency of how automated screenshot test settings are applied/restored.

	#tests CIS preflight job 8174412

Change 3806909 by Mark.Satterthwaite

	Use the vertex-shader's in-out mask to ensure that we only validate legitmate vertex-streams in Metal's DrawIndexedPrimitive implementation.

	#jira UE-53046

Change 3807059 by laz.matech

	Checking in QAGame Rendering Map, QA-PhysicalLightingUnits, for testing Physical Light Units.
	Wanted to get this in before copy up.

	#Jira none

Change 3807726 by Chris.Bunner

	Removed a check that we can't fix up. The check hits unbound buffers which it assumes means a failure but is actually due to m.v.fetch. We don't have the information available to know which are which removed from the input without reading from the shader.

	#jira UE-53046

Change 3807800 by Guillaume.Abadie

	Fixes some warning in shader headers.

Change 3807804 by Guillaume.Abadie

	Back out changelist 3807800

Change 3807807 by Guillaume.Abadie

	Relands shader header warnings.

Change 3808046 by Chris.Bunner

	Dropping a new automated test error back to a warning as this may lead to genuine issues being ignored in the short term.

Change 3809579 by Chris.Bunner

	Back out changelist 3774677.

	#jira UE-53483

Change 3809620 by Chris.Bunner

	Updating animated cloth test screenshot.

Change 3803629 by Chris.Bunner

	Rebuilt CornellBox and DistanceField test maps, updated screenshots.

Change 3787045 by Guillaume.Abadie

	Moves some global samplers to Common.ush

Change 3809756 by Chris.Bunner

	Updating animated cloth test screenshot.

[CL 3809764 by Chris Bunner in Main branch]
2017-12-15 12:47:47 -05:00
Marcus Wassmer
0341e5d5c1 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden

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

Change 3441680 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 3454934 by Chris.Bunner

	Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.

Change 3512118 by Marc.Olano

	Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points

	Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing

Change 3512129 by Benjamin.Hyder

	Fixing up content in TM-SobolNoise

Change 3512151 by Rolando.Caloca

	DR - Fixed some layouts that were general
	- Added some extra dump information

Change 3512160 by Benjamin.Hyder

	Still Fixing TM-Sobol

Change 3512180 by Marc.Olano

	PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.

Change 3512261 by Michael.Lentine

	Move Subsurface to shared properties.

	Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.

	#jira UE-44405

Change 3512288 by Rolando.Caloca

	DR - Fix issue when recycling image handles

Change 3512338 by Michael.Lentine

	Fix precision if user enters a multiple of 90 degree rotation for transforms.

	This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.

	#jira UE-46137

Change 3512424 by Michael.Lentine

	Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.

	#jira UE-44315

Change 3512686 by Brian.Karis

	Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.

Change 3512696 by Brian.Karis

	Unrevert TAA. Fixed DOF NaN artifacts

Change 3512717 by Marcus.Wassmer

	PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)


Change 3513112 by Richard.Wallis

	Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform.  Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.

	Fix includes:
	- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
	- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
	- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.

	#jira UE-45657

Change 3513357 by Richard.Wallis

	Windows compile fix.

Change 3513375 by Guillaume.Abadie

	Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.

Change 3513685 by Richard.Hinckley

	#jira UEDOC-3822
	Fixing a comment that refers to a non-existent function, for documentation purposes.

Change 3513705 by Marc.Olano

	Updates to Sobol test levels in RenderTest project

Change 3513730 by Rolando.Caloca

	DR - Fix mip size copying resolve targets
	- Fix compute fence
	- Fix descriptor set texture layout
	- More dump info

Change 3513742 by Marc.Olano

	Texture-free numeric print for shader debugging

Change 3513777 by Daniel.Wright

	Handled edge case where no furthest samples are found in precomputed visibility

Change 3514852 by Rolando.Caloca

	DR - Fix -directcompile on SCW

Change 3515049 by Rolando.Caloca

	DR - hlslcc dump crash fix

Change 3515167 by Rolando.Caloca

	DR - hlslcc - Fix bogus string pointer
	- Allow reading from non-scalar UAVs

Change 3515745 by Rolando.Caloca

	DR - Linux compile fix

Change 3515862 by Rolando.Caloca

	DR - Remove old reference to CCT
	- Link with hlslcc debug libs on SCW debug config for easier debugging

Change 3516292 by Rolando.Caloca

	DR - glslang exe fixes

Change 3516568 by Rolando.Caloca

	DR - hlslcc - Copy fix for *Buffer as functionparameters

Change 3516659 by Marcus.Wassmer

	Fix some d3derrors with distance fields

Change 3516801 by Daniel.Wright

	Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built.  Any UObject reference that is to an asset can be NULL'ed by the editor.

Change 3516825 by Rolando.Caloca

	DR - Some initial fixes for structured buffers

Change 3516843 by Rolando.Caloca

	DR - Fix for Vulkan dist fields

Change 3516869 by Marcus.Wassmer

	Add format to the createrendertarget blueprint node

Change 3516957 by Daniel.Wright

	Fixed bUsesDistortion being editable

Change 3516965 by Daniel.Wright

	Still mark the distance field task completed, even if the static mesh has been deleted

Change 3517039 by Yujiang.Wang

	GitHub #2655: Optimization for shadow map resolution selection for spot lights

	* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius

	Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly

	#jira UE-33982

Change 3517069 by Yujiang.Wang

	Fix for ScissorRect settings in d3d11 being lost under certain scenarios

	* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
	* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
	* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does

	#jira UE-45465 UE-44760

Change 3517134 by Yujiang.Wang

	CIS fix

Change 3517662 by Rolando.Caloca

	DR - Execute upload Vulkan cmds on the RHI thread
	- Fix crash with structured buffer

Change 3517677 by Rolando.Caloca

	DR - Update/copy textures on RHI thread

Change 3517680 by Rolando.Caloca

	DR - Copy texture bulk data on rhi thread

Change 3517748 by Marcus.Wassmer

	temporary workaround for one class of GPU crashes

Change 3518832 by Rolando.Caloca

	DR - Copy & extend 3518077
	- Fix for movable skylight shader missing on simple forward (low lighting quality mode)

Change 3519973 by Richard.Wallis

	Jittering in Engine Menu Dropdown Options.  Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.

	#jira UE-46505

Change 3520849 by Uriel.Doyon

	Fixed issue with investigate texture command and dynamic component entries.

Change 3521064 by Guillaume.Abadie

	Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.

Change 3521834 by Rolando.Caloca

	DR - Fix decals on Vulkan

Change 3521892 by Rolando.Caloca

	DR - Fix Vulkan texture streaming

Change 3523181 by Rolando.Caloca

	DR - Copy from 3523176
	UE4.17 - Fix Vulkan scissor causing text to not clip

Change 3523534 by Yujiang.Wang

	UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU

	* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
	* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
	* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame

	#jira UE-46631

Change 3524552 by Yujiang.Wang

	Fix iteration number calculation of LongGPUTask

Change 3524975 by Joe.Graf

	Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
	Added SSE versions using _mm_popcnt_u64 for platforms that support it
	Added a SSE check to gracefully exit when missing the instruction and it was expected to be there

	#CodeReview: arciel.rekman, brian.karis

Change 3525306 by Daniel.Wright

	Fixed ensure from LPV

Change 3525346 by Rolando.Caloca

	DR - Fix linking issue

Change 3525459 by Daniel.Wright

	Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
	* Enabled by default on all maps, effective after a lighting build.  This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
	* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
	* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume.  Positions outside the importance volume get lit with the border texels.
	* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
	* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
	* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
	* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
	* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
	* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
	* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
	* New Visualization show flag for Volumetric Lightmap sample points
	* Level streaming of volume light data is not currently supported with this method

Change 3525461 by Daniel.Wright

	Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out.  This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).

Change 3526459 by Rolando.Caloca

	DR - Fix validation error

Change 3526474 by Rolando.Caloca

	DR - Integrate from GV

Change 3526487 by Daniel.Wright

	Disabled Volumetric Lightmap filtering with neighbors due to artifacts
	Fix linux compile errors

Change 3526833 by Rolando.Caloca

	DR - Workaround for hlslcc

Change 3526991 by Uriel.Doyon

	Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.

Change 3527574 by Rolando.Caloca

	DR - Added some missing resource entries for SCW direct mode

Change 3527625 by Rolando.Caloca

	DR - Copy from 3527113
	UE4.17 - Fix Vulkan not calling Present

Change 3528461 by Brian.Karis

	Support larger hash sizes. Added uint list hashing function.

Change 3528780 by Rolando.Caloca

	DR - Default Vulkan resources

Change 3528818 by Rolando.Caloca

	DR - glslang - Added missing accessor

Change 3528839 by Rolando.Caloca

	DR - Fix virtual path issue when using non-engine relative absolute paths

Change 3528900 by Daniel.Wright

	Fixed variable shadowing

Change 3529039 by Rolando.Caloca

	DR - Read Spirv reflection data (not used yet)

Change 3529040 by Joe.Graf

	Fixed the 32bit compile failures for the popcnt optimization

	#CodeReview: arciel.rekman

Change 3529060 by Rolando.Caloca

	DR - hlslcc - New flag for keeping resource names

Change 3529344 by Rolando.Caloca

	DR - Delete unused file

Change 3529723 by Brian.Karis

	Fixed static analysis cleaner.

Change 3531357 by Michael.Trepka

	Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.

Change 3531517 by Joe.Graf

	Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc

	#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca

Change 3531626 by Joe.Graf

	Mac version of the popcount optimization
	Changed Linux version to use the same builtin

	#CodeReview: mark.satterthwaite, arciel.rekman

Change 3531837 by Chris.Bunner

	SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.

	#jra UE-46753

Change 3533415 by Joe.Graf

	Renamed the SSSE3 checks per feedback

	#CodeReview: arciel.rekman

Change 3533480 by Michael.Lentine

	Use more accurate descriptions for shader recompile options

Change 3533511 by Joe.Graf

	Updated the GenericPlatformMisc to match the SSSE3 name change

	#CodeReview: arciel.rekman

Change 3533521 by Marcus.Wassmer

	Fix scenerenderer leak when updating out of view planar reflections

Change 3533528 by Joe.Graf

	Updated comments

	#CodeReview: n/a

Change 3533608 by Mark.Satterthwaite

	New manual Xcode project for glslang so that we include all the necessary code and can link again.

Change 3534260 by Mark.Satterthwaite

	Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.

Change 3535789 by Yujiang.Wang

	Fix for wrong hair shading in forward shading

	* IBL reflections should be turned off for hairs

Change 3537059 by Ben.Marsh

	Fixing case of iOS directories, pt1

Change 3537060 by Ben.Marsh

	Fixing case of iOS directories, pt2

Change 3538297 by Michael.Lentine

	Add shader comparison test.

	Adding the basic test case.
	Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
	Adding more exported functionality to automation for use in the shader test.

Change 3538309 by Michael.Lentine

	Add missing file from Shader Test CL.

Change 3538751 by Michael.Lentine

	Add missing pragma once.

Change 3539236 by Michael.Lentine

	Do not ignore return values.

Change 3539237 by Michael.Lentine

	Check in the correct file

Change 3540343 by Rolando.Caloca

	DR - Added t.DumpHitches.AllThreads

Change 3540661 by Yujiang.Wang

	Fix spot tube light direction

	* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
	* A new LightTangent is added to FDeferredLightData
	* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere

Change 3541129 by Rolando.Caloca

	DR - vk - Copy all Vulkan fixes from 4.17

Change 3541347 by Yujiang.Wang

	Fix wrong ViewFlags being set between objects when rendering shadow depth maps

	* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
	* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call

Change 3542603 by Rolando.Caloca

	DR - vk - Allow sharing samplers on Vulkan

Change 3542639 by Jian.Ru

	Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
	#RB Marcus.Wassmer

Change 3543167 by Michael.Lentine

	Fix naming for the shader comparison tests.

Change 3543210 by Uriel.Doyon

	Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
	In that case, we used the default settings for texture streaming (assuming a scale of 1).

Change 3543221 by Brian.Karis

	Simplifier optimizations

Change 3543239 by Arciel.Rekman

	hlslcc: remove FCustomStd* workarounds.

	- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
	- The same problem has been resolved by bundling libc++.

Change 3543946 by Michael.Lentine

	Add comparison output.

Change 3544277 by Brian.Karis

	Fixed uninitialized var error

Change 3544404 by Rolando.Caloca

	DR - Fix broken textures

Change 3544503 by Jian.Ru

	Ensure lighting failure delegates are always called
	#RB Marcus.Wassmer,Daniel.Wright
	#3689

Change 3545241 by Daniel.Wright

	Fixed spotlight whole scene shadows using a radius 2x too long

Change 3545347 by Daniel.Wright

	Fixed shadow occlusion culling broken by shadowmap caching change.  FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.

Change 3546196 by Marcus.Wassmer

	Fix minor typo

Change 3546459 by Daniel.Wright

	ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.

Change 3546469 by Jian.Ru

	Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation

Change 3546804 by Daniel.Wright

	[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events

Change 3546814 by Daniel.Wright

	[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows

Change 3546815 by Daniel.Wright

	[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation

Change 3546817 by Daniel.Wright

	[Copy] Warmup time warning

Change 3546828 by Daniel.Wright

	[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch

Change 3546836 by Daniel.Wright

	[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data

Change 3546849 by Rolando.Caloca

	DR - vk - Fix missing samplerstates
	- Fixes for structured buffers
	- Add missing Draw and Dispatch Indirect

Change 3547516 by Brian.Karis

	Linear time 5-coloring for planar graphs.

	Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.

Change 3547542 by Brian.Karis

	Linear time 5-coloring for planar graphs.

	Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.

Change 3547563 by Brian.Karis

	Fixed some compiler warnings and hopefully some errors.

Change 3547610 by Brian.Karis

	Replaced macros with inlined functions

Change 3547620 by Brian.Karis

	Clean up includes

Change 3547770 by Marcus.Wassmer

	GPU Crash for MTBF analytics

Change 3547773 by Marcus.Wassmer

	Updated doxygen comment for new analytic

Change 3548244 by Rolando.Caloca

	DR - Fix for translucency

Change 3548352 by Yujiang.Wang

	Added soft source radius for point and spot lights

	* Soft source radius controls how 'blurry' the shape of specular lighting looks
	* Implemented by LobeRoughness modification
	* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
	* Suppoted LightTangent in forward shading

Change 3548530 by Brian.Karis

	Fix for mac build

Change 3548770 by Rolando.Caloca

	DR - vk - Prereq work for Vulkan parallel RHI contexts

Change 3548772 by Jian.Ru

	Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer

Change 3548865 by Daniel.Wright

	With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query.  Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.

Change 3548952 by Rolando.Caloca

	DR - Allow separate samplers in the shaders on Vulkan

Change 3549197 by Marcus.Wassmer

	Fix DX12 PIx not working in cooked builds

Change 3549209 by Daniel.Wright

	Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'.  Disabled by default as rapid view changes don't work well with latent occlusion queries.

Change 3549943 by Ben.Marsh

	Include better diagnostic information when a modified build product is detected after running a build step.

Change 3550546 by Rolando.Caloca

	DR - Fix merge issue

Change 3550962 by Marcus.Wassmer

	EarlyZ Masking requires full depth prepass, so just force it to.

Change 3551062 by Daniel.Wright

	Handle NULL skylight

Change 3551104 by Rolando.Caloca

	DR - vk - Remove assert to match other platforms

Change 3551221 by Rolando.Caloca

	DR - vk - Add mirror clamp to edge extension
	- Fix framebuffer deletion

Change 3551224 by Daniel.Wright

	Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.

Change 3551495 by Rolando.Caloca

	DR - vk - Intiial support for async queue

Change 3552101 by Rolando.Caloca

	DR - vk - Fix for async

Change 3552102 by Rolando.Caloca

	DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
	- Integrate changes from 4.17 for memory optimizations

Change 3552104 by Rolando.Caloca

	DR - vk - Support for SRVs for index buffers

Change 3552838 by Rolando.Caloca

	DR - vk - Enable debug markers if found

Change 3553106 by Rolando.Caloca

	DR - vk - Fixes for index buffer SRVs

Change 3553107 by Rolando.Caloca

	DR - vk - Enable recompute tangents on Vulkan

Change 3553154 by Rolando.Caloca

	DR - vk - Fix crash with null uav

Change 3553342 by Yujiang.Wang

	Fix redundant skylights in AdvancedPreviewScene

	* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
	* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene

Change 3553481 by Rolando.Caloca

	DR - Integrate fix for D3D12 support of index buffers SRVs

	#jira UE-47674

Change 3553715 by Rolando.Caloca

	DR - Fix crash when launching PC with -featureleveles31

Change 3553725 by Rolando.Caloca

	DR - Redo fix

Change 3553803 by Rolando.Caloca

	DR - Shader compile fixes for ES3.1

Change 3553963 by Rolando.Caloca

	DR - vk - Remove extra IRDump

Change 3554741 by Ben.Marsh

	CIS fix.

Change 3555222 by Rolando.Caloca

	DR - vk - static analysis fix

Change 3555362 by Rolando.Caloca

	DR - vk - Prep work for separate present queue

Change 3556800 by Daniel.Wright

	Fixed screenshot for simple volume material doc

Change 3556942 by Brian.Karis

	Fixed Bokeh DOF regression.

Change 3556959 by Rolando.Caloca

	DR - vk - Rework staging buffer peak usage

Change 3557497 by Daniel.Wright

	Better display name for Unbound property on post process volume

Change 3557499 by Daniel.Wright

	Disable r.GenerateLandscapeGIData by default, opt-in for kite demo.  Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.

Change 3557068 by Olaf.Piesche

	Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2),  so additional quality levels can be added and scaling customized further.
	IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.

	#tests QAGame test maps

Change 3558123 by Rolando.Caloca

	DR - vk - static analysis fix

Change 3558685 by Yujiang.Wang

	Github #3323: Two sided foliage lightmap directionality fix

	* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
	* Now it uses a constant directionality value

	#jira UE-42523

Change 3559052 by Brian.Karis

	Hopefully fix static analysis

Change 3559113 by Rolando.Caloca

	DR - Fix crash witrh planar reflections

Change 3559275 by Yujiang.Wang

	Fix race condition on several scalability CVars between rendering thread and game thread

Change 3559612 by Rolando.Caloca

	DR - vk - SM5 with uniform buffers backend support

Change 3559716 by Rolando.Caloca

	DR - hlslcc - Fix linker warning on SCW debug

Change 3559768 by Rolando.Caloca

	DR - vk - Keep ub names for bindings

Change 3560195 by Rolando.Caloca

	DR - accessor

Change 3560275 by Rolando.Caloca

	DR - vk - Support for uniform buffers

Change 3560913 by Rolando.Caloca

	DR - vk - Fix static analysis

Change 3561145 by Rolando.Caloca

	DR - Don't crash if out of resource table bits

Change 3561194 by Rolando.Caloca

	DR - vk - Integrate timestamp fixes

Change 3562009 by Rolando.Caloca

	DR - vk - Workaround for bad UTexture data

Change 3563884 by Chris.Bunner

	VK_NULL_HANDLE fix.

Change 3563885 by Jian.Ru

	Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner

Change 3565943 by Jian.Ru

	Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner

Change 3569479 by Michael.Lentine

	Integrate rhino shader changes to dev-rendering

Change 3569511 by Michael.Lentine

	Fix formating and string out on windows.

Change 3569572 by Yujiang.Wang

	Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs

Change 3569614 by Yujiang.Wang

	Flush rendering commands before measuring the long GPU task's excution time to get accurate results

Change 3570524 by Jian.Ru

	Add extra parentheses to avoid compilation warning #rb Chris.Bunner

Change 3570722 by Chris.Bunner

	Static analysis workaround - same code, just validating compile-time assumptions a little further.

Change 3570880 by Jian.Ru

	Add small depth offset to avoid depth test failing during velocity pass

	#jira UE-37556

Change 3572532 by Jian.Ru

	Disable a warning to let tests pass

	#jira UE-48021

Change 3573109 by Michael.Lentine

	Checkin Michael.Trepka's fix for external dynamic libraries on mac.
	This is needed to make the build go green on mac.

Change 3573995 by Jian.Ru

	Move an include out of define to let nightly build pass

Change 3574777 by Chris.Bunner

	Continued merge fixes.

Change 3574792 by Rolando.Caloca

	DR - Rename todo

Change 3574794 by Chris.Bunner

	Re-adding includes lost in a pre-merge merge.

Change 3574879 by Michael.Trepka

	Disabled a couple of Mac deprecation warnings

Change 3574932 by Chris.Bunner

	Merge fix.

Change 3575048 by Michael.Trepka

	Fixed iOS compile warnings

Change 3575530 by Chris.Bunner

	Duplicating static analysis fix CL 3539836.

Change 3575582 by Chris.Bunner

	Fixed GetDimensions return type in depth resolve shaders.
	Compile error fix.

Change 3576326 by Chris.Bunner

	Static analysis fixes.

Change 3576513 by Michael.Trepka

	Updated Mac MCPP lib to be compatible with OS X 10.9

Change 3576555 by Richard.Wallis

	Metal Validation Errors.  Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture.  Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.

	#jira UE-47549

Change 3576562 by Chris.Bunner

	OpenGL SetStreamSource stride updates.

Change 3576589 by Michael.Trepka

	Fixed Mac CIS warnings and errors in Dev-Rendering

Change 3576708 by Jian.Ru

	Fix cascade preview viewport background color not changing
	#jira UE-39687

Change 3576827 by Rolando.Caloca

	DR - Minor fix for licensee

Change 3576973 by Chris.Bunner

	Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).

Change 3577729 by Rolando.Caloca

	DR - Fix for info on SCW crashes

Change 3578723 by Chris.Bunner

	Fixed issue where custom material attribute was using display name as hlsl function name.

Change 3578797 by Chris.Bunner

	Fixed pixel inspector crashing on high-precision normals gbuffer format.

	#jira UE-48094

Change 3578815 by Yujiang.Wang

	Fix for UE-48207 Orion cooked windows server crash on startup

	* Crash caused by rendering features not available in a dedicated server build
	* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()

	#jira UE-48207

Change 3578828 by Daniel.Wright

	Disable volumetric lightmap 3d texture creation on mobile

Change 3579473 by Daniel.Wright

	Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler.  Used these to reduce base pass sampler counts with volumetric lightmaps.

Change 3580088 by Jian.Ru

	Fix QAGame TM-CharacterMovement crashing on PIE
	#jira UE-48031

Change 3580388 by Daniel.Wright

	Fixed shadowed light injection into volumetric fog fallout from Rhino merge

Change 3580407 by Michael.Trepka

	Updated Mac UnrealPak binaries

Change 3581094 by Michael.Trepka

	Fix for ScreenSpaceReflections not working properly on iOS 11

Change 3581242 by Michael.Trepka

	Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame

	#jira UE-48255

Change 3581489 by Olaf.Piesche

	Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475

	#jira FORT-47068, FORT-49705
	Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.

	#tests FN LastPerfTest

Change 3581544 by Simon.Tovey

	Fix for ensure accessing cvar from task thread.

	#tests no more ensure

Change 3581934 by Chris.Bunner

	Fixed ConsoleVariables.ini break from merge.

Change 3581968 by Jian.Ru

	Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
	#jira UE-48251

Change 3581989 by Richard.Wallis

	Fix for NULL PrecomputedLightingBuffer.  It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.

	#jira UE-46955

Change 3582632 by Chris.Bunner

	Resolved merge error.

Change 3582722 by Rolando.Caloca

	DR - Workaround for PF_R8G8B8A8_UINT on GL

	#jira UE-48208

Change 3584096 by Rolando.Caloca

	DR - Fix for renderdoc crashing in shipping

	#jira UE-46867

Change 3584245 by Jian.Ru

	Fix System.Promotion.Editor.Particle Editor test crash
	#jira UE-48235

Change 3584359 by Yujiang.Wang

	Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion

	* Caused by dot(N, V) being negative
	* Clamp to (0, 1)

	#jira UE-48315

Change 3587864 by Mark.Satterthwaite

	Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
	#jira UE-48342

Change 3587866 by Mark.Satterthwaite

	Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.

Change 3588168 by Mark.Satterthwaite

	Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.

Change 3588192 by Rolando.Caloca

	DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled

Change 3588291 by Rolando.Caloca

	DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers

	#jira UE-48299

Change 3590134 by Michael.Trepka

	Copy of CL 3578963

	Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.

Change 3590405 by Rolando.Caloca

	DR - hlslcc - support for sqrt(uint)

Change 3590436 by Mark.Satterthwaite

	Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.

Change 3590674 by Rolando.Caloca

	DR - vk - Integration from working branch
	- Fixes distance field maps
	- Compute pipelines stored in saved file
	- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets

Change 3590699 by Rolando.Caloca

	DR - Fix distance fields mem leak

Change 3590815 by Rolando.Caloca

	DR - vk - Fixes for uniform buffers and empty resource tables

Change 3590818 by Mark.Satterthwaite

	Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.

Change 3590905 by Mark.Satterthwaite

	For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.

	#jira UE-48163

Change 3590961 by Mark.Satterthwaite

	Submitted on Richard Wallis's behalf as he's on holiday:

	Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents.  Problem sampling from buffers/textures as floats with packed data.  Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>().  Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.

	There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.

	#jira UE-46688, UE-39256, UE-47215

Change 3590965 by Mark.Satterthwaite

	Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.

Change 3590969 by Mark.Satterthwaite

	Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.

Change 3591871 by Rolando.Caloca

	DR - Enable PCSS on Vulkan & Metal
	- Enable capsule shadows on Vulkan

Change 3592014 by Mark.Satterthwaite

	Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
	Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
	Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
	Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.

Change 3592171 by Rolando.Caloca

	DR - CIS fix

Change 3592753 by Jian.Ru

	repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)

Change 3594595 by Rolando.Caloca

	DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely

Change 3594794 by Michael.Trepka

	Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app

Change 3594999 by Mark.Satterthwaite

	Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
	While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.

	#jira UE-48342

Change 3595004 by Mark.Satterthwaite

	Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.

	#jira UE-48342

Change 3595386 by Mark.Satterthwaite

	Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.

Change 3595394 by Rolando.Caloca

	DR - Added function for tracking down errors in the hlsl parser
	- Added support for simple #if 0...#endif

Change 3599352 by Rolando.Caloca

	DR - Fixes for HlslParser
	- Added missing attributes for functions
	- Fixed nested assignment

Change 3602440 by Michael.Trepka

	Fixed Metal shader compilation from Windows with remote compilation disabled

	#jira UE-48163

Change 3602898 by Chris.Bunner

	Resaving assets.

Change 3603731 by Jian.Ru

	fix a crash caused by a material destroyed before the decal component
	#jira UE-48587

Change 3604629 by Rolando.Caloca

	DR - Workaround for PF_R8G8B8A8_UINT on Android

	#jira UE-48208

Change 3604984 by Peter.Sauerbrei

	fix for orientation not being limited to that specified in the plist

	#jira UE-48360

Change 3605738 by Chris.Bunner

	Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).

	#jira UE-48748

Change 3606009 by Mark.Satterthwaite

	Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
	- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
	- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
	- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
	- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....

	#jira UE-47663

Change 3606108 by Mark.Satterthwaite

	Temporary hack to avoid a crash in AVPlayer.

	#jira UE-48758

Change 3606121 by Mark.Satterthwaite

	Fix Windows compilation.

Change 3606992 by Chris.Bunner

	Static analysis fix.

[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
Unrealbot
ddf25c16cf Branch snapshot for CL 3555263
[CL 3555263 in Main branch]
2017-07-26 10:00:02 -04:00