https://github.com/EpicGames/UnrealEngine/pull/946
I have gone through these changes and verified that whatever behavior change they cause could only be an improvement (generally they just prevent possible access to nullptrs, but there are also some style corrections). A separate changelist is being prepared that includes changes that could unintentionally caues behavior change for the worse.
[CL 2486801 by Dan Oconnor in Main branch]
MAX_FORWARD_SHADOWCASCADES is correctly defined for OutEnvironment.
Only render shadow maps that have been successfully allocated texture space.
fwd shader can deal with full range of MAX_FORWARD_SHADOWCASCADES.
limit shadow map renders to no more than MAX_FORWARD_SHADOWCASCADES.
reduce shadow map size to ensure all tiles fit within GMaxShadowDepthBufferSize.
Fixes UE-10282.
#codereview nick.penwarden, Rolando.Caloca
[CL 2466184 by Allan Bentham in Main branch]
1) Preshadows for self-shadow only primitives now correctly mask by the receiver and not the subject.
2) Self-shadow only objects are no longer included in whole scene shadows (view dependent whole scene shadows already worked).
#codereview Martin.Mittring,Daniel.Wright
[CL 2436763 by Nick Penwarden in Main branch]
* Enable with 'r.DistanceFieldGI 1' on console
* Surfel GI is currently disabled as it doesn't interop yet
* A GBuffer atlas is created for Landscape from components that can affect indirect lighting based on the current view
* Shadowing from a directional light is computed by reusing shadowmaps and ray tracing distance fields
* Lighting is computed for the atlas using GBuffer properties
* First bounce GI light transfer is computed for a receiver by iterating over all the nearby lit texels of the heightfield and treating them as Virtual Point Lights. Two gather regions are used, the larger one skips through the heightfield to achieve a larger bounce distance. Distance field AO is used to provide local shadowing.
* Material diffuse color not yet supported, and regions outside of the view don't have valid shadowing.
[CL 2436606 by Daniel Wright in Main branch]
Also add many explicit calls to CopyToResolveTarget to indicate the transition of a render target to be able to be used as an SRV. Soon to be replaced by a more specific RHI function.
Added r.CheckSRVTransitions for D3D11 on windows to check if any of these transition are missing.
Fixes a bug with RHIThreadFence when using PLATFORM_SUPPORTS_PARALLEL_RHI_EXECUTE
PLATFORM_SUPPORTS_PARALLEL_RHI_EXECUTE on PS4 now supports CMASK and HTILE enabled buffers.
#codereview lee.clark,gil.gribb,rolando.caloca,daniel.wright
[CL 2420986 by Marcus Wassmer in Main branch]